#include #include #include using namespace psemek; using namespace psemek::ecs; namespace { struct component_1 { int value; psemek_ecs_declare_uuid("component_1") }; struct component_2 { int value; psemek_ecs_declare_uuid("component_2") }; } test_case(ecs_callback_constructor_create) { container container; int value = 0; container.constructor([&value](component_1 const & c1){ value = c1.value; }); container.create(component_1{10}); expect_equal(value, 10); container.create(component_1{20}); expect_equal(value, 20); container.create(component_2{100}); expect_equal(value, 20); container.create(); expect_equal(value, 20); container.create(component_1{30}); expect_equal(value, 30); container.create(component_1{40}, component_2{200}); expect_equal(value, 40); }