main.cpp 571 B

123456789101112131415161718192021222324252627282930
  1. #define CR_HOST
  2. #include <functional>
  3. #include <gtest/gtest.h>
  4. #include "common/boxed_type.h"
  5. #include "common/emitter.h"
  6. #include <cr.h>
  7. TEST(Lib, Emitter) {
  8. test::emitter emitter;
  9. int value{};
  10. ASSERT_EQ(value, 0);
  11. emitter.on<test::boxed_int>([&](test::boxed_int msg, test::emitter &owner) {
  12. value = msg.value;
  13. owner.erase<test::boxed_int>();
  14. });
  15. cr_plugin ctx;
  16. cr_plugin_load(ctx, PLUGIN);
  17. ctx.userdata = &emitter;
  18. cr_plugin_update(ctx);
  19. ASSERT_EQ(value, 4);
  20. emitter = {};
  21. cr_plugin_close(ctx);
  22. }