void TestPrimitiveTypeTag::testPrimitiveTypeDefaultConstructor() { const char* cppCode ="\ struct A {};\ struct B {};\ "; const char* xmlCode = "\ <typesystem package=\"Foo\"> \ <primitive-type name='A' default-constructor='A()'/> \ <object-type name='B' /> \ </typesystem>"; TestUtil t(cppCode, xmlCode, false); AbstractMetaClassList classes = t.builder()->classes(); QCOMPARE(classes.count(), 1); AbstractMetaClass* classB = classes.findClass("B"); QVERIFY(classB); PrimitiveTypeEntry* typeEntry = TypeDatabase::instance()->findPrimitiveType("A"); QVERIFY(typeEntry); QVERIFY(typeEntry->hasDefaultConstructor()); QCOMPARE(typeEntry->defaultConstructor(), QString("A()")); }
{ const char* cppCode ="struct A{};"; const char* xmlCode = "\ <typesystem package='Foo'>\ <template name='code_template'>\ code template content\ </template>\ <value-type name='A'>\ <inject-code class='native'>\ <insert-template name='code_template'/>\ </inject-code>\ </value-type>\ </typesystem>"; TestUtil t(cppCode, xmlCode, false); AbstractMetaClassList classes = t.builder()->classes(); QCOMPARE(classes.count(), 1); AbstractMetaClass* classA = classes.findClass("A"); QVERIFY(classA); QCOMPARE(classA->typeEntry()->codeSnips().count(), 1); QString code = classA->typeEntry()->codeSnips().first().code(); QVERIFY(code.contains("code template content")); } void TestInsertTemplate::testInsertTemplateOnModuleInjectCode() { const char* cppCode =""; const char* xmlCode = "\ <typesystem package='Foo'>\ <template name='code_template'>\ code template content\ </template>\