loadJson(file_get_contents(__DIR__ .'/from.json'))); self::assertCount(1, $engine1->getArticles()); self::assertInstanceOf(Input::class, $engine1->getArticle()->getOptionById('auflage')); $engine2 = new Engine(); self::assertTrue($engine2->loadString(file_get_contents(__DIR__ .'/from.xml'))); self::assertCount(1, $engine2->getArticles()); self::assertInstanceOf(Input::class, $engine2->getArticle()->getOptionById('auflage')); self::assertSame(1011.42, $engine1->getPrice()); self::assertSame($engine1->getPrice(), $engine2->getPrice()); self::assertEqualsCanonicalizing($engine1->getArticle(), $engine2->getArticle()); $tempXML = tempnam(sys_get_temp_dir(), 'calc'); $tempJson = tempnam(sys_get_temp_dir(), 'calc'); file_put_contents($tempXML, $engine1->generateXML()); file_put_contents($tempJson, $engine2->generateJson()); self::assertJsonFileEqualsJsonFile(__DIR__.'/from.json', $tempJson); self::assertXmlFileEqualsXmlFile(__DIR__.'/from.xml', $tempXML); self::assertCount(5, $engine1->getArticle()->getOptionById('farbigkeit')->getOptions()); self::assertCount(5, $engine2->getArticle()->getOptionById('farbigkeit')->getOptions()); @unlink($tempXML); @unlink($tempJson); } }