diff options
Diffstat (limited to 'tests/auto/core/qentity/tst_qentity.cpp')
-rw-r--r-- | tests/auto/core/qentity/tst_qentity.cpp | 46 |
1 files changed, 36 insertions, 10 deletions
diff --git a/tests/auto/core/qentity/tst_qentity.cpp b/tests/auto/core/qentity/tst_qentity.cpp index efebb26ef..e27cd1fc9 100644 --- a/tests/auto/core/qentity/tst_qentity.cpp +++ b/tests/auto/core/qentity/tst_qentity.cpp @@ -556,30 +556,55 @@ void tst_Entity::removeSeveralTimesSameComponent() void tst_Entity::checkCloning_data() { QTest::addColumn<Qt3DCore::QEntity *>("entity"); + QTest::addColumn<QVector<QNodeId>>("childEntityIds"); + QTest::addColumn<int>("creationChangeCount"); - QTest::newRow("defaultConstructed") << new MyEntity(); + { + QTest::newRow("defaultConstructed") << new MyEntity() << QVector<QNodeId>() << 1; + } + + { + Qt3DCore::QEntity *entityWithComponents = new MyEntity(); + Qt3DCore::QComponent *component1 = new MyQComponent(); + Qt3DCore::QComponent *component2 = new MyQComponent(); + Qt3DCore::QComponent *component3 = new MyQComponent(); + entityWithComponents->addComponent(component1); + entityWithComponents->addComponent(component2); + entityWithComponents->addComponent(component3); + QTest::newRow("entityWithComponents") << entityWithComponents << QVector<QNodeId>() << 4; + } - Qt3DCore::QEntity *entityWithComponents = new MyEntity(); - Qt3DCore::QComponent *component1 = new MyQComponent(); - Qt3DCore::QComponent *component2 = new MyQComponent(); - Qt3DCore::QComponent *component3 = new MyQComponent(); - entityWithComponents->addComponent(component1); - entityWithComponents->addComponent(component2); - entityWithComponents->addComponent(component3); - QTest::newRow("entityWithComponents") << entityWithComponents; + { + Qt3DCore::QEntity *entityWithChildren = new MyEntity(); + Qt3DCore::QEntity *child1 = new MyEntity(entityWithChildren); + Qt3DCore::QEntity *child2 = new MyEntity(entityWithChildren); + QVector<QNodeId> childIds = {child1->id(), child2->id()}; + QTest::newRow("entityWithChildren") << entityWithChildren << childIds << 3; + } + + { + Qt3DCore::QEntity *entityWithNestedChildren = new MyEntity(); + Qt3DCore::QEntity *child = new MyEntity(entityWithNestedChildren); + Qt3DCore::QNode *dummy = new Qt3DCore::QNode(entityWithNestedChildren); + Qt3DCore::QEntity *grandChild = new MyEntity(entityWithNestedChildren); + QVector<QNodeId> childIds = {child->id(), grandChild->id()}; + QTest::newRow("entityWithNestedChildren") << entityWithNestedChildren << childIds << 4; + } } void tst_Entity::checkCloning() { // GIVEN QFETCH(Qt3DCore::QEntity *, entity); + QFETCH(QVector<QNodeId>, childEntityIds); + QFETCH(int, creationChangeCount); // WHEN Qt3DCore::QNodeCreatedChangeGenerator creationChangeGenerator(entity); QVector<Qt3DCore::QNodeCreatedChangeBasePtr> creationChanges = creationChangeGenerator.creationChanges(); // THEN - QCOMPARE(creationChanges.size(), 1 + entity->components().size()); + QCOMPARE(creationChanges.size(), creationChangeCount); const Qt3DCore::QNodeCreatedChangePtr<Qt3DCore::QEntityData> creationChangeData = qSharedPointerCast<Qt3DCore::QNodeCreatedChange<Qt3DCore::QEntityData>>(creationChanges.first()); @@ -591,6 +616,7 @@ void tst_Entity::checkCloning() QCOMPARE(creationChangeData->metaObject(), entity->metaObject()); QCOMPARE(creationChangeData->parentId(), entity->parentNode() ? entity->parentNode()->id() : Qt3DCore::QNodeId()); QCOMPARE(cloneData.parentEntityId, entity->parentEntity() ? entity->parentEntity()->id() : Qt3DCore::QNodeId()); + QCOMPARE(cloneData.childEntityIds, childEntityIds); QCOMPARE(cloneData.componentIdsAndTypes.size(), entity->components().size()); const QVector<Qt3DCore::QComponent *> &components = entity->components(); |