TEST(NAME, DispatchesCreateAndDestroyEntityEvents) { World w; MockEntityManagerListener mock; EntityManager* em = new EntityManager(&w); em->event.addListener(&mock, "mock"); // uninteresting calls EXPECT_CALL(mock, onEntitiesReallocatedHelper(testing::_)) .Times(testing::AtLeast(0)); // interesting calls EXPECT_CALL(mock, onCreateEntityHelper(testing::_)) .Times(1); EXPECT_CALL(mock, onDestroyEntityHelper(testing::_)) .Times(1); Entity& e = em->createEntity("entity"); ASSERT_EQ(1, em->getEntityList().size()); em->destroyEntity(e); em->event.removeListener("mock"); delete em; }