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;
+}