[Orxonox-commit 4967] r9636 - in code/branches/core6/test/core: . class
landauf at orxonox.net
landauf at orxonox.net
Sun Aug 11 14:41:37 CEST 2013
Author: landauf
Date: 2013-08-11 14:41:37 +0200 (Sun, 11 Aug 2013)
New Revision: 9636
Added:
code/branches/core6/test/core/class/IdentifierExternalClassHierarchyTest.cc
code/branches/core6/test/core/class/IdentifierSimpleClassHierarchyTest.cc
Modified:
code/branches/core6/test/core/CMakeLists.txt
Log:
added tests
Modified: code/branches/core6/test/core/CMakeLists.txt
===================================================================
--- code/branches/core6/test/core/CMakeLists.txt 2013-08-11 12:38:03 UTC (rev 9635)
+++ code/branches/core6/test/core/CMakeLists.txt 2013-08-11 12:41:37 UTC (rev 9636)
@@ -9,6 +9,8 @@
${GMOCK_MAIN}
class/IdentifiableTest.cc
class/IdentifierTest.cc
+ class/IdentifierSimpleClassHierarchyTest.cc
+ class/IdentifierExternalClassHierarchyTest.cc
class/OrxonoxClassTest.cc
class/OrxonoxInterfaceTest.cc
class/SubclassIdentifierTest.cc
Added: code/branches/core6/test/core/class/IdentifierExternalClassHierarchyTest.cc
===================================================================
--- code/branches/core6/test/core/class/IdentifierExternalClassHierarchyTest.cc (rev 0)
+++ code/branches/core6/test/core/class/IdentifierExternalClassHierarchyTest.cc 2013-08-11 12:41:37 UTC (rev 9636)
@@ -0,0 +1,79 @@
+#include <gtest/gtest.h>
+#include "core/CoreIncludes.h"
+#include "core/class/Identifiable.h"
+
+namespace orxonox
+{
+ namespace
+ {
+ class Interface : virtual public Identifiable
+ { public: Interface() { RegisterRootObject(Interface); } };
+
+ class BaseClass : virtual public Identifiable
+ { public: BaseClass() { RegisterRootObject(BaseClass); } };
+
+ class RealClass : public BaseClass, public Interface
+ { public: RealClass() { RegisterObject(RealClass); } };
+
+ // Fixture
+ class IdentifierExternalClassHierarchyTest : public ::testing::Test
+ {
+ public:
+ virtual void SetUp()
+ {
+ new ClassFactory<Interface>("Interface");
+ new ClassFactory<BaseClass>("BaseClass");
+ new ClassFactory<RealClass>("RealClass");
+ IdentifierManager::createClassHierarchy();
+ }
+
+ virtual void TearDown()
+ {
+ IdentifierManager::destroyAllIdentifiers();
+ }
+ };
+ }
+
+ TEST(IdentifierExternalClassHierarchyTest_NoFixture, NoInitialization)
+ {
+ {
+ Identifier* identifier = Class(Interface);
+ EXPECT_EQ(0u, identifier->getChildren().size());
+ EXPECT_EQ(0u, identifier->getParents().size());
+ }
+ {
+ Identifier* identifier = Class(BaseClass);
+ EXPECT_EQ(0u, identifier->getChildren().size());
+ EXPECT_EQ(0u, identifier->getParents().size());
+ }
+ {
+ Identifier* identifier = Class(RealClass);
+ EXPECT_EQ(0u, identifier->getChildren().size());
+ EXPECT_EQ(0u, identifier->getParents().size());
+ }
+ }
+
+ TEST_F(IdentifierExternalClassHierarchyTest, TestInterface)
+ {
+ Identifier* identifier = Class(Interface);
+
+ EXPECT_EQ(1u, identifier->getChildren().size());
+ EXPECT_EQ(0u, identifier->getParents().size());
+ }
+
+ TEST_F(IdentifierExternalClassHierarchyTest, BaseClass)
+ {
+ Identifier* identifier = Class(BaseClass);
+
+ EXPECT_EQ(1u, identifier->getChildren().size());
+ EXPECT_EQ(0u, identifier->getParents().size());
+ }
+
+ TEST_F(IdentifierExternalClassHierarchyTest, RealClass)
+ {
+ Identifier* identifier = Class(RealClass);
+
+ EXPECT_EQ(0u, identifier->getChildren().size());
+ EXPECT_EQ(2u, identifier->getParents().size());
+ }
+}
Added: code/branches/core6/test/core/class/IdentifierSimpleClassHierarchyTest.cc
===================================================================
--- code/branches/core6/test/core/class/IdentifierSimpleClassHierarchyTest.cc (rev 0)
+++ code/branches/core6/test/core/class/IdentifierSimpleClassHierarchyTest.cc 2013-08-11 12:41:37 UTC (rev 9636)
@@ -0,0 +1,81 @@
+#include <gtest/gtest.h>
+#include "core/CoreIncludes.h"
+#include "core/class/Identifiable.h"
+#include "core/class/OrxonoxClass.h"
+#include "core/class/OrxonoxInterface.h"
+
+namespace orxonox
+{
+ namespace
+ {
+ class Interface : public OrxonoxInterface
+ { public: Interface() { RegisterRootObject(Interface); } };
+
+ class BaseClass : public OrxonoxClass
+ { public: BaseClass() { RegisterRootObject(BaseClass); } };
+
+ class RealClass : public BaseClass, public Interface
+ { public: RealClass() { RegisterObject(RealClass); } };
+
+ // Fixture
+ class IdentifierSimpleClassHierarchyTest : public ::testing::Test
+ {
+ public:
+ virtual void SetUp()
+ {
+ new ClassFactory<Interface>("Interface");
+ new ClassFactory<BaseClass>("BaseClass");
+ new ClassFactory<RealClass>("RealClass");
+ IdentifierManager::createClassHierarchy();
+ }
+
+ virtual void TearDown()
+ {
+ IdentifierManager::destroyAllIdentifiers();
+ }
+ };
+ }
+
+ TEST(IdentifierSimpleClassHierarchyTest_NoFixture, NoInitialization)
+ {
+ {
+ Identifier* identifier = Class(Interface);
+ EXPECT_EQ(0u, identifier->getChildren().size());
+ EXPECT_EQ(0u, identifier->getParents().size());
+ }
+ {
+ Identifier* identifier = Class(BaseClass);
+ EXPECT_EQ(0u, identifier->getChildren().size());
+ EXPECT_EQ(0u, identifier->getParents().size());
+ }
+ {
+ Identifier* identifier = Class(RealClass);
+ EXPECT_EQ(0u, identifier->getChildren().size());
+ EXPECT_EQ(0u, identifier->getParents().size());
+ }
+ }
+
+ TEST_F(IdentifierSimpleClassHierarchyTest, TestInterface)
+ {
+ Identifier* identifier = Class(Interface);
+
+ EXPECT_EQ(1u, identifier->getChildren().size());
+ EXPECT_EQ(0u, identifier->getParents().size());
+ }
+
+ TEST_F(IdentifierSimpleClassHierarchyTest, BaseClass)
+ {
+ Identifier* identifier = Class(BaseClass);
+
+ EXPECT_EQ(1u, identifier->getChildren().size());
+ EXPECT_EQ(0u, identifier->getParents().size());
+ }
+
+ TEST_F(IdentifierSimpleClassHierarchyTest, RealClass)
+ {
+ Identifier* identifier = Class(RealClass);
+
+ EXPECT_EQ(0u, identifier->getChildren().size());
+ EXPECT_EQ(2u, identifier->getParents().size());
+ }
+}
More information about the Orxonox-commit
mailing list