]> code.bitgloo.com Git - clyne/entityx.git/commitdiff
Test for multiple event subscriptions.
authorAlec Thomas <alec@swapoff.org>
Thu, 19 Mar 2015 03:15:09 +0000 (14:15 +1100)
committerAlec Thomas <alec@swapoff.org>
Thu, 19 Mar 2015 04:38:09 +0000 (15:38 +1100)
entityx/Event_test.cc

index 0cf70e07dd6726bf294219fc5a5f9ce473ff6467..c643ee98b807018b50bb5fe41ad2bf1cf846da7d 100644 (file)
@@ -26,11 +26,21 @@ struct Explosion {
   int damage;
 };
 
+
+struct Collision {
+  explicit Collision(int damage) : damage(damage) {}
+  int damage;
+};
+
 struct ExplosionSystem : public Receiver<ExplosionSystem> {
   void receive(const Explosion &explosion) {
     damage_received += explosion.damage;
   }
 
+  void receive(const Collision &collision) {
+    damage_received += collision.damage;
+  }
+
   int damage_received = 0;
 };
 
@@ -38,9 +48,12 @@ TEST_CASE("TestEmitReceive") {
   EventManager em;
   ExplosionSystem explosion_system;
   em.subscribe<Explosion>(explosion_system);
+  em.subscribe<Collision>(explosion_system);
   REQUIRE(0 == explosion_system.damage_received);
   em.emit<Explosion>(10);
   REQUIRE(10 == explosion_system.damage_received);
+  em.emit<Collision>(10);
+  REQUIRE(20 == explosion_system.damage_received);
 }
 
 TEST_CASE("TestUntypedEmitReceive") {