Пример #1
0
void TestInsertTemplate::testInsertTemplateOnClassInjectCode()
{
    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\