From bc7d129a9e00ff29ef78f39b2b4fe19f45c41a4c Mon Sep 17 00:00:00 2001 From: Andrey Date: Mon, 4 Oct 2021 12:07:01 +0300 Subject: [PATCH] piobject/connect.cpp tests --- tests/piobject/connect.cpp | 88 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) diff --git a/tests/piobject/connect.cpp b/tests/piobject/connect.cpp index d9411404..b254cdf8 100644 --- a/tests/piobject/connect.cpp +++ b/tests/piobject/connect.cpp @@ -145,3 +145,91 @@ TEST(PiobjectConnections, CONNECTU_DISCONNECT) { ASSERT_EQ(a.getX(), -1); ASSERT_EQ(b.getX(), 99); } + + +TEST(PiobjectConnections, CONNECTL) { + Object a; + Object b; + ASSERT_EQ(a.getX(), 0); + ASSERT_EQ(b.getX(), 0); + a.test(); + ASSERT_EQ(a.getX(), 0); + ASSERT_EQ(b.getX(), 0); + b.test(); + ASSERT_EQ(a.getX(), 0); + ASSERT_EQ(b.getX(), 0); + CONNECTL(&a, event_test, [&b](){ + b.handler_val(7); + }); + ASSERT_EQ(a.getX(), 0); + ASSERT_EQ(b.getX(), 0); + a.test(); + ASSERT_EQ(a.getX(), 0); + ASSERT_EQ(b.getX(), 7); + b.test(); + ASSERT_EQ(a.getX(), 0); + ASSERT_EQ(b.getX(), 7); +} + +TEST(PiobjectConnections, CONNECTL_DISCONNECT) { + Object a; + Object b; + ASSERT_EQ(a.getX(), 0); + ASSERT_EQ(b.getX(), 0); + a.test(); + ASSERT_EQ(a.getX(), 0); + ASSERT_EQ(b.getX(), 0); + b.test(); + ASSERT_EQ(a.getX(), 0); + ASSERT_EQ(b.getX(), 0); + CONNECTL(&a, event_test, [&b](){ + b.handler_test(); + }); + ASSERT_EQ(a.getX(), 0); + ASSERT_EQ(b.getX(), 0); + a.test(); + ASSERT_EQ(a.getX(), 0); + ASSERT_EQ(b.getX(), 1); + b.test(); + ASSERT_EQ(a.getX(), 0); + ASSERT_EQ(b.getX(), 1); + b.handler_test(); + ASSERT_EQ(a.getX(), 0); + ASSERT_EQ(b.getX(), 2); + PIObject::piDisconnect(&a); + ASSERT_EQ(a.getX(), 0); + ASSERT_EQ(b.getX(), 2); + a.test(); + ASSERT_EQ(a.getX(), 0); + ASSERT_EQ(b.getX(), 2); +} + +TEST(PiobjectConnections, CONNECTL_twice) { + Object a; + Object b; + CONNECTL(&a, event_test, [&b](){ + b.handler_test(); + }); + a.test(); + ASSERT_EQ(a.getX(), 0); + ASSERT_EQ(b.getX(), 1); + CONNECTL(&a, event_test, [&b](){ + b.handler_test(); + }); + a.test(); + ASSERT_EQ(a.getX(), 0); + ASSERT_EQ(b.getX(), 3); + b.handler_val(0); + ASSERT_EQ(a.getX(), 0); + ASSERT_EQ(b.getX(), 0); + PIObject::piDisconnect(&a); + a.test(); + ASSERT_EQ(a.getX(), 0); + ASSERT_EQ(b.getX(), 0); + CONNECTL(&a, event_test, [&b](){ + b.handler_test(); + }); + a.test(); + ASSERT_EQ(a.getX(), 0); + ASSERT_EQ(b.getX(), 1); +}