RequireOnceItopFile('setup/itopdesignformat.class.inc.php'); } /** * Verify if the `datamodels/2.x/datamodel.*.xml` files refer to the latest version of the design * This is an integration test * * As ess and pro targets are copying modules into datamodels/2.x this test can only be run on a community target ! * * @group itop-community * @group skipPostBuild * * @dataProvider DatamodelItopXmlVersionProvider * * @since 3.0.3 3.1.0 move itop-community group in this method */ public function testDatamodelItopXmlVersion($sXmlFile) { $oOriginalXml = new DOMDocument(); $oOriginalXml->load($sXmlFile); $oTransformedXml = new DOMDocument(); $oTransformedXml->load($sXmlFile); $oFormat = new iTopDesignFormat($oTransformedXml); if ($oFormat->Convert()) { // Compare the original and new format $sExpectedXmlVersion = ITOP_DESIGN_LATEST_VERSION; $this->assertSame( $oTransformedXml->saveXML(), $oOriginalXml->saveXML(), "Datamodel file $sXmlFile:2 not in the latest format ($sExpectedXmlVersion)" ); } else { $this->fail("Failed to convert $sXmlFile into the latest format"); } } public function DatamodelItopXmlVersionProvider() { static::setUp(); $sAppRoot = $this->GetAppRoot(); $sPath = $sAppRoot.'datamodels/2.x/*/datamodel.*.xml'; $aXmlFiles = glob($sPath); $aXmlFiles[] = $sAppRoot.'core/datamodel.core.xml'; $aXmlFiles[] = $sAppRoot.'application/datamodel.application.xml'; $aTestCases = []; foreach ($aXmlFiles as $sXmlFile) { $aTestCases[$sXmlFile] = [ 'sXmlFile' => $sXmlFile, ]; } return $aTestCases; } }