piDisconnectAll private
This commit is contained in:
@@ -5,8 +5,13 @@
|
||||
class Object : public PIObject
|
||||
{
|
||||
PIOBJECT(Object)
|
||||
public:
|
||||
Object() {x=0;}
|
||||
public:
|
||||
Object() {
|
||||
x=0;
|
||||
// CONNECTL(this, deleted, [](PIObject * o){
|
||||
// piCout << "deteted" << o;
|
||||
// });
|
||||
}
|
||||
void test() {event_test();}
|
||||
void test_val() {event_val(x);}
|
||||
int getX() const {return x;}
|
||||
@@ -41,12 +46,15 @@ TEST(PiobjectConnections, CONNECT0) {
|
||||
b.test();
|
||||
ASSERT_EQ(a.getX(), 0);
|
||||
ASSERT_EQ(b.getX(), 1);
|
||||
// piCout << "================";
|
||||
}
|
||||
|
||||
|
||||
TEST(PiobjectConnections, CONNECT0_DISCONNECT) {
|
||||
Object a;
|
||||
Object b;
|
||||
a.setName("A");
|
||||
b.setName("B");
|
||||
ASSERT_EQ(a.getX(), 0);
|
||||
ASSERT_EQ(b.getX(), 0);
|
||||
a.test();
|
||||
@@ -64,7 +72,7 @@ TEST(PiobjectConnections, CONNECT0_DISCONNECT) {
|
||||
b.test();
|
||||
ASSERT_EQ(a.getX(), 0);
|
||||
ASSERT_EQ(b.getX(), 1);
|
||||
a.piDisconnect(&b);
|
||||
PIObject::piDisconnect(&a, "event_test");
|
||||
ASSERT_EQ(a.getX(), 0);
|
||||
ASSERT_EQ(b.getX(), 1);
|
||||
a.test();
|
||||
@@ -73,6 +81,7 @@ TEST(PiobjectConnections, CONNECT0_DISCONNECT) {
|
||||
b.test();
|
||||
ASSERT_EQ(a.getX(), 0);
|
||||
ASSERT_EQ(b.getX(), 1);
|
||||
// piCout << "================";
|
||||
}
|
||||
|
||||
TEST(PiobjectConnections, CONNECTU) {
|
||||
@@ -95,6 +104,7 @@ TEST(PiobjectConnections, CONNECTU) {
|
||||
b.test();
|
||||
ASSERT_EQ(a.getX(), 0);
|
||||
ASSERT_EQ(b.getX(), 1);
|
||||
// piCout << "================";
|
||||
}
|
||||
|
||||
TEST(PiobjectConnections, CONNECTU_DISCONNECT) {
|
||||
@@ -117,7 +127,7 @@ TEST(PiobjectConnections, CONNECTU_DISCONNECT) {
|
||||
b.test();
|
||||
ASSERT_EQ(a.getX(), 0);
|
||||
ASSERT_EQ(b.getX(), 1);
|
||||
PIObject::piDisconnect(&a);
|
||||
PIObject::piDisconnect(&a, "event_test");
|
||||
ASSERT_EQ(a.getX(), 0);
|
||||
ASSERT_EQ(b.getX(), 1);
|
||||
a.test();
|
||||
@@ -144,6 +154,7 @@ TEST(PiobjectConnections, CONNECTU_DISCONNECT) {
|
||||
a.test_val();
|
||||
ASSERT_EQ(a.getX(), -1);
|
||||
ASSERT_EQ(b.getX(), 99);
|
||||
// piCout << "================";
|
||||
}
|
||||
|
||||
|
||||
@@ -169,6 +180,7 @@ TEST(PiobjectConnections, CONNECTL) {
|
||||
b.test();
|
||||
ASSERT_EQ(a.getX(), 0);
|
||||
ASSERT_EQ(b.getX(), 7);
|
||||
// piCout << "================";
|
||||
}
|
||||
|
||||
TEST(PiobjectConnections, CONNECTL_DISCONNECT) {
|
||||
@@ -196,12 +208,13 @@ TEST(PiobjectConnections, CONNECTL_DISCONNECT) {
|
||||
b.handler_test();
|
||||
ASSERT_EQ(a.getX(), 0);
|
||||
ASSERT_EQ(b.getX(), 2);
|
||||
PIObject::piDisconnect(&a);
|
||||
PIObject::piDisconnect(&a, "event_test");
|
||||
ASSERT_EQ(a.getX(), 0);
|
||||
ASSERT_EQ(b.getX(), 2);
|
||||
a.test();
|
||||
ASSERT_EQ(a.getX(), 0);
|
||||
ASSERT_EQ(b.getX(), 2);
|
||||
// piCout << "================";
|
||||
}
|
||||
|
||||
TEST(PiobjectConnections, CONNECTL_twice) {
|
||||
@@ -222,7 +235,7 @@ TEST(PiobjectConnections, CONNECTL_twice) {
|
||||
b.handler_val(0);
|
||||
ASSERT_EQ(a.getX(), 0);
|
||||
ASSERT_EQ(b.getX(), 0);
|
||||
PIObject::piDisconnect(&a);
|
||||
PIObject::piDisconnect(&a, "event_test");
|
||||
a.test();
|
||||
ASSERT_EQ(a.getX(), 0);
|
||||
ASSERT_EQ(b.getX(), 0);
|
||||
@@ -232,4 +245,73 @@ TEST(PiobjectConnections, CONNECTL_twice) {
|
||||
a.test();
|
||||
ASSERT_EQ(a.getX(), 0);
|
||||
ASSERT_EQ(b.getX(), 1);
|
||||
// piCout << "================";
|
||||
}
|
||||
|
||||
TEST(PiobjectConnections, CONNECT_AFTER_DISCONNECT) {
|
||||
Object a;
|
||||
Object b;
|
||||
CONNECTL(&a, event_test, [&b](){
|
||||
b.handler_test();
|
||||
});
|
||||
a.test();
|
||||
ASSERT_EQ(b.getX(), 1);
|
||||
PIObject::piDisconnect(&a, "event_test");
|
||||
a.test();
|
||||
ASSERT_EQ(b.getX(), 1);
|
||||
DISCONNECT1(void, int, &a, event_val, &b, handler_val);
|
||||
CONNECT1(void, int, &a, event_val, &b, handler_val);
|
||||
a.handler_val(8);
|
||||
a.test_val();
|
||||
ASSERT_EQ(a.getX(), 8);
|
||||
ASSERT_EQ(b.getX(), 8);
|
||||
// piCout << "================";
|
||||
}
|
||||
|
||||
TEST(PiobjectConnections, CONNECTL_WRONG_DISCONNECT) {
|
||||
Object a;
|
||||
Object b;
|
||||
CONNECTL(&a, event_test, [&b](){
|
||||
b.handler_test();
|
||||
});
|
||||
a.test();
|
||||
ASSERT_EQ(b.getX(), 1);
|
||||
PIObject::piDisconnect(&b, "event_test");
|
||||
a.test();
|
||||
ASSERT_EQ(b.getX(), 2);
|
||||
PIObject::piDisconnect(&a, "event_test");
|
||||
a.test();
|
||||
ASSERT_EQ(b.getX(), 2);
|
||||
// piCout << "================";
|
||||
}
|
||||
|
||||
TEST(PiobjectConnections, CONNECT_WRONG_DISCONNECT) {
|
||||
Object a;
|
||||
Object b;
|
||||
|
||||
CONNECT0(void, &a, event_test, &b, handler_test);
|
||||
a.test();
|
||||
ASSERT_EQ(b.getX(), 1);
|
||||
PIObject::piDisconnect(&b, "event_test");
|
||||
a.test();
|
||||
ASSERT_EQ(b.getX(), 2);
|
||||
PIObject::piDisconnect(&a, "event_test");
|
||||
a.test();
|
||||
ASSERT_EQ(b.getX(), 2);
|
||||
// piCout << "================";
|
||||
}
|
||||
|
||||
TEST(PiobjectConnections, CONNECTU_WRONG_DISCONNECT) {
|
||||
Object a;
|
||||
Object b;
|
||||
CONNECTU(&a, event_test, &b, handler_test);
|
||||
a.test();
|
||||
ASSERT_EQ(b.getX(), 1);
|
||||
PIObject::piDisconnect(&b, "event_test");
|
||||
a.test();
|
||||
ASSERT_EQ(b.getX(), 2);
|
||||
PIObject::piDisconnect(&a, "event_test");
|
||||
a.test();
|
||||
ASSERT_EQ(b.getX(), 2);
|
||||
// piCout << "================";
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user