Exemple #1
0
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);
}
Exemple #2
0
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));
}