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()->getOptionById('farbe1')->getSelectedOption(), $engine2->getArticle()->getOptionById('farbe1')->getSelectedOption(), ); 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); } }