using Deltares.DamEngine.Io.XmlOutput; using KellermanSoftware.CompareNetObjects; using Input = Deltares.DamEngine.Io.XmlInput.Input; using InputDamProjectType = Deltares.DamEngine.Io.XmlInput.InputDamProjectType; using NUnit.Framework; namespace Deltares.DamEngine.Io.Tests { [TestFixture] public class DamXmlSerializationTests { [Test] public void CanReadWriteInputObject() { const string filename = "Input.xml"; Input sourceInput = CreatePopulatedInput(); DamXmlSerialization.SaveInputAsXml(filename, sourceInput); Input destinationInput = DamXmlSerialization.LoadInputFromXml(filename); CompareInput(sourceInput, destinationInput); } private Input CreatePopulatedInput() { Input input = new Input(); input.DamProjectType = InputDamProjectType.Design; return input; } private void CompareInput(Input expected, Input actual) { var compare = new CompareLogic { Config = { MaxDifferences = 100 } }; var result = compare.Compare(expected, actual); Assert.AreEqual(0, result.Differences.Count, "Differences found read/write Input object"); } [Test] public void CanReadWriteOutputObject() { const string filename = "Output.xml"; Output sourceOutput = CreatePopulatedOutput(); DamXmlSerialization.SaveOutputAsXml(filename, sourceOutput); Output destinationOutput = DamXmlSerialization.LoadOutputFromXml(filename); CompareOutput(sourceOutput, destinationOutput); } private Output CreatePopulatedOutput() { var output = new Output(); output.Results = new OutputResults(); output.Results.CalculationMessages = new Message[3]; output.Results.CalculationMessages[0] = new Message() { MessageType = MessageMessageType.Error, Message1 = "test1" }; output.Results.CalculationMessages[1] = new Message() { MessageType = MessageMessageType.Warning, Message1 = "test2" }; output.Results.CalculationMessages[2] = new Message() { MessageType = MessageMessageType.Info, Message1 = "test3" }; return output; } private void CompareOutput(Output expected, Output actual) { var compare = new CompareLogic { Config = { MaxDifferences = 100 } }; var result = compare.Compare(expected, actual); Assert.AreEqual(0, result.Differences.Count, "Differences found read/write Output object"); } } }