Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Jan 17, 2016, 10:29:21 PM (8 years ago)
Author:
landauf
Message:

merged branch cpp11_v3 back to trunk

Location:
code/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • code/trunk

  • code/trunk/test/core/object/IteratorTest.cc

    r10624 r11071  
    1515        {
    1616            public:
    17             TestInterface() { RegisterObject(TestInterface); }
     17                TestInterface() { RegisterObject(TestInterface); }
    1818        };
    1919
     
    3232        {
    3333            public:
    34                 virtual void SetUp()
     34                virtual void SetUp() override
    3535                {
    3636                    new IdentifierManager();
    3737                    ModuleInstance::getCurrentModuleInstance()->loadAllStaticallyInitializedInstances(StaticInitialization::IDENTIFIER);
    38                     Context::setRootContext(new Context(NULL));
     38                    Context::setRootContext(new Context(nullptr));
    3939                }
    4040
    41                 virtual void TearDown()
     41                virtual void TearDown() override
    4242                {
    4343                    Context::destroyRootContext();
     
    5555    TEST_F(IteratorTest, CanAssignIterator)
    5656    {
    57         Iterator<TestInterface> it = ObjectList<TestInterface>::begin();
     57        ObjectList<TestInterface> list;
     58        Iterator<TestInterface> it = list.begin();
    5859    }
    5960
     
    6162    {
    6263        size_t i = 0;
    63         for (Iterator<TestInterface> it = ObjectList<TestInterface>::begin(); it != ObjectList<TestInterface>::end(); ++it)
     64        ObjectList<TestInterface> list;
     65        for (Iterator<TestInterface> it = list.begin(); it != list.end(); ++it)
    6466            ++i;
    6567        EXPECT_EQ(0u, i);
     
    7779
    7880        // iterate over interfaces but use a TestClass iterator - now we can call TestClass::test()
    79         for (Iterator<TestClass> it = ObjectList<TestInterface>::begin(); it != ObjectList<TestInterface>::end(); ++it)
     81        ObjectList<TestInterface> list;
     82        for (Iterator<TestClass> it = list.begin(); it != list.end(); ++it)
    8083            it->test();
    8184    }
     85
     86    TEST_F(IteratorTest, CanIterateOverInterfaceListWithInterfaceIterator)
     87    {
     88        TestClass testClass;
     89        TestInterface testInterface;
     90
     91        size_t i = 0;
     92        ObjectList<TestInterface> list;
     93        for (Iterator<TestInterface> it = list.begin(); it != list.end(); ++it)
     94        {
     95            ++i;
     96            if (i == 1u) EXPECT_EQ(&testClass, *it);
     97            if (i == 2u) EXPECT_EQ(&testInterface, *it);
     98        }
     99        EXPECT_EQ(2u, i);
     100    }
     101
     102    TEST_F(IteratorTest, CanIterateOverClassListWithClassIterator)
     103    {
     104        TestClass testClass;
     105        TestInterface testInterface;
     106
     107        size_t i = 0;
     108        ObjectList<TestClass> list;
     109        for (Iterator<TestClass> it = list.begin(); it != list.end(); ++it)
     110        {
     111            ++i;
     112            if (i == 1u) EXPECT_EQ(&testClass, *it);
     113        }
     114        EXPECT_EQ(1u, i);
     115    }
     116
     117    TEST_F(IteratorTest, CanIterateOverInterfaceListWithClassIterator)
     118    {
     119        TestClass testClass;
     120        TestInterface testInterface;
     121
     122        size_t i = 0;
     123        ObjectList<TestInterface> list;
     124        for (Iterator<TestClass> it = list.begin(); it != list.end(); ++it)
     125        {
     126            ++i;
     127            if (i == 1u) EXPECT_EQ(&testClass, *it);
     128            if (i == 2u) EXPECT_EQ(nullptr, *it);
     129        }
     130        EXPECT_EQ(2u, i);
     131    }
     132
     133    TEST_F(IteratorTest, CanIterateOverClassListWithInterfaceIterator)
     134    {
     135        TestClass testClass;
     136        TestInterface testInterface;
     137
     138        size_t i = 0;
     139        ObjectList<TestClass> list;
     140        for (Iterator<TestInterface> it = list.begin(); it != list.end(); ++it)
     141        {
     142            ++i;
     143            if (i == 1u) EXPECT_EQ(&testClass, *it);
     144        }
     145        EXPECT_EQ(1u, i);
     146    }
    82147}
Note: See TracChangeset for help on using the changeset viewer.