@@ -14,6 +14,7 @@ TEST_CASE("an empty configuration should compile and initialize") {
1414}
1515
1616
17+
1718template <int Id>
1819static bool is_callback_invoked = false ;
1920
@@ -223,7 +224,7 @@ TEST_CASE("configuration with conditional features") {
223224 is_callback_invoked<1 > = false ;
224225 is_callback_invoked<2 > = false ;
225226
226- SECTION (" services can be invoked directly from nexus " ) {
227+ SECTION (" component 0 is enabled " ) {
227228 cib::nexus<ConditionalConfig<0 >> nexus{};
228229
229230 REQUIRE_FALSE (is_callback_invoked<0 >);
@@ -238,4 +239,36 @@ TEST_CASE("configuration with conditional features") {
238239 nexus.builder <TestCallback<2 >>();
239240 REQUIRE_FALSE (is_callback_invoked<2 >);
240241 }
242+
243+ SECTION (" component 1 is enabled" ) {
244+ cib::nexus<ConditionalConfig<1 >> nexus{};
245+
246+ REQUIRE_FALSE (is_callback_invoked<0 >);
247+ nexus.builder <TestCallback<0 >>();
248+ REQUIRE_FALSE (is_callback_invoked<0 >);
249+
250+ REQUIRE_FALSE (is_callback_invoked<1 >);
251+ nexus.builder <TestCallback<1 >>();
252+ REQUIRE (is_callback_invoked<1 >);
253+
254+ REQUIRE_FALSE (is_callback_invoked<2 >);
255+ nexus.builder <TestCallback<2 >>();
256+ REQUIRE_FALSE (is_callback_invoked<2 >);
257+ }
258+
259+ SECTION (" component 2 is enabled" ) {
260+ cib::nexus<ConditionalConfig<2 >> nexus{};
261+
262+ REQUIRE_FALSE (is_callback_invoked<0 >);
263+ nexus.builder <TestCallback<0 >>();
264+ REQUIRE_FALSE (is_callback_invoked<0 >);
265+
266+ REQUIRE_FALSE (is_callback_invoked<1 >);
267+ nexus.builder <TestCallback<1 >>();
268+ REQUIRE_FALSE (is_callback_invoked<1 >);
269+
270+ REQUIRE_FALSE (is_callback_invoked<2 >);
271+ nexus.builder <TestCallback<2 >>();
272+ REQUIRE (is_callback_invoked<2 >);
273+ }
241274}
0 commit comments