diff --git a/CMakeLists.txt b/CMakeLists.txt index 3e69076..fa44d4f 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,6 +6,7 @@ include_directories(/usr/include/glad) include_directories(/usr/include/glm) include_directories(/usr/include/assimp) include_directories(/usr/include/freetype2) +include_directories(/usr/include/cppunit) link_directories(/usr/lib/) @@ -17,9 +18,17 @@ set(render particleEmitter.cpp camera.cpp light.cpp material.cpp mesh.cpp model. set(model modelReader.cpp assimpModelReader.cpp vbModelReader.cpp) set(anim animationController.cpp animationChannel.cpp animation.cpp) set(armature skeleton.cpp bone.cpp) +set(library ${render} ${math} ${model} ${utils} ${gui} ${armature} ${anim}) +set(test cameraTest.cpp) -add_library(vb01 SHARED main.cpp ${render} ${math} ${model} ${utils} ${gui} ${armature} ${anim}) +add_library(vb01 SHARED ${library}) target_link_libraries(vb01 glfw) target_link_libraries(vb01 glad) target_link_libraries(vb01 assimp) target_link_libraries(vb01 freetype) +add_executable(vb01Tests main.cpp ${test} ${library}) +target_link_libraries(vb01Tests cppunit) +target_link_libraries(vb01Tests glfw) +target_link_libraries(vb01Tests glad) +target_link_libraries(vb01Tests assimp) +target_link_libraries(vb01Tests freetype) diff --git a/cameraTest.cpp b/cameraTest.cpp new file mode 100644 index 0000000..5d00b79 --- /dev/null +++ b/cameraTest.cpp @@ -0,0 +1,26 @@ +#include"cameraTest.h" +#include +#include +#include +#include + +using namespace CppUnit; + +namespace vb01{ + + CameraTest::CameraTest(){ + } + + void CameraTest::setUp(){ + cam = new Camera(); + } + + void CameraTest::tearDown(){ + delete cam; + } + + void CameraTest::testLookAt(){ + cam->lookAt(Vector3(0, 0, -1)); + CPPUNIT_ASSERT(cam->getLeft() == Vector3(1, 0, 0)); + } +} diff --git a/cameraTest.h b/cameraTest.h new file mode 100644 index 0000000..4b01f0e --- /dev/null +++ b/cameraTest.h @@ -0,0 +1,27 @@ +#ifndef CAMERA_TEST_H +#define CAMERA_TEST_H + +#include +#include"camera.h" +#include + +namespace CppUnit{ + class Test; +} + +namespace vb01{ + class CameraTest : public CppUnit::TestFixture{ + CPPUNIT_TEST_SUITE( CameraTest ); + CPPUNIT_TEST( testLookAt ); + CPPUNIT_TEST_SUITE_END(); + public: + CameraTest(); + void setUp(); + void tearDown(); + void testLookAt(); + private: + Camera *cam = nullptr; + }; +} + +#endif diff --git a/main.cpp b/main.cpp index ade4548..18b7bdc 100755 --- a/main.cpp +++ b/main.cpp @@ -1,3 +1,15 @@ +#include +#include +#include +#include +#include "cameraTest.h" + +using namespace CppUnit; +using namespace vb01; + int main(){ + TextUi::TestRunner runner; + runner.addTest(CameraTest::suite()); + runner.run(); return 0; }