Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/core6/test/core/object/ObjectListBaseTest.cc @ 9605

Last change on this file since 9605 was 9605, checked in by landauf, 11 years ago

added some tests for object list and iterators

  • Property svn:eol-style set to native
File size: 2.3 KB
Line 
1#include <gtest/gtest.h>
2#include <gmock/gmock.h>
3#include "core/object/ObjectListBase.h"
4
5namespace orxonox
6{
7    namespace
8    {
9        class ObjectListElementRemovalListenerMock : public ObjectListElementRemovalListener
10        {
11            public:
12                MOCK_METHOD1(removedElement, void(ObjectListBaseElement*));
13        };
14    }
15
16    TEST(ObjectListBaseTest, EmptyListHasSizeZero)
17    {
18        ObjectListBase list;
19        EXPECT_EQ(0u, list.size());
20    }
21
22    TEST(ObjectListBaseTest, CanAddElement)
23    {
24        ObjectListBase list;
25        ObjectListBaseElement* element = new ObjectListBaseElement(NULL);
26        list.addElement(element);
27        EXPECT_EQ(1u, list.size());
28    }
29
30    TEST(ObjectListBaseTest, CanRemoveElement)
31    {
32        ObjectListBase list;
33        ObjectListBaseElement* element = new ObjectListBaseElement(NULL);
34        list.addElement(element);
35        EXPECT_EQ(1u, list.size());
36        list.removeElement(element);
37        EXPECT_EQ(0u, list.size());
38        delete element;
39    }
40
41    TEST(ObjectListBaseTest, CanAddObject)
42    {
43        ObjectListBase list;
44        list.add(static_cast<Listable*>(NULL));
45        EXPECT_EQ(1u, list.size());
46    }
47
48    TEST(ObjectListBaseTest, HasCorrectSize)
49    {
50        ObjectListBase list;
51        EXPECT_EQ(0u, list.size());
52        {
53            ObjectListBaseElement element1(NULL);
54            list.addElement(&element1);
55            EXPECT_EQ(1u, list.size());
56            {
57                ObjectListBaseElement element1(NULL);
58                list.addElement(&element1);
59                EXPECT_EQ(2u, list.size());
60                {
61                    ObjectListBaseElement element1(NULL);
62                    list.addElement(&element1);
63                    EXPECT_EQ(3u, list.size());
64                }
65                EXPECT_EQ(2u, list.size());
66            }
67            EXPECT_EQ(1u, list.size());
68        }
69        EXPECT_EQ(0u, list.size());
70    }
71
72    TEST(ObjectListBaseTest, CallsListenerOnRemoval)
73    {
74        ObjectListBase list;
75        ObjectListElementRemovalListenerMock listener;
76        list.registerRemovalListener(&listener);
77        ObjectListBaseElement* element = new ObjectListBaseElement(NULL);
78        list.addElement(element);
79        EXPECT_CALL(listener, removedElement(element));
80        list.removeElement(element);
81        delete element;
82    }
83}
Note: See TracBrowser for help on using the repository browser.