MCPcopy Create free account
hub / github.com/cneben/QuickQanava / testContainerModelStdSharedQObject

Function testContainerModelStdSharedQObject

tests/containers_test.cpp:556–601  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

554
555template <class C>
556void testContainerModelStdSharedQObject(C& container)
557{
558 auto model = container.getModel();
559 ASSERT_TRUE( model != nullptr );
560
561 auto o1{std::make_shared<QObject>()};
562 auto o2{std::make_shared<QObject>()};
563
564 // qcm::ContainerModel::append()
565 ASSERT_EQ( 0, model->getLength() );
566 container.append( o1 );
567 ASSERT_EQ( 1, model->getLength() );
568 container.append(std::make_shared<QObject>());
569 container.append( o2 );
570 ASSERT_EQ( 3, model->getLength() );
571
572 // qcm::ContainerModel::at()
573 ASSERT_TRUE( ( model->at(0) != nullptr ) );
574 EXPECT_TRUE( ( model->at(0) == o1.get() ) );
575 EXPECT_TRUE( ( model->at(2) == o2.get() ) );
576 ASSERT_TRUE( ( model->at(3) == nullptr ) ); // Overflow
577
578 // qcm::ContainerModel::at()
579 QObject* o3{new QObject()};
580 ASSERT_EQ( -1, model->indexOf(nullptr) ); // Invalid input
581 ASSERT_EQ( -1, model->indexOf(o3) ); // Invalid input, o3 is not inserted
582 EXPECT_EQ( 0, model->indexOf(o1.get()) );
583 EXPECT_EQ( 2, model->indexOf(o2.get()) );
584
585 // qcm::ContainerModel::remove()
586 model->remove(nullptr); // Invalid input
587 model->remove(o3); // Invalid input (o3 is not inserted)
588 model->remove(o1.get());
589 ASSERT_EQ( 2, model->getLength() );
590
591 // qcm::ContainerModel::contains()
592 ASSERT_FALSE( model->contains(nullptr) ); // Invalid input
593 ASSERT_FALSE( model->contains(o3) ); // Invalid input o3 is not inserted
594 ASSERT_FALSE( model->contains(o1.get()) ); // o1 has been removce
595 ASSERT_TRUE( model->contains(o2.get()) );
596
597 // qcm::ContainerModel::clear()
598 model->clear();
599 ASSERT_TRUE( model->at(0) == nullptr );
600 ASSERT_EQ( 0, model->getLength() );
601}
602
603TEST(qpsContainerModel, qVectorStdSharedQObject)
604{

Callers

nothing calls this directly

Calls 8

getModelMethod · 0.80
getLengthMethod · 0.80
appendMethod · 0.45
atMethod · 0.45
indexOfMethod · 0.45
removeMethod · 0.45
containsMethod · 0.45
clearMethod · 0.45

Tested by

no test coverage detected