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(); $sPath = APPROOT.'datamodels/2.x/*/datamodel.*.xml'; $aXmlFiles = glob($sPath); $aXmlFiles[] = APPROOT.'core/datamodel.core.xml'; $aXmlFiles[] = APPROOT.'application/datamodel.application.xml'; $aTestCases = array(); foreach ($aXmlFiles as $sXmlFile) { $aTestCases[$sXmlFile] = array( 'sXmlFile' => $sXmlFile, ); } return $aTestCases; } }