#include "doctest.h" #include using namespace tt; TEST_CASE("PubSub publishing with no subscriptions should not crash") { PubSub pubsub; pubsub.publish(1); } TEST_CASE("PubSub subscription receives published data") { PubSub pubsub; int value = 0; auto subscription = pubsub.subscribe([&value](auto newValue) { value = newValue; }); pubsub.publish(1); pubsub.unsubscribe(subscription); CHECK_EQ(value, 1); } TEST_CASE("PubSub unsubscribed subscription does not receive published data") { PubSub pubsub; int value = 0; auto subscription = pubsub.subscribe([&value](auto newValue) { value = newValue; }); pubsub.unsubscribe(subscription); pubsub.publish(1); CHECK_EQ(value, 0); }