// Copyright (C) Stichting Deltares 2018. All rights reserved. // // This file is part of the application DAM - UI. // // DAM - UI is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // All names, logos, and references to "Deltares" are registered trademarks of // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. using System.Collections.Generic; using System.Linq; using Deltares.Dam.Data; using Deltares.Dam.Data.Sensors; using Deltares.Standard.Extensions; using NUnit.Framework; namespace Deltares.Dam.Tests.Sensors { [TestFixture] public class GroupTest { #region Setup [TestFixtureSetUp] public void FixtureSetup() { } [TestFixtureTearDown] public void FixtureTearDown() { } [SetUp] public void TestSetup() { } [TearDown] public void TestTearDown() { } #endregion /// /// This test was setup because the xml serializer had an issue with lists of enum types /// At the same time it is also good to test if all the required properties get the same value /// after deserializing the object state /// [Test] public void Deserialization_ValidXmlString_ShouldResturnValidGroupWithoutException() { // setup var sensor1 = new Sensor() {Name = "Sensor1", ID = 1}; var sensor2 = new Sensor {Name = "Sensor2", ID = 2}; var group1 = new Group { ID = 1, SensorArray = new[] { sensor1, sensor2 }, // SensorRelativeLocationsArray = new[] // { // new KeyValuePair(sensor1.ID, 10), // new KeyValuePair(sensor2.ID, 20), // }, }; // call var xml = group1.Serialize(); Group group2 = Group.Deserialize(xml); // assert Assert.AreEqual(group1.ID, group2.ID); //Assert.AreEqual(group2.Selection.Count(), group2.SensorRelativeLocations.Count()); foreach (Sensor sensor in group1.Selection) { Assert.IsTrue(group2.Selection.Any( s => s.Name == sensor.Name && s.ID == sensor.ID && s.Depth.AlmostEquals(sensor.Depth))); //Assert.IsTrue(group2.SensorRelativeLocations.Any(s => s.Key == sensor)); } } } }