summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Stöckel <astoecke@techfak.uni-bielefeld.de>2015-01-05 00:15:38 +0100
committerAndreas Stöckel <astoecke@techfak.uni-bielefeld.de>2015-01-05 00:15:38 +0100
commita3ef034a2b746a5b0c8bd36e32f4f848890162c4 (patch)
tree195d738c6a1fd2c38faa662cb16eb957dbf6eae8
parent9b1db73f776309668b1f5fa20dece1849c8d035b (diff)
adapted event tests
-rw-r--r--test/core/managed/ManagedTest.cpp55
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));
+ }
+ }
}
}