diff --git a/GeoModelCore/GeoModelKernel/CMakeLists.txt b/GeoModelCore/GeoModelKernel/CMakeLists.txt index 561d34ef8012fc0a92345e84fa94d62daebcecb4..94e322406819431dd468e9c514907d4d1832f92d 100644 --- a/GeoModelCore/GeoModelKernel/CMakeLists.txt +++ b/GeoModelCore/GeoModelKernel/CMakeLists.txt @@ -65,4 +65,5 @@ foreach(_exeFile ${files}) endforeach() include(GoogleTest) gtest_discover_tests(testRCBase) +gtest_discover_tests(testGeoGraphNode) diff --git a/GeoModelCore/GeoModelKernel/GeoModelKernel/RCBase.h b/GeoModelCore/GeoModelKernel/GeoModelKernel/RCBase.h index e224ef8dea36199501bfc856e24a0a67985a1bf9..75e5485ee995181d1d6179eafa1a8111405cc825 100644 --- a/GeoModelCore/GeoModelKernel/GeoModelKernel/RCBase.h +++ b/GeoModelCore/GeoModelKernel/GeoModelKernel/RCBase.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration */ /** diff --git a/GeoModelCore/GeoModelKernel/tests/testGeoGraphNode.cxx b/GeoModelCore/GeoModelKernel/tests/testGeoGraphNode.cxx new file mode 100644 index 0000000000000000000000000000000000000000..2c3b053c35dc9b7a98b067e5a27a8565121e6e82 --- /dev/null +++ b/GeoModelCore/GeoModelKernel/tests/testGeoGraphNode.cxx @@ -0,0 +1,39 @@ +/* + Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration +*/ + + +#include "GeoModelKernel/GeoGraphNode.h" +#include "GeoModelKernel/GeoNodeAction.h" +#include <gtest/gtest.h> +#include <limits> +#include <memory> + +class GeoNodeActionStub:public GeoNodeAction{ + private: + bool m_called{}; + public: + virtual void handleNode (const GeoGraphNode *) override{ + m_called = true; + } + bool called() const { return m_called; } +}; + + +TEST(GeoGraphNode, CanBeConstructedOnHeap) { + GeoGraphNode * pG{}; + EXPECT_NO_THROW(pG = new GeoGraphNode); + pG->ref(); + pG->unref(); //should be destroyed here +} + +TEST(GeoGraphNode, ExecExecutesHandleNodeAction){ + GeoGraphNode * pG = new GeoGraphNode; + pG->ref(); + GeoNodeActionStub * myAction = new GeoNodeActionStub; + EXPECT_EQ(myAction->called(), false); + pG->exec(myAction); + EXPECT_EQ(myAction->called(), true); + pG->unref(); + delete myAction; +}