diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/AbstractCommonComponentType.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/AbstractCommonComponentType.cs index 12e8ad9e9a591385abaedc895a1cf5f6bdba16c6..eb627b521035c23d79edf55c1b34a37c34744fe0 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/AbstractCommonComponentType.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/AbstractCommonComponentType.cs @@ -16,17 +16,17 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider { get { return true; } } - public string Manufacturer + public virtual string Manufacturer { get { return GetString(XMLNames.Component_Manufacturer); } } - public string Model + public virtual string Model { get { return GetString(XMLNames.Component_Model); } } - public string Date + public virtual string Date { get { return GetString(XMLNames.Component_Date); } } @@ -39,7 +39,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider { } } - protected TableData ReadTableData(string baseElement, string entryElement, Dictionary<string, string> mapping) + protected virtual TableData ReadTableData(string baseElement, string entryElement, Dictionary<string, string> mapping) { var entries = BaseNode.SelectNodes( XMLHelper.QueryLocalName(baseElement, entryElement)); diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationInputDataV20InjectModule.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationInputDataV20InjectModule.cs new file mode 100644 index 0000000000000000000000000000000000000000..61f7e597875c4505566504bee936dde400b9db61 --- /dev/null +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationInputDataV20InjectModule.cs @@ -0,0 +1,92 @@ +using Ninject.Modules; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl; +using TUGraz.VectoCore.Utils; + +namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.NinjectModules +{ + public class XMLDeclarationInputDataV20InjectModule : NinjectModule + { + #region Overrides of NinjectModule + + public override void Load() + { + Bind<IXMLDeclarationInputData>().To<XMLDeclarationInputDataProviderV20>().Named( + XMLHelper.GetVersionFromNamespaceUri(XMLDeclarationInputDataProviderV20.NAMESPACE_URI)); + + Bind<IXMLDeclarationJobInputData>().To<XMLDeclarationJobInputDataProviderV20>().Named( + XMLHelper.GetVersionFromNamespaceUri(XMLDeclarationJobInputDataProviderV20.NAMESPACE_URI)); + + Bind<IXMLDeclarationVehicleData>().To<XMLDeclarationVehicleDataProviderV20>().Named( + XMLHelper.GetVersionFromNamespaceUri(XMLDeclarationVehicleDataProviderV20.NAMESPACE_URI)); + + Bind<IXMLVehicleComponentsDeclaration>().To<XMLDeclarationComponentsDataProviderV20>().Named( + XMLHelper.GetVersionFromNamespaceUri(XMLDeclarationComponentsDataProviderV20.NAMESPACE_URI)); + + Bind<IXMLAirdragDeclarationInputData>().To<XMLDeclarationAirdragDataProviderV20>().Named( + XMLHelper.GetVersionFromNamespaceUri(XMLDeclarationAirdragDataProviderV20.NAMESPACE_URI)); + + Bind<IXMLAngledriveInputData>().To<XMLDeclarationAngledriveDataProviderV20>().Named( + XMLHelper.GetVersionFromNamespaceUri(XMLDeclarationAngledriveDataProviderV20.NAMESPACE_URI)); + + Bind<IXMLAxleGearInputData>().To<XMLDeclarationAxlegearDataProviderV20>().Named( + XMLHelper.GetVersionFromNamespaceUri(XMLDeclarationAxlegearDataProviderV20.NAMESPACE_URI)); + + Bind<IXMLEngineDeclarationInputData>().To<XMLDeclarationEngineDataProviderV20>().Named( + XMLHelper.GetVersionFromNamespaceUri(XMLDeclarationEngineDataProviderV20.NAMESPACE_URI)); + + Bind<IXMLRetarderInputData>().To<XMLDeclarationRetarderDataProviderV20>().Named( + XMLHelper.GetVersionFromNamespaceUri(XMLDeclarationRetarderDataProviderV20.NAMESPACE_URI)); + + Bind<IXMLGearboxDeclarationInputData>().To<XMLDeclarationGearboxDataProviderV20>() + .Named(XMLHelper.GetVersionFromNamespaceUri(XMLDeclarationGearboxDataProviderV20.NAMESPACE_URI)); + + Bind<IXMLGearData>().To<XMLGearDataV20>().Named(XMLHelper.GetVersionFromNamespaceUri(XMLGearDataV20.NAMESPACE_URI)); + + Bind<IXMLTorqueConverterDeclarationInputData>().To<XMLDeclarationTorqueConverterDataProviderV20>().Named( + XMLHelper.GetVersionFromNamespaceUri(XMLDeclarationTorqueConverterDataProviderV20.NAMESPACE_URI)); + + Bind<IXMLAxlesDeclarationInputData>().To<XMLDeclarationAxlesDataProviderV20>().Named( + XMLHelper.GetVersionFromNamespaceUri(XMLDeclarationAxlesDataProviderV20.NAMESPACE_URI)); + + Bind<IXMLAxleDeclarationInputData>().To<XMLDeclarationAxleDataProviderV20>().Named( + XMLHelper.GetVersionFromNamespaceUri(XMLDeclarationAxleDataProviderV20.NAMESPACE_URI)); + + Bind<IXMLTyreDeclarationInputData>().To<XMLDeclarationTyreDataProviderV20>().Named( + XMLHelper.GetVersionFromNamespaceUri(XMLDeclarationTyreDataProviderV20.NAMESPACE_URI)); + + Bind<IXMLAuxiliariesDeclarationInputData>().To<XMLDeclarationAuxiliariesDataProviderV20>().Named( + XMLHelper.GetVersionFromNamespaceUri(XMLDeclarationAuxiliariesDataProviderV20.NAMESPACE_URI)); + + Bind<IXMLAuxiliaryDeclarationInputData>().To<XMLAuxiliaryDeclarationDataProviderV20>().Named( + XMLHelper.GetVersionFromNamespaceUri(XMLAuxiliaryDeclarationDataProviderV20.NAMESPACE_URI)); + + Bind<IXMLPTOTransmissionInputData>().To<XMLDeclarationPTODataProviderV20>().Named( + XMLHelper.GetVersionFromNamespaceUri(XMLDeclarationPTODataProviderV20.NAMESPACE_URI)); + + Bind<IXMLAdvancedDriverAssistantSystemDeclarationInputData>() + .To<XMLDeclarationADASDataProviderV20>().Named( + XMLHelper.GetVersionFromNamespaceUri(XMLDeclarationADASDataProviderV20.NAMESPACE_URI)); + + // --------------------------------------------------------------------------------------- + + Bind<IXMLDeclarationInputDataReader>().To<XMLDeclarationInputReaderV20>() + .Named(XMLHelper.GetVersionFromNamespaceUri(XMLDeclarationInputReaderV20.NAMESPACE_URI)); + + Bind<IXMLJobDataReader>().To<XMLJobDataReaderV20>() + .Named(XMLHelper.GetVersionFromNamespaceUri(XMLJobDataReaderV20.NAMESPACE_URI)); + + Bind<IXMLComponentReader>().To<XMLComponentReaderV20>() + .Named(XMLHelper.GetVersionFromNamespaceUri(XMLComponentReaderV20.NAMESPACE_URI)); + + Bind<IXMLPTOReader>().To<XMLPTOReaderV20>() + .Named(XMLHelper.GetVersionFromNamespaceUri(XMLPTOReaderV20.NAMESPACE_URI)); + + Bind<IXMLADASReader>().To<XMLADASReaderV20>() + .Named(XMLHelper.GetVersionFromNamespaceUri(XMLADASReaderV20.NAMESPACE_URI)); + } + + #endregion + } +} diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/XMLInputDataFactory.cs b/VectoCore/VectoCore/InputData/FileIO/XML/XMLInputDataFactory.cs index b45865c404397597e3a8cfaed534b30ecb3aac6e..9dfe55a362fbcbbbc67ab1a4c550178cf42599ce 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/XMLInputDataFactory.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/XMLInputDataFactory.cs @@ -40,7 +40,6 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML } - public IEngineeringInputDataProvider CreateEngineering(Stream inputData, bool verifyXML) { return DoCreateEngineering(XmlReader.Create(inputData), null, verifyXML); @@ -52,7 +51,6 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML } - public IDeclarationInputDataProvider CreateDeclaration(string filename, bool verifyXML) { return DoCreateDeclaration(XmlReader.Create(filename), filename, verifyXML); @@ -91,6 +89,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML if (xmlDoc.DocumentElement == null) { throw new VectoException("empty xml document!"); } + var documentType = XMLHelper.GetDocumentType(xmlDoc.DocumentElement.LocalName); if (documentType == null) { throw new VectoException("unknown xml file! {0}", xmlDoc.DocumentElement.LocalName); @@ -124,10 +123,13 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML private IDeclarationInputDataProvider ReadDeclarationJob(XmlDocument xmlDoc, string source, bool verifyXML) { var versionNumber = XMLHelper.GetSchemaVersion(xmlDoc.DocumentElement); - - var input = DeclarationFactory.CreateInputProvider(versionNumber, xmlDoc, source); - input.Reader = DeclarationFactory.CreateInputReader(versionNumber, input, xmlDoc.DocumentElement, verifyXML); - return input; + try { + var input = DeclarationFactory.CreateInputProvider(versionNumber, xmlDoc, source); + input.Reader = DeclarationFactory.CreateInputReader(versionNumber, input, xmlDoc.DocumentElement, verifyXML); + return input; + } catch (Exception e) { + throw new VectoException("Failed to read Declaration job version {0}", e, versionNumber); + } } } } diff --git a/VectoCore/VectoCore/Utils/XMLDefinitions.cs b/VectoCore/VectoCore/Utils/XMLDefinitions.cs index d529e82c06d9c13bae86bc236323f94db65106f3..9dee7ee2700f7e912c41b3bba07a9456a867474d 100644 --- a/VectoCore/VectoCore/Utils/XMLDefinitions.cs +++ b/VectoCore/VectoCore/Utils/XMLDefinitions.cs @@ -37,6 +37,8 @@ namespace TUGraz.VectoCore.Utils public const string DECLARATION_DEFINITIONS_NAMESPACE_URI_V10 = "urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0"; + public const string DECLARATION_DEFINITIONS_NAMESPACE_URI_V20 = "urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"; + public const string DECLARATION_INPUT_NAMESPACE_URI_V10 = "urn:tugraz:ivt:VectoAPI:DeclarationInput:v1.0"; public const string DECLARATION_COMPONENT_NAMESPACE_URI_V10 = "urn:tugraz:ivt:VectoAPI:DeclarationComponent:v1.0"; diff --git a/VectoCore/VectoCore/VectoCore.csproj b/VectoCore/VectoCore/VectoCore.csproj index bb67b6da9dc2caae157b9c50274303b287da577d..57e753415f8b0d823acd7fdb0c4e4f85647d2190 100644 --- a/VectoCore/VectoCore/VectoCore.csproj +++ b/VectoCore/VectoCore/VectoCore.csproj @@ -169,6 +169,7 @@ <Compile Include="InputData\FileIO\XML\Declaration\Interfaces\IXMLTorqueConverterDeclarationInputData.cs" /> <Compile Include="InputData\FileIO\XML\Declaration\Interfaces\IXMLTyreDeclarationInputData.cs" /> <Compile Include="InputData\FileIO\XML\Declaration\Interfaces\IXMLVehicleComponentsDeclaration.cs" /> + <Compile Include="InputData\FileIO\XML\Declaration\NinjectModules\XMLDeclarationInputDataV20InjectModule.cs" /> <Compile Include="InputData\FileIO\XML\Declaration\Reader\Impl\AbstractComponentReader.cs" /> <Compile Include="InputData\FileIO\XML\Declaration\Reader\Impl\XMLADASReader.cs" /> <Compile Include="InputData\FileIO\XML\Declaration\Reader\Impl\XMLComponentReader.cs" /> @@ -231,19 +232,19 @@ <Compile Include="InputData\FileIO\XML\Engineering\Interfaces\IXMLRetarderData.cs" /> <Compile Include="InputData\FileIO\XML\Engineering\Interfaces\IXMLTorqueconverterData.cs" /> <Compile Include="InputData\FileIO\XML\Engineering\Interfaces\IXMLTyreData.cs" /> - <Compile Include="InputData\FileIO\XML\Engineering\IXMLComponentsReader.cs" /> - <Compile Include="InputData\FileIO\XML\Engineering\IXMLDriverDataReader.cs" /> + <Compile Include="InputData\FileIO\XML\Engineering\Reader\IXMLComponentsReader.cs" /> + <Compile Include="InputData\FileIO\XML\Engineering\Reader\IXMLDriverDataReader.cs" /> <Compile Include="InputData\FileIO\XML\Engineering\IXMLEngineeringInputReader.cs" /> - <Compile Include="InputData\FileIO\XML\Engineering\IXMLJobDataReader.cs" /> + <Compile Include="InputData\FileIO\XML\Engineering\Reader\IXMLJobDataReader.cs" /> <Compile Include="InputData\FileIO\XML\Engineering\NinjectModules\XMLEngineeringReaderTestOverrides.cs" /> <Compile Include="InputData\FileIO\XML\Engineering\NinjectModules\XMLEngineeringReaderV07InjectModule.cs" /> <Compile Include="InputData\FileIO\XML\Engineering\NinjectModules\XMLEngineeringReaderV10InjectModule.cs" /> - <Compile Include="InputData\FileIO\XML\Engineering\Reader\AbstractExternalResourceReader.cs" /> - <Compile Include="InputData\FileIO\XML\Engineering\Reader\XMLComponentsEngineeringReader.cs" /> - <Compile Include="InputData\FileIO\XML\Engineering\Reader\XMLDriverDataReader.cs" /> - <Compile Include="InputData\FileIO\XML\Engineering\Reader\XMLEngineeringInputReader.cs" /> - <Compile Include="InputData\FileIO\XML\Engineering\Reader\XMLJobDataReader.cs" /> - <Compile Include="InputData\FileIO\XML\Engineering\XMLEngineeringReaderInjectModule.cs" /> + <Compile Include="InputData\FileIO\XML\Engineering\Reader\Impl\AbstractExternalResourceReader.cs" /> + <Compile Include="InputData\FileIO\XML\Engineering\Reader\Impl\XMLComponentsEngineeringReader.cs" /> + <Compile Include="InputData\FileIO\XML\Engineering\Reader\Impl\XMLDriverDataReader.cs" /> + <Compile Include="InputData\FileIO\XML\Engineering\Reader\Impl\XMLEngineeringInputReader.cs" /> + <Compile Include="InputData\FileIO\XML\Engineering\Reader\Impl\XMLJobDataReader.cs" /> + <Compile Include="InputData\FileIO\XML\Engineering\NinjectModules\XMLEngineeringReaderInjectModule.cs" /> <Compile Include="InputData\FileIO\XML\IXMLResource.cs" /> <Compile Include="InputData\FileIO\XML\XMLInputDataFactory.cs" /> <Compile Include="InputData\FileIO\XML\Declaration\IXMLDeclarationInputDataReader.cs" /> @@ -287,7 +288,7 @@ <Compile Include="OutputData\XML\Engineering\XMLEngineeringWriterInjectModule.cs" /> <Compile Include="OutputData\XML\Engineering\XMLWriterMapping.cs" /> <Compile Include="Utils\Ninject\UseFirstArgumentAsInstanceProvider.cs" /> - <Compile Include="InputData\FileIO\XML\Declaration\XMLDeclarationReaderInjectModule.cs" /> + <Compile Include="InputData\FileIO\XML\Declaration\NinjectModules\XMLDeclarationReaderInjectModule.cs" /> <Compile Include="InputData\FileIO\XML\Declaration\DataProvider\XMLDeclarationVehicleDataProvider.cs" /> <Compile Include="InputData\FileIO\XML\Declaration\DataProvider\XMLDeclarationInputDataProvider.cs" /> <Compile Include="InputData\FileIO\XMLReports\XMLManufacturerReportReader.cs" /> @@ -674,6 +675,9 @@ <EmbeddedResource Include="Resources\XSD\VTPReport.0.1.xsd"> <SubType>Designer</SubType> </EmbeddedResource> + <EmbeddedResource Include="Resources\XSD\VectoEngineeringDefinitions.xsd"> + <SubType>Designer</SubType> + </EmbeddedResource> <None Include="Utils\VectoVersionCore.tt"> <Generator>TextTemplatingFileGenerator</Generator> <LastGenOutput>VectoVersionCore.cs</LastGenOutput> diff --git a/VectoCore/VectoCoreTest/VectoCoreTest.csproj b/VectoCore/VectoCoreTest/VectoCoreTest.csproj index 595e8dc3c1b0cd815b9a83f60124a001be6894b9..239d0720a37e56d0f998a48bc6fea94f331a88e6 100644 --- a/VectoCore/VectoCoreTest/VectoCoreTest.csproj +++ b/VectoCore/VectoCoreTest/VectoCoreTest.csproj @@ -198,6 +198,7 @@ <Compile Include="Utils\DoubleExtensionMethodTest.cs" /> <Compile Include="Utils\VectoMathTest.cs" /> <Compile Include="XML\XMLDeclarationInputTest.cs" /> + <Compile Include="XML\XMLDeclarationReaderVersionsTest.cs" /> <Compile Include="XML\XMLEngineeringInputRefTest.cs" /> <Compile Include="XML\XMLEngineeringInputSingleTest.cs" /> <Compile Include="XML\XMLReportTest.cs" /> @@ -2834,6 +2835,81 @@ <Content Include="TestData\XML\EngineeringJob\SampleJobEngineering1.1.xml"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content> + <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion1.0\Tractor_4x2_vehicle-class-5_5_t_0.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion1.0\vecto_engine-sample.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion1.0\vecto_vehicle-exempted-sample.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion1.0\vecto_vehicle-new_parameters-sample.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion1.0\vecto_vehicle-sample_LNG.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.0\Tractor_4x2_vehicle-class-5_5_t_0.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.0\vecto_engine-sample.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.0\vecto_tyre-sample.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.0\vecto_vehicle-components_1.0.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.0\vecto_vehicle-new_parameters-sample.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.0\vecto_vehicle-sample_LNG.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.1\Tractor_4x2_vehicle-class-5_5_t_0.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.1\vecto_engine-sample.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.1\vecto_tyre-sample.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.1\vecto_vehicle-components_1.0.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.1\vecto_vehicle-engine_2.0.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.1\vecto_vehicle-exempted-sample.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.1\vecto_vehicle-new_parameters-sample.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.1\vecto_vehicle-sample_LNG.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.2\Tractor_4x2_vehicle-class-5_5_t_0.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.2\vecto_engine-sample.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.2\vecto_tyre-sample.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.2\vecto_vehicle-exempted-sample.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.2\vecto_vehicle-new_parameters-sample.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.2\vecto_vehicle-sample_LNG.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> <Content Include="TestData\XML\XMLReaderDeclaration\Tractor_4x2_vehicle-class-5_5_t_0.xml"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content> diff --git a/VectoCore/VectoCoreTest/XML/XMLDeclarationReaderVersionsTest.cs b/VectoCore/VectoCoreTest/XML/XMLDeclarationReaderVersionsTest.cs new file mode 100644 index 0000000000000000000000000000000000000000..96459fff886900748f9249f32ad252b5b4fcc8a5 --- /dev/null +++ b/VectoCore/VectoCoreTest/XML/XMLDeclarationReaderVersionsTest.cs @@ -0,0 +1,80 @@ +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Xml; +using Ninject; +using NUnit.Framework; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCore.InputData.FileIO.XML; +using TUGraz.VectoCore.Models.Simulation.Impl; +using TUGraz.VectoCore.OutputData; +using TUGraz.VectoCore.OutputData.FileIO; +using TUGraz.VectoCore.Utils; +using XmlDocumentType = System.Xml.XmlDocumentType; + +namespace TUGraz.VectoCore.Tests.XML +{ + [TestFixture] + public class XMLDeclarationReaderVersionsTest + { + protected IXMLInputDataReader xmlInputReader; + private IKernel _kernel; + + [OneTimeSetUp] + public void RunBeforeAnyTests() + { + Directory.SetCurrentDirectory(TestContext.CurrentContext.TestDirectory); + + _kernel = new StandardKernel(new VectoNinjectModule()); + xmlInputReader = _kernel.Get<IXMLInputDataReader>(); + } + + [TestCase(@"SchemaVersion1.0\Tractor_4x2_vehicle-class-5_5_t_0.xml")] + public void TestReadingJobVersion_V10(string jobFile) + { + ReadDeclarationJob(jobFile); + } + + [TestCase(@"SchemaVersion2.0\Tractor_4x2_vehicle-class-5_5_t_0.xml")] + public void TestReadingJobVersion_V20(string jobFile) + { + ReadDeclarationJob(jobFile); + } + + + public void ReadDeclarationJob(string jobfile) + { + var filename = Path.Combine(@"TestData\XML\XMLReaderDeclaration", jobfile); + + var fileWriter = new FileOutputWriter(filename); + //var sumWriter = new SummaryDataContainer(fileWriter); + //var jobContainer = new JobContainer(sumWriter); + var dataProvider = xmlInputReader.CreateDeclaration(XmlReader.Create(filename), true); + var runsFactory = new SimulatorFactory(ExecutionMode.Declaration, dataProvider, fileWriter) { + ModalResults1Hz = false, + WriteModalResults = false, + ActualModalData = false, + Validate = false, + }; + + var runs = runsFactory.SimulationRuns().ToArray(); + Assert.IsTrue(runs.Length > 0); + + //var customerRecord = fileWriter.XMLCustomerReportName; + //var manufacturerRecord = fileWriter.XMLFullReportName; + + //var validationMsg1 = new List<string> { customerRecord }; + + //var validator1 = new XMLValidator(XmlReader.Create(customerRecord), validationErrorAction: (s, e) => { + // validationMsg1.Add(e.ValidationEventArgs.Message); + //}); + //Assert.IsTrue(validator1.ValidateXML(VectoCore.Utils.XmlDocumentType.CustomerReport), string.Join("\n", validationMsg1)); + + //var validationMsg2 = new List<string> { manufacturerRecord }; + //var validator2 = new XMLValidator(XmlReader.Create(manufacturerRecord), validationErrorAction: (s, e) => { + // validationMsg2.Add(e.ValidationEventArgs.Message); + //}); + //Assert.IsTrue(validator2.ValidateXML(VectoCore.Utils.XmlDocumentType.ManufacturerReport), string.Join("\n", validationMsg2)); + } + } +}