diff options
author | Marcelo Lira <marcelo.lira@openbossa.org> | 2010-09-28 15:19:06 -0300 |
---|---|---|
committer | Hugo Parente Lima <hugo.pl@gmail.com> | 2012-03-09 19:10:10 -0300 |
commit | 0dd7d12ca18255ec186293bc00918cd68e516fa6 (patch) | |
tree | af555aee35239d622417ee09dcb83820d5ccc9f9 /tests | |
parent | 2bfe59a2b8a588b338da7b9472d4ec6f66c2d10a (diff) |
Fixed AbstractMetaBuilder to handle enum values receiving boolean values.
In other words, this
enum {
Positive = true,
Negative = false
};
is now properly recognized.
Tests were added as usual.
Reviewed by Luciano Wolf <luciano.wolf@openbossa.org>
Reviewed by Renato Araújo <renato.filho@openbossa.org>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/testenum.cpp | 43 |
1 files changed, 40 insertions, 3 deletions
diff --git a/tests/testenum.cpp b/tests/testenum.cpp index 4df31899f..a55598fb4 100644 --- a/tests/testenum.cpp +++ b/tests/testenum.cpp @@ -104,6 +104,7 @@ void TestEnum::testAnonymousEnum() enum { Global0, Global1 }; \ struct A {\ enum { A0, A1 };\ + enum { isThis = true, isThat = false };\ };\ "; const char* xmlCode = "\ @@ -113,6 +114,7 @@ void TestEnum::testAnonymousEnum() <value-type name='A'> \ <!-- Uses the second value of the enum to identify it. -->\ <enum-type identified-by-value='A1'/>\ + <enum-type identified-by-value='isThis'/>\ </value-type> \ </typesystem>"; @@ -125,9 +127,37 @@ void TestEnum::testAnonymousEnum() AbstractMetaClassList classes = t.builder()->classes(); QCOMPARE(classes.count(), 1); - QCOMPARE(classes[0]->enums().count(), 1); - QCOMPARE(classes[0]->enums().first()->typeEntry()->qualifiedCppName(), QString("A::A1")); - QVERIFY(classes[0]->enums().first()->isAnonymous()); + QCOMPARE(classes[0]->enums().count(), 2); + + AbstractMetaEnum* anonEnumA1 = classes[0]->findEnum("A1"); + QVERIFY(anonEnumA1); + QVERIFY(anonEnumA1->isAnonymous()); + QCOMPARE(anonEnumA1->typeEntry()->qualifiedCppName(), QString("A::A1")); + + AbstractMetaEnumValue* enumValueA0 = anonEnumA1->values().first(); + QCOMPARE(enumValueA0->name(), QString("A0")); + QCOMPARE(enumValueA0->value(), 0); + QCOMPARE(enumValueA0->stringValue(), QString("")); + + AbstractMetaEnumValue* enumValueA1 = anonEnumA1->values().last(); + QCOMPARE(enumValueA1->name(), QString("A1")); + QCOMPARE(enumValueA1->value(), 1); + QCOMPARE(enumValueA1->stringValue(), QString("")); + + AbstractMetaEnum* anonEnumIsThis = classes[0]->findEnum("isThis"); + QVERIFY(anonEnumIsThis); + QVERIFY(anonEnumIsThis->isAnonymous()); + QCOMPARE(anonEnumIsThis->typeEntry()->qualifiedCppName(), QString("A::isThis")); + + AbstractMetaEnumValue* enumValueIsThis = anonEnumIsThis->values().first(); + QCOMPARE(enumValueIsThis->name(), QString("isThis")); + QCOMPARE(enumValueIsThis->value(), static_cast<int>(true)); + QCOMPARE(enumValueIsThis->stringValue(), QString("true")); + + AbstractMetaEnumValue* enumValueIsThat = anonEnumIsThis->values().last(); + QCOMPARE(enumValueIsThat->name(), QString("isThat")); + QCOMPARE(enumValueIsThat->value(), static_cast<int>(false)); + QCOMPARE(enumValueIsThat->stringValue(), QString("false")); } void TestEnum::testGlobalEnums() @@ -149,12 +179,16 @@ void TestEnum::testGlobalEnums() AbstractMetaEnum* enumA = globalEnums.first(); QCOMPARE(enumA->typeEntry()->qualifiedCppName(), QString("EnumA")); + AbstractMetaEnumValue* enumValueA0 = enumA->values().first(); QCOMPARE(enumValueA0->name(), QString("A0")); QCOMPARE(enumValueA0->value(), 0); + QCOMPARE(enumValueA0->stringValue(), QString("")); + AbstractMetaEnumValue* enumValueA1 = enumA->values().last(); QCOMPARE(enumValueA1->name(), QString("A1")); QCOMPARE(enumValueA1->value(), 1); + QCOMPARE(enumValueA1->stringValue(), QString("")); AbstractMetaEnum* enumB = globalEnums.last(); QCOMPARE(enumB->typeEntry()->qualifiedCppName(), QString("EnumB")); @@ -162,9 +196,12 @@ void TestEnum::testGlobalEnums() AbstractMetaEnumValue* enumValueB0 = enumB->values().first(); QCOMPARE(enumValueB0->name(), QString("B0")); QCOMPARE(enumValueB0->value(), 2); + QCOMPARE(enumValueB0->stringValue(), QString("2")); + AbstractMetaEnumValue* enumValueB1 = enumB->values().last(); QCOMPARE(enumValueB1->name(), QString("B1")); QCOMPARE(enumValueB1->value(), 4); + QCOMPARE(enumValueB1->stringValue(), QString("4")); } QTEST_APPLESS_MAIN(TestEnum) |