#include "UnitTestPCH.h" #include #include using namespace std; using namespace Assimp; class SharedPPDataTest : public ::testing::Test { public: virtual void SetUp(); virtual void TearDown(); protected: SharedPostProcessInfo* shared; }; static bool destructed; struct TestType { ~TestType() { destructed = true; } }; // ------------------------------------------------------------------------------------------------ void SharedPPDataTest::SetUp() { shared = new SharedPostProcessInfo(); destructed = false; } // ------------------------------------------------------------------------------------------------ void SharedPPDataTest::TearDown() { } // ------------------------------------------------------------------------------------------------ TEST_F(SharedPPDataTest, testPODProperty) { int i = 5; shared->AddProperty("test",i); int o; EXPECT_TRUE(shared->GetProperty("test",o)); EXPECT_EQ(5, o); EXPECT_FALSE(shared->GetProperty("test2",o)); EXPECT_EQ(5, o); float f = 12.f, m; shared->AddProperty("test",f); EXPECT_TRUE(shared->GetProperty("test",m)); EXPECT_EQ(12.f, m); } // ------------------------------------------------------------------------------------------------ TEST_F(SharedPPDataTest, testPropertyPointer) { int *i = new int[35]; shared->AddProperty("test16",i); int* o; EXPECT_TRUE(shared->GetProperty("test16",o)); EXPECT_EQ(i, o); shared->RemoveProperty("test16"); EXPECT_FALSE(shared->GetProperty("test16",o)); } // ------------------------------------------------------------------------------------------------ TEST_F(SharedPPDataTest, testPropertyDeallocation) { TestType *out, * pip = new TestType(); shared->AddProperty("quak",pip); EXPECT_TRUE(shared->GetProperty("quak",out)); EXPECT_EQ(pip, out); delete shared; EXPECT_TRUE(destructed); }