From 6344608c7d9205071f0f933553ee547b5a946000 Mon Sep 17 00:00:00 2001
From: Elnagdy Elnagdy <elnagdy.elnagdy@bmw.de>
Date: Wed, 12 Feb 2025 17:29:17 +0100
Subject: [PATCH 1/2] fix: event_start_trigger_in_event_node

---
 engine/BUILD.bazel                  |  3 ++-
 engine/src/Node/EventNode.cpp       |  3 ++-
 engine/tests/Node/EventNodeTest.cpp | 15 ++++++++++++++-
 3 files changed, 18 insertions(+), 3 deletions(-)

diff --git a/engine/BUILD.bazel b/engine/BUILD.bazel
index 1143206a..2c0353c2 100644
--- a/engine/BUILD.bazel
+++ b/engine/BUILD.bazel
@@ -177,7 +177,7 @@ cc_test(
     data = [":open_scenario_engine_test_data"],
     tags = ["test"],
     deps = [
-        "test_utils",
+        ":test_utils",
         ":open_scenario_engine",
         ":open_scenario_engine_test_utils",
         "@googletest//:gtest_main",
@@ -197,6 +197,7 @@ cc_test(
     deps = [
         ":open_scenario_engine",
         ":open_scenario_engine_test_utils",
+        ":test_utils",
         "@googletest//:gtest_main",
         "@mantle_api//:test_utils",
     ],
diff --git a/engine/src/Node/EventNode.cpp b/engine/src/Node/EventNode.cpp
index a20bbe48..532f5765 100644
--- a/engine/src/Node/EventNode.cpp
+++ b/engine/src/Node/EventNode.cpp
@@ -1,5 +1,6 @@
 /*******************************************************************************
  * Copyright (c) 2025 Ansys, Inc.
+ * Copyright (c) 2025 Bayerische Motoren Werke Aktiengesellschaft (BMW AG)
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License 2.0 which is available at
@@ -37,7 +38,7 @@ yase::NodeStatus EventNode::tick()
 
   auto current_status = TriggerableCompositeNode::tick();
 
-  if (start_trigger_->status() == yase::NodeStatus::kSuccess)
+  if (start_trigger_ == nullptr || start_trigger_->status() == yase::NodeStatus::kSuccess)
   {
     event_prioritizer_->EventStarted(name());
   }
diff --git a/engine/tests/Node/EventNodeTest.cpp b/engine/tests/Node/EventNodeTest.cpp
index 8023ef78..23efd112 100644
--- a/engine/tests/Node/EventNodeTest.cpp
+++ b/engine/tests/Node/EventNodeTest.cpp
@@ -1,5 +1,6 @@
 /*******************************************************************************
  * Copyright (c) 2025 Ansys, Inc.
+ * Copyright (c) 2025 Bayerische Motoren Werke Aktiengesellschaft (BMW AG)
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License 2.0 which is available at
@@ -57,7 +58,7 @@ class EventNodeTest : public testing::Test
 {
 protected:
   EventNodeTest()
-  : root{tree.get_root()}, event_prioritizer{tree.get_event_prioritizer()}
+      : root{tree.get_root()}, event_prioritizer{tree.get_event_prioritizer()}
   {
     ON_CALL(event_prioritizer, RegisterEvent).WillByDefault(Return());
     ON_CALL(*mock_action_node, tick()).WillByDefault(Return(yase::NodeStatus::kSuccess));
@@ -135,3 +136,15 @@ TEST_F(EventNodeTest, GivenStartedNodeWithNonSkipPriority_WhenShouldStopChildAnd
   EXPECT_CALL(event_prioritizer, EventStarted).Times(0);
   ASSERT_THAT(root.executeTick(), yase::NodeStatus::kSuccess);
 }
+
+TEST_F(EventNodeTest, GivenUnstartedNodeWithoutStartTrigger_WhenParentTicks_ThenEventTicks)
+{
+  auto event_under_test = std::make_shared<EventNode>("Event", mock_action_node, nullptr);
+  root.setChild(event_under_test);
+  root.distributeData();
+
+  EXPECT_CALL(event_prioritizer, ShouldStopChild).Times(1).WillOnce(Return(false));
+  EXPECT_CALL(event_prioritizer, ShouldSkipChild).Times(1).WillOnce(Return(false));
+  EXPECT_CALL(event_prioritizer, EventStarted).Times(1).WillOnce(Return());
+  root.executeTick();
+}
-- 
GitLab


From a573bf7ecd3acb1c6aa44f72b96313a5a386c9f1 Mon Sep 17 00:00:00 2001
From: Elnagdy Elnagdy <elnagdy.elnagdy@bmw.de>
Date: Thu, 13 Feb 2025 07:50:47 +0000
Subject: [PATCH 2/2] fix: meaningful name of the test

---
 engine/tests/Node/EventNodeTest.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/engine/tests/Node/EventNodeTest.cpp b/engine/tests/Node/EventNodeTest.cpp
index 23efd112..899c66c4 100644
--- a/engine/tests/Node/EventNodeTest.cpp
+++ b/engine/tests/Node/EventNodeTest.cpp
@@ -137,7 +137,7 @@ TEST_F(EventNodeTest, GivenStartedNodeWithNonSkipPriority_WhenShouldStopChildAnd
   ASSERT_THAT(root.executeTick(), yase::NodeStatus::kSuccess);
 }
 
-TEST_F(EventNodeTest, GivenUnstartedNodeWithoutStartTrigger_WhenParentTicks_ThenEventTicks)
+TEST_F(EventNodeTest, GivenEventWithoutStartTrigger_WhenTick_ThenEventStarted)
 {
   auto event_under_test = std::make_shared<EventNode>("Event", mock_action_node, nullptr);
   root.setChild(event_under_test);
-- 
GitLab