Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Dec 6, 2015, 2:51:14 PM (8 years ago)
Author:
landauf
Message:

no static functions anymore in ObjectList. you need to instantiate an ObjectList to use it.
this allows for prettier for-loop syntax when iterating over an ObjectList of a specific context: for (T* object : ObjectList<T>(context)) { … }

Location:
code/branches/cpp11_v2/test/core/object
Files:
4 edited

Legend:

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

    r10846 r10920  
    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    }
     
    8790
    8891        size_t i = 0;
    89         for (Iterator<TestInterface> it = ObjectList<TestInterface>::begin(); it != ObjectList<TestInterface>::end(); ++it)
     92        ObjectList<TestInterface> list;
     93        for (Iterator<TestInterface> it = list.begin(); it != list.end(); ++it)
    9094        {
    9195            ++i;
     
    102106
    103107        size_t i = 0;
    104         for (Iterator<TestClass> it = ObjectList<TestClass>::begin(); it != ObjectList<TestClass>::end(); ++it)
     108        ObjectList<TestClass> list;
     109        for (Iterator<TestClass> it = list.begin(); it != list.end(); ++it)
    105110        {
    106111            ++i;
     
    116121
    117122        size_t i = 0;
    118         for (Iterator<TestClass> it = ObjectList<TestInterface>::begin(); it != ObjectList<TestInterface>::end(); ++it)
     123        ObjectList<TestInterface> list;
     124        for (Iterator<TestClass> it = list.begin(); it != list.end(); ++it)
    119125        {
    120126            ++i;
     
    131137
    132138        size_t i = 0;
    133         for (Iterator<TestInterface> it = ObjectList<TestClass>::begin(); it != ObjectList<TestClass>::end(); ++it)
     139        ObjectList<TestClass> list;
     140        for (Iterator<TestInterface> it = list.begin(); it != list.end(); ++it)
    134141        {
    135142            ++i;
  • code/branches/cpp11_v2/test/core/object/ListableTest.cc

    r10846 r10920  
    6363    {
    6464        ListableClassTest test;
    65         EXPECT_EQ(1u, ObjectList<ListableClassTest>::size());
     65        EXPECT_EQ(1u, ObjectList<ListableClassTest>().size());
    6666        EXPECT_TRUE(objectListContains<ListableClassTest>(&test));
    6767    }
     
    7070    {
    7171        ListableSubclassTest test;
    72         EXPECT_EQ(1u, ObjectList<ListableClassTest>::size());
     72        EXPECT_EQ(1u, ObjectList<ListableClassTest>().size());
    7373        EXPECT_TRUE(objectListContains<ListableClassTest>(&test));
    74         EXPECT_EQ(1u, ObjectList<ListableSubclassTest>::size());
     74        EXPECT_EQ(1u, ObjectList<ListableSubclassTest>().size());
    7575        EXPECT_TRUE(objectListContains<ListableSubclassTest>(&test));
    7676    }
     
    7878    TEST_F(ListableTest, RemovesFromObjectList)
    7979    {
    80         EXPECT_EQ(0u, ObjectList<ListableClassTest>::size());
     80        EXPECT_EQ(0u, ObjectList<ListableClassTest>().size());
    8181        {
    8282            ListableClassTest test;
    83             EXPECT_EQ(1u, ObjectList<ListableClassTest>::size());
     83            EXPECT_EQ(1u, ObjectList<ListableClassTest>().size());
    8484            EXPECT_TRUE(objectListContains<ListableClassTest>(&test));
    8585        }
    86         EXPECT_EQ(0u, ObjectList<ListableClassTest>::size());
     86        EXPECT_EQ(0u, ObjectList<ListableClassTest>().size());
    8787    }
    8888
    8989    TEST_F(ListableTest, RemovesFromAllObjectLists)
    9090    {
    91         EXPECT_EQ(0u, ObjectList<ListableClassTest>::size());
    92         EXPECT_EQ(0u, ObjectList<ListableSubclassTest>::size());
     91        EXPECT_EQ(0u, ObjectList<ListableClassTest>().size());
     92        EXPECT_EQ(0u, ObjectList<ListableSubclassTest>().size());
    9393        {
    9494            ListableSubclassTest test;
    95             EXPECT_EQ(1u, ObjectList<ListableClassTest>::size());
     95            EXPECT_EQ(1u, ObjectList<ListableClassTest>().size());
    9696            EXPECT_TRUE(objectListContains<ListableClassTest>(&test));
    97             EXPECT_EQ(1u, ObjectList<ListableSubclassTest>::size());
     97            EXPECT_EQ(1u, ObjectList<ListableSubclassTest>().size());
    9898            EXPECT_TRUE(objectListContains<ListableSubclassTest>(&test));
    9999        }
    100         EXPECT_EQ(0u, ObjectList<ListableClassTest>::size());
    101         EXPECT_EQ(0u, ObjectList<ListableSubclassTest>::size());
     100        EXPECT_EQ(0u, ObjectList<ListableClassTest>().size());
     101        EXPECT_EQ(0u, ObjectList<ListableSubclassTest>().size());
    102102    }
    103103
  • code/branches/cpp11_v2/test/core/object/ObjectListIteratorTest.cc

    r10846 r10920  
    5555    TEST_F(ObjectListIteratorTest, CanAssignIterator)
    5656    {
    57         ObjectListIterator<TestClass> it = ObjectList<TestClass>::begin();
     57        ObjectList<TestClass> list;
     58        ObjectListIterator<TestClass> it = list.begin();
    5859    }
    5960
     
    6162    {
    6263        size_t i = 0;
    63         for (ObjectListIterator<TestClass> it = ObjectList<TestClass>::begin(); it != ObjectList<TestClass>::end(); ++it)
     64        ObjectList<TestClass> list;
     65        for (ObjectListIterator<TestClass> it = list.begin(); it != list.end(); ++it)
    6466            ++i;
    6567        EXPECT_EQ(0u, i);
     
    7476
    7577        size_t i = 0;
    76         for (ObjectListIterator<TestClass> it = ObjectList<TestClass>::begin(); it != ObjectList<TestClass>::end(); ++it)
     78        ObjectList<TestClass> list;
     79        for (ObjectListIterator<TestClass> it = list.begin(); it != list.end(); ++it)
    7780        {
    7881            ++i;
     
    9295
    9396        size_t i = 0;
    94         for (ObjectListIterator<TestClass> it = ObjectList<TestClass>::rbegin(); it != ObjectList<TestClass>::rend(); --it)
     97        ObjectList<TestClass> list;
     98        for (ObjectListIterator<TestClass> it = list.rbegin(); it != list.rend(); --it)
    9599        {
    96100            ++i;
     
    113117        EXPECT_CALL(test3, test());
    114118
    115         for (ObjectListIterator<TestClass> it = ObjectList<TestClass>::begin(); it != ObjectList<TestClass>::end(); ++it)
     119        ObjectList<TestClass> list;
     120        for (ObjectListIterator<TestClass> it = list.begin(); it != list.end(); ++it)
    116121            it->test();
    117122    }
  • code/branches/cpp11_v2/test/core/object/ObjectListTest.cc

    r10846 r10920  
    1515            public:
    1616                ListableTest() { RegisterObject(ListableTest); }
     17                ListableTest(Context* context) : Listable(context) { RegisterObject(ListableTest); }
    1718                MOCK_METHOD0(test, void());
    1819        };
     
    103104            object->test();
    104105    }
     106
     107    TEST_F(ObjectListTest, UsesCorrectContext)
     108    {
     109        Context context1(Context::getRootContext());
     110        Context context2(Context::getRootContext());
     111
     112        ListableTest test1(&context1);
     113        ListableTest test2(&context1);
     114        ListableTest test3(&context2);
     115
     116        EXPECT_EQ(3, ObjectList<ListableTest>().size());
     117        EXPECT_EQ(2, ObjectList<ListableTest>(&context1).size());
     118        EXPECT_EQ(1, ObjectList<ListableTest>(&context2).size());
     119    }
     120
     121    TEST_F(ObjectListTest, CanIterateOverCorrectContext)
     122    {
     123        Context context1(Context::getRootContext());
     124        Context context2(Context::getRootContext());
     125
     126        ListableTest test1(&context1);
     127        ListableTest test2(&context1);
     128        ListableTest test3(&context2);
     129
     130        {
     131            size_t i = 0;
     132            for (ListableTest* object : ObjectList<ListableTest>(&context1))
     133            {
     134                ++i;
     135                if (i == 1u) EXPECT_EQ(&test1, object);
     136                if (i == 2u) EXPECT_EQ(&test2, object);
     137            }
     138            EXPECT_EQ(2u, i);
     139        }
     140        {
     141            size_t i = 0;
     142            for (ListableTest* object : ObjectList<ListableTest>(&context2))
     143            {
     144                ++i;
     145                if (i == 1u) EXPECT_EQ(&test3, object);
     146            }
     147            EXPECT_EQ(1u, i);
     148        }
     149    }
    105150}
Note: See TracChangeset for help on using the changeset viewer.