#define CR_HOST #include #include #include #include #include "types.h" struct listener { void on(event ev) { value = ev.payload; } void on(message msg) { value = msg.payload; } int value{}; }; TEST(Lib, Dispatcher) { entt::dispatcher dispatcher; listener listener; dispatcher.sink().connect(&listener::on)>(listener); dispatcher.sink().connect(&listener::on)>(listener); dispatcher.trigger(3); ASSERT_EQ(listener.value, 3); cr_plugin ctx; ctx.userdata = &dispatcher; cr_plugin_load(ctx, PLUGIN); cr_plugin_update(ctx); ASSERT_EQ(listener.value, 42); cr_plugin_close(ctx); }