summaryrefslogtreecommitdiff
path: root/libs/assimp/test/unit/utExport.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libs/assimp/test/unit/utExport.cpp')
-rw-r--r--libs/assimp/test/unit/utExport.cpp84
1 files changed, 84 insertions, 0 deletions
diff --git a/libs/assimp/test/unit/utExport.cpp b/libs/assimp/test/unit/utExport.cpp
new file mode 100644
index 0000000..b3ab5e3
--- /dev/null
+++ b/libs/assimp/test/unit/utExport.cpp
@@ -0,0 +1,84 @@
+#include "UnitTestPCH.h"
+
+#include <assimp/cexport.h>
+#include <assimp/Exporter.hpp>
+
+
+#ifndef ASSIMP_BUILD_NO_EXPORT
+
+class ExporterTest : public ::testing::Test {
+public:
+
+ virtual void SetUp()
+ {
+ ex = new Assimp::Exporter();
+ im = new Assimp::Importer();
+
+ pTest = im->ReadFile(ASSIMP_TEST_MODELS_DIR "/X/test.x", aiProcess_ValidateDataStructure);
+ }
+
+ virtual void TearDown()
+ {
+ delete ex;
+ delete im;
+ }
+
+protected:
+
+ const aiScene* pTest;
+ Assimp::Exporter* ex;
+ Assimp::Importer* im;
+};
+
+// ------------------------------------------------------------------------------------------------
+TEST_F(ExporterTest, testExportToFile)
+{
+ const char* file = "unittest_output.dae";
+ EXPECT_EQ(AI_SUCCESS,ex->Export(pTest,"collada",file));
+
+ // check if we can read it again
+ EXPECT_TRUE(im->ReadFile(file, aiProcess_ValidateDataStructure));
+}
+
+// ------------------------------------------------------------------------------------------------
+TEST_F(ExporterTest, testExportToBlob)
+{
+ const aiExportDataBlob* blob = ex->ExportToBlob(pTest,"collada");
+ ASSERT_TRUE(blob);
+ EXPECT_TRUE(blob->data);
+ EXPECT_GT(blob->size, 0U);
+ EXPECT_EQ(0U, blob->name.length);
+
+ // XXX test chained blobs (i.e. obj file with accompanying mtl script)
+
+ // check if we can read it again
+ EXPECT_TRUE(im->ReadFileFromMemory(blob->data,blob->size,0,"dae"));
+}
+
+// ------------------------------------------------------------------------------------------------
+TEST_F(ExporterTest, testCppExportInterface)
+{
+ EXPECT_TRUE(ex->GetExportFormatCount() > 0);
+ for(size_t i = 0; i < ex->GetExportFormatCount(); ++i) {
+ const aiExportFormatDesc* const desc = ex->GetExportFormatDescription(i);
+ ASSERT_TRUE(desc);
+ EXPECT_TRUE(desc->description && strlen(desc->description));
+ EXPECT_TRUE(desc->fileExtension && strlen(desc->fileExtension));
+ EXPECT_TRUE(desc->id && strlen(desc->id));
+ }
+
+ EXPECT_TRUE(ex->IsDefaultIOHandler());
+}
+
+// ------------------------------------------------------------------------------------------------
+TEST_F(ExporterTest, testCExportInterface)
+{
+ EXPECT_TRUE(aiGetExportFormatCount() > 0);
+ for(size_t i = 0; i < aiGetExportFormatCount(); ++i) {
+ const aiExportFormatDesc* const desc = aiGetExportFormatDescription(i);
+ EXPECT_TRUE(desc);
+ // rest has already been validated by testCppExportInterface
+ }
+}
+
+#endif