TEST_F(MamaFieldCacheFieldTypesTest, testWrongType) { MamaFieldCacheField fieldBase; fieldBase.create(1, MAMA_FIELD_TYPE_BOOL); MamaFieldCacheFieldChar charField; ASSERT_THROW(charField.set(fieldBase, 'i'), std::invalid_argument); MamaFieldCacheFieldI8 i8Field; ASSERT_THROW(i8Field.set(fieldBase, 3), std::invalid_argument); MamaFieldCacheFieldU8 u8Field; ASSERT_THROW(u8Field.set(fieldBase, 3), std::invalid_argument); MamaFieldCacheFieldI16 i16Field; ASSERT_THROW(i16Field.set(fieldBase, 3), std::invalid_argument); MamaFieldCacheFieldU16 u16Field; ASSERT_THROW(u16Field.set(fieldBase, 3), std::invalid_argument); MamaFieldCacheFieldI32 i32Field; ASSERT_THROW(i32Field.set(fieldBase, 3), std::invalid_argument); MamaFieldCacheFieldU32 u32Field; ASSERT_THROW(u32Field.set(fieldBase, 3), std::invalid_argument); MamaFieldCacheFieldI64 i64Field; ASSERT_THROW(i64Field.set(fieldBase, 3), std::invalid_argument); MamaFieldCacheFieldU64 u64Field; ASSERT_THROW(u64Field.set(fieldBase, 3), std::invalid_argument); MamaFieldCacheFieldF32 f32Field; ASSERT_THROW(f32Field.set(fieldBase, 3), std::invalid_argument); MamaFieldCacheFieldF64 f64Field; ASSERT_THROW(f64Field.set(fieldBase, 3), std::invalid_argument); MamaFieldCacheFieldString stringField; ASSERT_THROW(stringField.set(fieldBase, "hi"), std::invalid_argument); MamaFieldCacheFieldPrice priceField; ASSERT_THROW(priceField.set(fieldBase, MamaPrice()), std::invalid_argument); MamaFieldCacheFieldDateTime dateTimeField; ASSERT_THROW(dateTimeField.set(fieldBase, MamaDateTime()), std::invalid_argument); }
TEST_F(MamaFieldCacheFieldTypesTest, testString) { MamaFieldCacheField fieldBase; fieldBase.create(1, MAMA_FIELD_TYPE_STRING, ""); MamaFieldCacheFieldString field; const char* value; const char* cstr = "abc"; field.set(fieldBase, cstr); ASSERT_STREQ("abc", field.get(fieldBase)); getFieldValue(fieldBase, value); ASSERT_STREQ("abc", value); cstr = "cba1"; setFieldValue(fieldBase, cstr); const char* res; res = field.get(fieldBase); ASSERT_STREQ(cstr, res); getFieldValue(fieldBase, value); ASSERT_STREQ("cba1", value); }
TEST_F(MamaFieldCacheRecordTest, find) { MamaFieldCacheRecord record; record.create(); const MamaFieldCacheField& fieldNotFound = record.find(1); ASSERT_EQ(0, fieldNotFound.getFid()); ASSERT_EQ(MAMA_FIELD_TYPE_UNKNOWN, fieldNotFound.getType()); MamaFieldCacheField& newField = record.add(1, MAMA_FIELD_TYPE_STRING, "MamaFieldCacheRecordTest.find"); MamaFieldCacheFieldString stringField; stringField.set(newField, "hello"); MamaFieldCacheField& fieldFound = record.find(1); ASSERT_EQ(1, fieldFound.getFid()); ASSERT_EQ(MAMA_FIELD_TYPE_STRING, fieldFound.getType()); ASSERT_STREQ("MamaFieldCacheRecordTest.find", fieldFound.getName()); ASSERT_EQ(std::string("hello"), stringField.get(fieldFound)); }