108 lines
2.7 KiB
C++
108 lines
2.7 KiB
C++
|
#include "utImporter.h"
|
||
|
|
||
|
|
||
|
CPPUNIT_TEST_SUITE_REGISTRATION (ImporterTest);
|
||
|
|
||
|
#define AIUT_DEF_ERROR_TEXT "sorry, this is a test"
|
||
|
|
||
|
|
||
|
bool TestPlugin :: CanRead( const std::string& pFile,
|
||
|
IOSystem* pIOHandler) const
|
||
|
{
|
||
|
std::string::size_type pos = pFile.find_last_of('.');
|
||
|
// no file extension - can't read
|
||
|
if( pos == std::string::npos)return false;
|
||
|
std::string extension = pFile.substr( pos);
|
||
|
|
||
|
// todo ... make case-insensitive
|
||
|
return (extension == ".apple" || extension == ".mac" ||
|
||
|
extension == ".linux" || extension == ".windows" );
|
||
|
}
|
||
|
|
||
|
void TestPlugin :: GetExtensionList(std::string& append)
|
||
|
{
|
||
|
append.append("*.apple;*.mac;*.linux;*.windows");
|
||
|
}
|
||
|
|
||
|
void TestPlugin :: InternReadFile( const std::string& pFile,
|
||
|
aiScene* pScene, IOSystem* pIOHandler)
|
||
|
{
|
||
|
throw new ImportErrorException(AIUT_DEF_ERROR_TEXT);
|
||
|
}
|
||
|
|
||
|
|
||
|
void ImporterTest :: setUp (void)
|
||
|
{
|
||
|
pImp = new Importer();
|
||
|
}
|
||
|
|
||
|
void ImporterTest :: tearDown (void)
|
||
|
{
|
||
|
delete pImp;
|
||
|
}
|
||
|
|
||
|
void ImporterTest :: testIntProperty (void)
|
||
|
{
|
||
|
bool b;
|
||
|
pImp->SetPropertyInteger("quakquak",1503,&b);
|
||
|
CPPUNIT_ASSERT(!b);
|
||
|
CPPUNIT_ASSERT(1503 == pImp->GetPropertyInteger("quakquak",0));
|
||
|
CPPUNIT_ASSERT(314159 == pImp->GetPropertyInteger("not_there",314159));
|
||
|
|
||
|
pImp->SetPropertyInteger("quakquak",1504,&b);
|
||
|
CPPUNIT_ASSERT(b);
|
||
|
}
|
||
|
|
||
|
void ImporterTest :: testFloatProperty (void)
|
||
|
{
|
||
|
bool b;
|
||
|
pImp->SetPropertyFloat("quakquak",1503.f,&b);
|
||
|
CPPUNIT_ASSERT(!b);
|
||
|
CPPUNIT_ASSERT(1503.f == pImp->GetPropertyFloat("quakquak",0.f));
|
||
|
CPPUNIT_ASSERT(314159.f == pImp->GetPropertyFloat("not_there",314159.f));
|
||
|
}
|
||
|
|
||
|
void ImporterTest :: testStringProperty (void)
|
||
|
{
|
||
|
bool b;
|
||
|
pImp->SetPropertyString("quakquak","test",&b);
|
||
|
CPPUNIT_ASSERT(!b);
|
||
|
CPPUNIT_ASSERT("test" == pImp->GetPropertyString("quakquak","weghwekg"));
|
||
|
CPPUNIT_ASSERT("ILoveYou" == pImp->GetPropertyString("not_there","ILoveYou"));
|
||
|
}
|
||
|
|
||
|
void ImporterTest :: testPluginInterface (void)
|
||
|
{
|
||
|
pImp->RegisterLoader(new TestPlugin());
|
||
|
CPPUNIT_ASSERT(pImp->IsExtensionSupported(".apple"));
|
||
|
CPPUNIT_ASSERT(pImp->IsExtensionSupported(".mac"));
|
||
|
CPPUNIT_ASSERT(pImp->IsExtensionSupported(".linux"));
|
||
|
CPPUNIT_ASSERT(pImp->IsExtensionSupported(".windows"));
|
||
|
|
||
|
TestPlugin* p = (TestPlugin*) pImp->FindLoader(".windows");
|
||
|
CPPUNIT_ASSERT(NULL != p);
|
||
|
|
||
|
try {
|
||
|
p->InternReadFile("",0,NULL);
|
||
|
}
|
||
|
catch ( ImportErrorException* ex)
|
||
|
{
|
||
|
CPPUNIT_ASSERT(ex->GetErrorText() == AIUT_DEF_ERROR_TEXT);
|
||
|
|
||
|
// unregister the plugin and delete it
|
||
|
pImp->UnregisterLoader(p);
|
||
|
delete p;
|
||
|
|
||
|
return;
|
||
|
}
|
||
|
CPPUNIT_ASSERT(false); // control shouldn't reach this point
|
||
|
}
|
||
|
|
||
|
void ImporterTest :: testExtensionCheck (void)
|
||
|
{
|
||
|
std::string s;
|
||
|
pImp->GetExtensionList(s);
|
||
|
|
||
|
// todo ..
|
||
|
}
|