From ca0f87b4198ce60b14ef789ae157704c9c851133 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Lemaire?= Date: Thu, 31 Oct 2013 22:53:22 +0100 Subject: [PATCH] Started adding cppunit tests --- src/definition/BaseDefinition.h | 3 ++ src/paysages.pro | 3 +- src/tests/BaseTestCase.cpp | 5 ++ src/tests/BaseTestCase.h | 16 +++++++ src/tests/Layers_Test.cpp | 81 +++++++++++++++++++++++++++++++++ src/tests/Layers_Test.h | 22 +++++++++ src/tests/main.cpp | 22 +++++++++ src/tests/tests.pro | 42 +++++++++++++++++ 8 files changed, 193 insertions(+), 1 deletion(-) create mode 100644 src/tests/BaseTestCase.cpp create mode 100644 src/tests/BaseTestCase.h create mode 100644 src/tests/Layers_Test.cpp create mode 100644 src/tests/Layers_Test.h create mode 100644 src/tests/main.cpp create mode 100644 src/tests/tests.pro diff --git a/src/definition/BaseDefinition.h b/src/definition/BaseDefinition.h index e97d892..e893e62 100644 --- a/src/definition/BaseDefinition.h +++ b/src/definition/BaseDefinition.h @@ -28,6 +28,9 @@ public: inline const QString& getName() {return name;} void setName(QString name); + inline const BaseDefinition* getParent() {return parent;} + inline const BaseDefinition* getRoot() {return root;} + protected: void addChild(BaseDefinition* child); void removeChild(BaseDefinition* child); diff --git a/src/paysages.pro b/src/paysages.pro index b72099f..abe4d68 100644 --- a/src/paysages.pro +++ b/src/paysages.pro @@ -10,7 +10,7 @@ SUBDIRS = \ editing \ controlling -unix:SUBDIRS += testing +unix:SUBDIRS += testing tests basics.depends = system definition.depends = basics @@ -19,3 +19,4 @@ exploring.depends = rendering editing.depends = exploring rendering controlling.depends = rendering unix:testing.depends = rendering +unix:tests.depends = rendering diff --git a/src/tests/BaseTestCase.cpp b/src/tests/BaseTestCase.cpp new file mode 100644 index 0000000..6481b2f --- /dev/null +++ b/src/tests/BaseTestCase.cpp @@ -0,0 +1,5 @@ +#include "BaseTestCase.h" + +BaseTestCase::BaseTestCase() +{ +} diff --git a/src/tests/BaseTestCase.h b/src/tests/BaseTestCase.h new file mode 100644 index 0000000..2667c29 --- /dev/null +++ b/src/tests/BaseTestCase.h @@ -0,0 +1,16 @@ +#ifndef BASETESTCASE_H +#define BASETESTCASE_H + +#include +#include +#include +#include +using namespace CppUnit; + +class BaseTestCase: public TestFixture +{ +public: + BaseTestCase(); +}; + +#endif // BASETESTCASE_H diff --git a/src/tests/Layers_Test.cpp b/src/tests/Layers_Test.cpp new file mode 100644 index 0000000..75085b8 --- /dev/null +++ b/src/tests/Layers_Test.cpp @@ -0,0 +1,81 @@ +#include "Layers_Test.h" + +#include "Layers.h" + +BaseDefinition* _construc1(Layers*) +{ + return new BaseDefinition(NULL); +} + +BaseDefinition* _construc2(Layers* parent) +{ + BaseDefinition* result = new BaseDefinition(parent); + result->setName("test"); + return result; +} + +void Layers_Test::testConstructor() +{ + Layers layers1(NULL, _construc1); + CPPUNIT_ASSERT_EQUAL(0, layers1.count()); +} + +void Layers_Test::testNullLayer() +{ + Layers layers1(NULL, _construc1); + + for (int i = -2; i < 5; i++) + { + BaseDefinition* layer = layers1.getLayer(0); + CPPUNIT_ASSERT(layer != NULL); + + CPPUNIT_ASSERT(NULL == layer->getParent()); + CPPUNIT_ASSERT(layer == layer->getRoot()); + + CPPUNIT_ASSERT(QString() == layer->getName()); + } + + CPPUNIT_ASSERT_EQUAL(0, layers1.count()); +} + +void Layers_Test::testCopy() +{ + Layers layers1(NULL, _construc2); + layers1.addLayer(); + CPPUNIT_ASSERT_EQUAL(1, layers1.count()); + + // Copy with the same constructor + Layers layers2(NULL, _construc2); + CPPUNIT_ASSERT_EQUAL(0, layers2.count()); + layers1.copy(&layers2); + CPPUNIT_ASSERT_EQUAL(1, layers2.count()); + CPPUNIT_ASSERT(QString("test") == layers1.getLayer(0)->getName()); + CPPUNIT_ASSERT(&layers1 == layers1.getLayer(0)->getParent()); + CPPUNIT_ASSERT(QString("test") == layers2.getLayer(0)->getName()); + CPPUNIT_ASSERT(&layers2 == layers2.getLayer(0)->getParent()); + CPPUNIT_ASSERT(layers1.getLayer(0) != layers2.getLayer(0)); +} + +void Layers_Test::testMaxLayerCount() +{ + Layers layers1(NULL, _construc1); + layers1.setMaxLayerCount(2); + + CPPUNIT_ASSERT_EQUAL(0, layers1.count()); + layers1.addLayer(); + CPPUNIT_ASSERT_EQUAL(1, layers1.count()); + layers1.addLayer(); + CPPUNIT_ASSERT_EQUAL(2, layers1.count()); + layers1.addLayer(); + CPPUNIT_ASSERT_EQUAL(2, layers1.count()); + layers1.addLayer(); + CPPUNIT_ASSERT_EQUAL(2, layers1.count()); + layers1.removeLayer(0); + CPPUNIT_ASSERT_EQUAL(1, layers1.count()); + layers1.addLayer(); + CPPUNIT_ASSERT_EQUAL(2, layers1.count()); + layers1.addLayer(); + CPPUNIT_ASSERT_EQUAL(2, layers1.count()); +} + +CPPUNIT_TEST_SUITE_REGISTRATION(Layers_Test); diff --git a/src/tests/Layers_Test.h b/src/tests/Layers_Test.h new file mode 100644 index 0000000..1762e71 --- /dev/null +++ b/src/tests/Layers_Test.h @@ -0,0 +1,22 @@ +#ifndef LAYERS_TEST_H +#define LAYERS_TEST_H + +#include "BaseTestCase.h" + +class Layers_Test: public BaseTestCase +{ +public: + CPPUNIT_TEST_SUITE(Layers_Test); + CPPUNIT_TEST(testConstructor); + CPPUNIT_TEST(testNullLayer); + CPPUNIT_TEST(testCopy); + CPPUNIT_TEST(testMaxLayerCount); + CPPUNIT_TEST_SUITE_END(); + + void testConstructor(); + void testNullLayer(); + void testCopy(); + void testMaxLayerCount(); +}; + +#endif // LAYERS_TEST_H diff --git a/src/tests/main.cpp b/src/tests/main.cpp new file mode 100644 index 0000000..fa3a65b --- /dev/null +++ b/src/tests/main.cpp @@ -0,0 +1,22 @@ +#include +#include +#include + +using namespace CppUnit; + +void noMessageOutput(QtMsgType, const QMessageLogContext&, const QString&) +{ +} + +int main() +{ + qInstallMessageHandler(noMessageOutput); + + TextTestRunner runner; + TestFactoryRegistry ®istry = TestFactoryRegistry::getRegistry(); + + runner.addTest(registry.makeTest()); + + return runner.run() ? 1 : 0; +} + diff --git a/src/tests/tests.pro b/src/tests/tests.pro new file mode 100644 index 0000000..1205e5c --- /dev/null +++ b/src/tests/tests.pro @@ -0,0 +1,42 @@ +TEMPLATE = app +CONFIG += console +CONFIG -= app_bundle + +TARGET = paysages-tests2 + +unix { + CONFIG += link_pkgconfig + PKGCONFIG += cppunit +} + +SOURCES += main.cpp \ + Layers_Test.cpp \ + BaseTestCase.cpp + +HEADERS += \ + Layers_Test.h \ + BaseTestCase.h + +win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../system/release/ -lpaysages_system +else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../system/debug/ -lpaysages_system +else:unix: LIBS += -L$$OUT_PWD/../system/ -lpaysages_system +INCLUDEPATH += $$PWD/../system +DEPENDPATH += $$PWD/../system + +win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../basics/release/ -lpaysages_basics +else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../basics/debug/ -lpaysages_basics +else:unix: LIBS += -L$$OUT_PWD/../basics/ -lpaysages_basics +INCLUDEPATH += $$PWD/../basics +DEPENDPATH += $$PWD/../basics + +win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../definition/release/ -lpaysages_definition +else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../definition/debug/ -lpaysages_definition +else:unix: LIBS += -L$$OUT_PWD/../definition/ -lpaysages_definition +INCLUDEPATH += $$PWD/../definition +DEPENDPATH += $$PWD/../definition + +win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../rendering/release/ -lpaysages_rendering +else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../rendering/debug/ -lpaysages_rendering +else:unix: LIBS += -L$$OUT_PWD/../rendering/ -lpaysages_rendering +INCLUDEPATH += $$PWD/../rendering +DEPENDPATH += $$PWD/../rendering