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)) { … }

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 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.