示例#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);
}
示例#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));
}
示例#4
0
TEST_F(MamaFieldCacheFieldTypesTest, testFromString)
{
    MamaFieldCacheField field1;
    field1.create(1, MAMA_FIELD_TYPE_CHAR);
    ASSERT_EQ(MAMA_FIELD_TYPE_CHAR, field1.getType());
    mamaFieldCacheFieldFromString(field1, "a");

    MamaFieldCacheFieldChar charField;
    ASSERT_EQ('a', charField.get(field1));

    MamaFieldCacheField field2;
    field2.create(2, MAMA_FIELD_TYPE_I32);
    mamaFieldCacheFieldFromString(field2, "321");

    MamaFieldCacheFieldI32 i32Field;
    ASSERT_EQ(321, i32Field.get(field2));

    MamaFieldCacheField field3;
    field3.create(3, MAMA_FIELD_TYPE_BOOL);
    mamaFieldCacheFieldFromString(field3, "1");

    MamaFieldCacheFieldBool boolField;
    ASSERT_TRUE(boolField.get(field3));

    MamaFieldCacheField field4;
    field4.create(4, MAMA_FIELD_TYPE_STRING);
    mamaFieldCacheFieldFromString(field4, "hello");

    MamaFieldCacheFieldString stringField;
    ASSERT_STREQ("hello", stringField.get(field4));

    MamaFieldCacheField field5;
    field5.create(5, MAMA_FIELD_TYPE_F32);
    mamaFieldCacheFieldFromString(field5, "3.21");

    MamaFieldCacheFieldF32 f32Field;
    ASSERT_FLOAT_EQ(3.21, f32Field.get(field5));
}