Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Oct 31, 2015, 11:50:17 PM (10 years ago)
Author:
landauf
Message:

fixed range based for-loop: ObjectList now returns an iterator
added tests and refactored construction of Iterator/IteratorBase/ObjectListIterator

File:
1 edited

Legend:

Unmodified
Added
Removed
  • code/branches/cpp11_v2/test/core/object/IteratorTest.cc

    r10624 r10736  
    8080            it->test();
    8181    }
     82
     83    TEST_F(IteratorTest, CanIterateOverInterfaceListWithInterfaceIterator)
     84    {
     85        TestClass testClass;
     86        TestInterface testInterface;
     87
     88        size_t i = 0;
     89        for (Iterator<TestInterface> it = ObjectList<TestInterface>::begin(); it != ObjectList<TestInterface>::end(); ++it)
     90        {
     91            ++i;
     92            if (i == 1u) EXPECT_EQ(&testClass, *it);
     93            if (i == 2u) EXPECT_EQ(&testInterface, *it);
     94        }
     95        EXPECT_EQ(2u, i);
     96    }
     97
     98    TEST_F(IteratorTest, CanIterateOverClassListWithClassIterator)
     99    {
     100        TestClass testClass;
     101        TestInterface testInterface;
     102
     103        size_t i = 0;
     104        for (Iterator<TestClass> it = ObjectList<TestClass>::begin(); it != ObjectList<TestClass>::end(); ++it)
     105        {
     106            ++i;
     107            if (i == 1u) EXPECT_EQ(&testClass, *it);
     108        }
     109        EXPECT_EQ(1u, i);
     110    }
     111
     112    TEST_F(IteratorTest, CanIterateOverInterfaceListWithClassIterator)
     113    {
     114        TestClass testClass;
     115        TestInterface testInterface;
     116
     117        size_t i = 0;
     118        for (Iterator<TestClass> it = ObjectList<TestInterface>::begin(); it != ObjectList<TestInterface>::end(); ++it)
     119        {
     120            ++i;
     121            if (i == 1u) EXPECT_EQ(&testClass, *it);
     122            if (i == 2u) EXPECT_EQ(NULL, *it);
     123        }
     124        EXPECT_EQ(2u, i);
     125    }
     126
     127    TEST_F(IteratorTest, CanIterateOverClassListWithInterfaceIterator)
     128    {
     129        TestClass testClass;
     130        TestInterface testInterface;
     131
     132        size_t i = 0;
     133        for (Iterator<TestInterface> it = ObjectList<TestClass>::begin(); it != ObjectList<TestClass>::end(); ++it)
     134        {
     135            ++i;
     136            if (i == 1u) EXPECT_EQ(&testClass, *it);
     137        }
     138        EXPECT_EQ(1u, i);
     139    }
    82140}
Note: See TracChangeset for help on using the changeset viewer.