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

Skip to content
Snippets Groups Projects
Commit 4fb22323 authored by Markus QUARITSCH's avatar Markus QUARITSCH
Browse files

increase test coverage, close files after reading

parent 7f216147
No related branches found
No related tags found
No related merge requests found
......@@ -19,10 +19,16 @@ namespace TUGraz.VectoHashing
public static VectoHash Load(string filename)
{
var doc = new XmlDocument();
XmlTextReader reader = null;
try {
doc.Load(new XmlTextReader(filename));
reader = new XmlTextReader(filename);
doc.Load(reader);
} catch (Exception e) {
throw new Exception("failed to read XML document", e);
} finally {
if (reader != null) {
reader.Close();
}
}
return new VectoHash(doc);
}
......@@ -156,7 +162,7 @@ namespace TUGraz.VectoHashing
{
var nodes = Document.SelectNodes(GetComponentQueryString());
if (nodes == null || nodes.Count == 0) {
throw new Exception(string.Format("Component {0} not found", nodes.Count));
throw new Exception("No component found");
}
return ReadHashValue(nodes[0]);
}
......
......@@ -354,6 +354,61 @@ namespace VectoHashingTest
AssertHelper.Exception<Exception>(() => VectoHash.Load(stream), "failed to read XML document");
}
[TestCase()]
public void TestComputeHashNoComponentInXML()
{
var xml = @"<VectoInputDeclaration/>";
var stream = new MemoryStream();
var writer = new StreamWriter(stream);
writer.Write(xml);
writer.Flush();
stream.Seek(0, SeekOrigin.Begin);
var h = VectoHash.Load(stream);
AssertHelper.Exception<Exception>(() => h.ComputeHash(), "No component found");
}
[TestCase()]
public void TestReadHashNoComponentInXML()
{
var xml = @"<VectoInputDeclaration/>";
var stream = new MemoryStream();
var writer = new StreamWriter(stream);
writer.Write(xml);
writer.Flush();
stream.Seek(0, SeekOrigin.Begin);
var h = VectoHash.Load(stream);
AssertHelper.Exception<Exception>(() => h.ReadHash(), "No component found");
}
[TestCase(VectoComponents.Engine, "ENG-"),
TestCase(VectoComponents.Gearbox, "GBX-"),
TestCase(VectoComponents.Axlegear, "AXL-"),
TestCase(VectoComponents.Retarder, "RET-"),
TestCase(VectoComponents.TorqueConverter, "TC-"),
TestCase(VectoComponents.Angledrive, "ANGL-"),
TestCase(VectoComponents.Airdrag, "AD-"),
TestCase(VectoComponents.Tyre, "TYRE-"),
]
public void TestIdPrefix(VectoComponents component, string expectedPrefix)
{
Assert.AreEqual(expectedPrefix, component.HashIdPrefix());
}
[TestCase()]
public void TestInvalidComponentXMLName()
{
AssertHelper.Exception<ArgumentOutOfRangeException>(() => ((VectoComponents)9999).XMLElementName());
}
[TestCase()]
public void TestInvalidComponentPrefix()
{
AssertHelper.Exception<ArgumentOutOfRangeException>(() => ((VectoComponents)9999).HashIdPrefix());
}
private static XmlSchemaSet GetXMLSchema(bool job)
{
var resource = RessourceHelper.LoadResourceAsStream(RessourceHelper.ResourceType.XMLSchema,
......
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