Code development platform for open source projects from the European Union institutions

Skip to content
Snippets Groups Projects
Commit 1ba71208 authored by Markus Quaritsch's avatar Markus Quaritsch
Browse files

cherry pick 00821ea1

parent 12eada4f
No related branches found
No related tags found
No related merge requests found
<?xml version="1.0" encoding="UTF-8"?>
<tns:VectoInputDeclaration
xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.5"
xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"
xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationComponent:v2.0"
xmlns:di="http://www.w3.org/2000/09/xmldsig#" schemaVersion="2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationComponent E:\QUAM\Workspace\VECTO_quam\VectoCore\VectoCore\Resources\XSD/VectoDeclarationComponent.xsd">
<tns:Tyre>
<v2.0:Data id="TYR-gooZah3D" xsi:type="TyreDataDeclarationType">
<Manufacturer>Generic Tyre Manufacturer</Manufacturer>
<Model>Generic Tyre Model</Model>
<CertificationNumber>e12*0815/8051*2017/05T0000*00</CertificationNumber>
<Date>2017-02-15T11:00:00Z</Date>
<AppVersion>DemoTyreApp 1.0</AppVersion>
<Dimension>315/45 R22.5</Dimension>
<TyreClass>C1</TyreClass>
<FuelEfficiencyClass>A</FuelEfficiencyClass>
<RRCDeclared>0.0055</RRCDeclared>
<FzISO>33500</FzISO>
</v2.0:Data>
<v2.0:Signature>
<di:Reference URI="#TYR-gooZah3D">
<di:Transforms>
<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" />
<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
</di:Transforms>
<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
<di:DigestValue>JWEwzKSP0lXvwRgQZTiWJm9dpdtQ72FOX0CC5Vy6f2Y=</di:DigestValue>
</di:Reference>
</v2.0:Signature>
</tns:Tyre>
</tns:VectoInputDeclaration>
\ No newline at end of file
......@@ -33,6 +33,7 @@ using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Reflection.Emit;
using System.Xml;
using System.Xml.XPath;
using Ninject;
......@@ -51,8 +52,10 @@ using TUGraz.VectoCore.Utils;
using NUnit.Framework;
using TUGraz.VectoCommon.InputData;
using TUGraz.VectoCore.InputData.FileIO.XML;
using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl;
using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter;
using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory;
using XmlDocumentType = TUGraz.VectoCore.Utils.XmlDocumentType;
namespace TUGraz.VectoCore.Tests.XML
{
......@@ -709,6 +712,62 @@ namespace TUGraz.VectoCore.Tests.XML
}
}
public const string SampleTyreXML = @"TestData\XML\XMLReaderDeclaration\SchemaVersion2.5\TyreSample.xml";
[TestCase()]
public void TestWheelsSupportedInXML()
{
var tyreDimensions = DeclarationData.Wheels.GetWheelsDimensions();
foreach (var tyreDimension in tyreDimensions) {
var reader = XmlReader.Create(SampleTyreXML);
var doc = new XmlDocument();
doc.Load(reader);
var nav = doc.CreateNavigator();
var manager = new XmlNamespaceManager(nav.NameTable);
var helper = new XPathHelper(ExecutionMode.Declaration);
helper.AddNamespaces(manager);
var tyredimensionNode = nav.SelectSingleNode(XMLHelper.QueryLocalName(XMLNames.AxleWheels_Axles_Axle_Dimension));
tyredimensionNode.SetValue(tyreDimension);
var modified = XmlReader.Create(new StringReader(nav.OuterXml));
var validator = new XMLValidator(modified, null, XMLValidator.CallBackExceptionOnError);
var valid = validator.ValidateXML(XmlDocumentType.DeclarationComponentData);
Assert.IsTrue(valid, $"error validating XML with dimension {tyreDimension}");
}
}
[
TestCase("285/55R16C"), // invalid space
//TestCase("285/55 R16C"), // allowed, as xs:token already combines multiple whitespaces
TestCase("85/55 R16C"), // invalid section width
TestCase("285/1231 R16C"), // invalid aspect ratio width
TestCase("285/55 X16C"), // invalid construction type
TestCase("85/55 R16112C"), // invalid rim diameter
TestCase("85/55 R16x"), // invalid suffix
TestCase("1.0001 R12"), //
TestCase("9 R12111"), // invalid rim diameter
TestCase("9 R12x"), // invalid suffix
TestCase("9R12"), // invalid space
//TestCase("9 R12"), // allowed, as xs:token already combines multiple whitespaces
]
public void TestInvalidWheelsDimensionString(string dim)
{
var reader = XmlReader.Create(SampleTyreXML);
var doc = new XmlDocument();
doc.Load(reader);
var nav = doc.CreateNavigator();
var manager = new XmlNamespaceManager(nav.NameTable);
var helper = new XPathHelper(ExecutionMode.Declaration);
helper.AddNamespaces(manager);
var tyredimensionNode = nav.SelectSingleNode(XMLHelper.QueryLocalName(XMLNames.AxleWheels_Axles_Axle_Dimension));
tyredimensionNode.SetValue(dim);
var modified = XmlReader.Create(new StringReader(nav.OuterXml));
var validator = new XMLValidator(modified, null, XMLValidator.CallBackExceptionOnError);
AssertHelper.Exception<VectoException>(() => validator.ValidateXML(XmlDocumentType.DeclarationComponentData), messageContains: "Validation error:");
}
[TestCase]
public void TestPTOTypeTypes()
{
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment