assimp/test/unit/utSharedPPData.cpp

86 lines
1.9 KiB
C++

#include "UnitTestPCH.h"
#include <assimp/scene.h>
#include <BaseProcess.h>
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);
}