/** * @group long */ public function testOpcGeneration() { $nss = array("http://schemas.openxmlformats.org/package/2006/metadata/core-properties" => "Iag/ECMA376/Package/Model/CoreProperties/", "http://purl.org/dc/elements/1.1/" => "Iag/ECMA376/Package/Model/CoreProperties/DcElements/", "http://purl.org/dc/terms/" => "Iag/ECMA376/Package/Model/CoreProperties/DcTerms/", "http://purl.org/dc/dcmitype/" => "Iag/ECMA376/Package/Model/CoreProperties/DcMiType/"); $reader = new SchemaReader(); $reader->addKnownSchemaLocation('http://dublincore.org/schemas/xmls/qdc/2003/04/02/dc.xsd', __DIR__ . '/opc/dc.xsd'); $reader->addKnownSchemaLocation('http://dublincore.org/schemas/xmls/qdc/2003/04/02/dcterms.xsd', __DIR__ . '/opc/dcterms.xsd'); $reader->addKnownSchemaLocation('http://dublincore.org/schemas/xmls/qdc/2003/04/02/dcterms.xsd', __DIR__ . '/opc/dcterms.xsd'); $reader->addKnownSchemaLocation('http://dublincore.org/schemas/xmls/qdc/2003/04/02/dcmitype.xsd', __DIR__ . '/opc/dcmitype.xsd'); $schema = $reader->readFile(__DIR__ . '/opc/opc-coreProperties.xsd'); $generator = new Generator($nss); list($phpClasses, $yamlItems) = $generator->getData([$schema]); $this->assertEquals(count($phpClasses), count($yamlItems)); $this->assertGreaterThan(0, count($phpClasses)); }
/** * @group slow * @dataProvider getTestFiles */ public function testConversion($xml, $xsd, $class) { $serializer = self::$generator->buildSerializer(function (HandlerRegistryInterface $h) { $h->registerSubscribingHandler(new XmlSchemaDateHandler()); $h->registerSubscribingHandler(new OTASchemaDateHandler()); $h->registerSubscribingHandler(new BaseTypesHandler()); }); $original = $this->clearXML(file_get_contents($xml)); $object = $serializer->deserialize($original, $class, 'xml'); $new = $serializer->serialize($object, 'xml'); $new = $this->clearXML($new); $differ = new \XMLDiff\Memory(); $diff = $differ->diff($original, $new); $notEqual = strpos($diff, '<dm:copy count="1"/>') === false || strlen($diff) > 110; if (0 && $notEqual) { file_put_contents("a.xml", $original); file_put_contents("b.xml", $new); file_put_contents("c.xml", $diff); exit; } $this->assertFalse($notEqual); }