void D3MFImporter::InternReadFile(const std::string &pFile, aiScene *pScene, IOSystem *pIOHandler) { D3MF::D3MFOpcPackage opcPackage(pIOHandler, pFile); std::unique_ptr<CIrrXML_IOStreamReader> xmlStream(new CIrrXML_IOStreamReader(opcPackage.RootStream())); std::unique_ptr<D3MF::XmlReader> xmlReader(irr::io::createIrrXMLReader(xmlStream.get())); D3MF::XmlSerializer xmlSerializer(xmlReader.get()); xmlSerializer.ImportXml(pScene); }
TEST_F(TestSerializer, TestDeserialize) // NOLINT { qui::ReflectionManager rm; rm.setClassMappings(mappings, 2); rm.setTypeMappings<TextureDescriptor>(); rm.setTypeMappings<ResourcesLibrary>(); qui::VirtualFS fs; fs.addRelativePath("../../../"); qui::XMLSerializer xmlSerializer("tools/testdata/testrefl.xml"); std::auto_ptr<qui::ReflectableObject> object(xmlSerializer.deserialize("ResourcesLibrary")); ASSERT_TRUE(object.get()); ResourcesLibrary* library = reinterpret_cast<ResourcesLibrary*>(object.get()); ASSERT_TRUE(library->textures); ASSERT_EQ(library->textures->size(), 2); TextureDescriptor *descriptor = library->textures->at(0); ASSERT_NE(descriptor->name.find("Boat"), std::string::npos); ASSERT_NE(descriptor->image.find("assets/boat.png"), std::string::npos); descriptor = library->textures->at(1); ASSERT_NE(descriptor->name.find("Test"), std::string::npos); ASSERT_NE(descriptor->image.find("testimg.png"), std::string::npos); }