Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Mar 30, 2013, 10:40:48 PM (11 years ago)
Author:
landauf
Message:

implemented method to change the context of a Listable. the object will then be added to the object lists of the new context

File:
1 edited

Legend:

Unmodified
Added
Removed
  • code/branches/core6/test/core/object/ListableTest.cc

    r9606 r9608  
    2020
    2121        template <class T>
    22         bool objectListContains(T* element)
     22        bool objectListContains(T* element, Context* context = Context::getRootContext())
    2323        {
    24             for (typename ObjectList<T>::iterator it = ObjectList<T>::begin(); it != ObjectList<T>::end(); ++it)
     24            for (typename ObjectList<T>::iterator it = static_cast<ObjectListElement<T>*>(context->getObjectList<T>()->begin());
     25                    it != static_cast<ObjectListElement<T>*>(context->getObjectList<T>()->end()); ++it)
    2526                if (*it == element)
    2627                    return true;
     
    7778        EXPECT_EQ(0u, ObjectList<ListableSubclassTest>::size());
    7879    }
     80
     81    TEST(ListableTest, CanChangeContext)
     82    {
     83        Context* rootContext = Context::getRootContext();
     84        Context newContext;
     85        ListableSubclassTest test;
     86
     87        EXPECT_EQ(1u, rootContext->getObjectList<ListableTest>()->size());
     88        EXPECT_TRUE(objectListContains<ListableTest>(&test, rootContext));
     89        EXPECT_EQ(1u, rootContext->getObjectList<ListableSubclassTest>()->size());
     90        EXPECT_TRUE(objectListContains<ListableSubclassTest>(&test, rootContext));
     91
     92        EXPECT_EQ(0u, newContext.getObjectList<ListableTest>()->size());
     93        EXPECT_FALSE(objectListContains<ListableTest>(&test, &newContext));
     94        EXPECT_EQ(0u, newContext.getObjectList<ListableSubclassTest>()->size());
     95        EXPECT_FALSE(objectListContains<ListableSubclassTest>(&test, &newContext));
     96
     97        test.setContext(&newContext);
     98
     99        EXPECT_EQ(0u, rootContext->getObjectList<ListableTest>()->size());
     100        EXPECT_FALSE(objectListContains<ListableTest>(&test, rootContext));
     101        EXPECT_EQ(0u, rootContext->getObjectList<ListableSubclassTest>()->size());
     102        EXPECT_FALSE(objectListContains<ListableSubclassTest>(&test, rootContext));
     103
     104        EXPECT_EQ(1u, newContext.getObjectList<ListableTest>()->size());
     105        EXPECT_TRUE(objectListContains<ListableTest>(&test, &newContext));
     106        EXPECT_EQ(1u, newContext.getObjectList<ListableSubclassTest>()->size());
     107        EXPECT_TRUE(objectListContains<ListableSubclassTest>(&test, &newContext));
     108    }
    79109}
Note: See TracChangeset for help on using the changeset viewer.