diff options
author | Andreas Stöckel <astoecke@techfak.uni-bielefeld.de> | 2015-01-05 00:15:38 +0100 |
---|---|---|
committer | Andreas Stöckel <astoecke@techfak.uni-bielefeld.de> | 2015-01-05 00:15:38 +0100 |
commit | a3ef034a2b746a5b0c8bd36e32f4f848890162c4 (patch) | |
tree | 195d738c6a1fd2c38faa662cb16eb957dbf6eae8 /test/core | |
parent | 9b1db73f776309668b1f5fa20dece1849c8d035b (diff) |
adapted event tests
Diffstat (limited to 'test/core')
-rw-r--r-- | test/core/managed/ManagedTest.cpp | 55 |
1 files changed, 35 insertions, 20 deletions
diff --git a/test/core/managed/ManagedTest.cpp b/test/core/managed/ManagedTest.cpp index 28805fe..a943f5d 100644 --- a/test/core/managed/ManagedTest.cpp +++ b/test/core/managed/ManagedTest.cpp @@ -120,22 +120,14 @@ TEST(Managed, events) { Rooted<TestManaged> n{new TestManaged(mgr, a[0])}; - Handle<TestManagedEventOwner> e1{new TestManagedEventOwner(mgr, a[1])}; - Handle<TestManagedEventOwner> e2{new TestManagedEventOwner(mgr, a[2])}; - Handle<TestManagedEventOwner> e3{new TestManagedEventOwner(mgr, a[3])}; - { - Rooted<TestManagedEventOwner> re1{e1}; - Rooted<TestManagedEventOwner> re2{e2}; - Rooted<TestManagedEventOwner> re3{e3}; - - ASSERT_EQ(0, n->registerEvent(EventType::UPDATE, handleEvent, re1)); - ASSERT_EQ( - 1, n->registerEvent(EventType::NAME_CHANGE, handleEvent, re2)); - ASSERT_EQ( - 2, n->registerEvent(EventType::NAME_CHANGE, handleEvent, re3)); - ASSERT_TRUE(a[0] && a[1] && a[2] && a[3]); - } - ASSERT_TRUE(a[0] && a[1] && a[2] && a[3]); + Rooted<TestManagedEventOwner> e1{new TestManagedEventOwner(mgr, a[1])}; + Rooted<TestManagedEventOwner> e2{new TestManagedEventOwner(mgr, a[2])}; + Rooted<TestManagedEventOwner> e3{new TestManagedEventOwner(mgr, a[3])}; + ASSERT_EQ(0U, n->registerEvent(EventType::UPDATE, handleEvent, e1)); + ASSERT_EQ(1U, + n->registerEvent(EventType::NAME_CHANGE, handleEvent, e2)); + ASSERT_EQ(2U, + n->registerEvent(EventType::NAME_CHANGE, handleEvent, e3)); ASSERT_EQ(0, e1->triggered); ASSERT_EQ(0, e2->triggered); @@ -164,7 +156,6 @@ TEST(Managed, events) ASSERT_TRUE(n->unregisterEvent(1)); ASSERT_FALSE(n->unregisterEvent(1)); - ASSERT_FALSE(a[2]); { Event ev{EventType::NAME_CHANGE}; @@ -175,7 +166,6 @@ TEST(Managed, events) ASSERT_TRUE(n->unregisterEvent(0)); ASSERT_FALSE(n->unregisterEvent(0)); - ASSERT_FALSE(a[1]); { Event ev{EventType::UPDATE}; @@ -185,14 +175,39 @@ TEST(Managed, events) ASSERT_TRUE(n->unregisterEvent(2)); ASSERT_FALSE(n->unregisterEvent(2)); - ASSERT_FALSE(a[3]); { Event ev{EventType::NAME_CHANGE}; ASSERT_FALSE(n->triggerEvent(ev)); } } - ASSERT_FALSE(a[0] || a[1] || a[2] || a[3]); +} + +TEST(Managed, eventMemMgmt) +{ + Manager mgr(1); + std::array<bool, 4> a; + { + Rooted<TestManaged> n{new TestManaged(mgr, a[0])}; + + { + Rooted<TestManagedEventOwner> e1{ + new TestManagedEventOwner(mgr, a[1])}; + ASSERT_EQ(0U, n->registerEvent(EventType::UPDATE, handleEvent, e1)); + ASSERT_EQ(0, e1->triggered); + + { + Event ev{EventType::UPDATE}; + ASSERT_TRUE(n->triggerEvent(ev)); + ASSERT_EQ(1, e1->triggered); + } + } + + { + Event ev{EventType::UPDATE}; + ASSERT_FALSE(n->triggerEvent(ev)); + } + } } } |