diff --git a/test/unit/utSharedPPData.cpp b/test/unit/utSharedPPData.cpp new file mode 100644 index 000000000..2cbdc3289 --- /dev/null +++ b/test/unit/utSharedPPData.cpp @@ -0,0 +1,59 @@ + +#include "utSharedPPData.h" + + +CPPUNIT_TEST_SUITE_REGISTRATION (SharedPPDataTest); + +static bool destructed; + +struct TestType +{ + ~TestType() + { + destructed = true; + } +}; + +void SharedPPDataTest :: setUp (void) +{ + shared = new SharedPostProcessInfo(); + destructed = false; +} + +void SharedPPDataTest :: tearDown (void) +{ + +} + +void SharedPPDataTest :: testPODProperty (void) +{ + int i = 5; + shared->AddProperty("test",i); + int o; + CPPUNIT_ASSERT(shared->GetProperty("test",o) && 5 == o); + CPPUNIT_ASSERT(!shared->GetProperty("test2",o) && 5 == o); + + float f = 12.f, m; + shared->AddProperty("test",f); + CPPUNIT_ASSERT(shared->GetProperty("test",m) && 12.f == m); +} + +void SharedPPDataTest :: testPropertyPointer (void) +{ + int *i = new int[35]; + shared->AddProperty("test16",i); + int* o; + CPPUNIT_ASSERT(shared->GetProperty("test16",o) && o == i); + shared->RemoveProperty("test16"); + CPPUNIT_ASSERT(!shared->GetProperty("test16",o)); +} + +void SharedPPDataTest :: testPropertyDeallocation (void) +{ + TestType *out, * pip = new TestType(); + shared->AddProperty("quak",pip); + CPPUNIT_ASSERT(shared->GetProperty("quak",out) && out == pip); + + delete shared; + CPPUNIT_ASSERT(destructed); +} diff --git a/test/unit/utSharedPPData.h b/test/unit/utSharedPPData.h new file mode 100644 index 000000000..14fd23fea --- /dev/null +++ b/test/unit/utSharedPPData.h @@ -0,0 +1,39 @@ +#ifndef TESTPPD_H +#define TESTPPD_H + +#include +#include + +#include +#include +#include + + +using namespace std; +using namespace Assimp; + +class SharedPPDataTest : public CPPUNIT_NS :: TestFixture +{ + CPPUNIT_TEST_SUITE (SharedPPDataTest); + CPPUNIT_TEST (testPODProperty); + CPPUNIT_TEST (testPropertyPointer); + CPPUNIT_TEST (testPropertyDeallocation); + CPPUNIT_TEST_SUITE_END (); + + public: + void setUp (void); + void tearDown (void); + + protected: + + void testPODProperty (void); + void testPropertyPointer (void); + void testPropertyDeallocation (void); + + private: + + SharedPostProcessInfo* shared; + +}; + +#endif