// 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.Linq; using Deltares.Dam.Data.DataPlugins.Configuration; using Deltares.Geotechnics; using Deltares.Geotechnics.SurfaceLines; namespace Deltares.Dam.Tests { using NUnit.Framework; using Deltares.Standard; using Deltares.Dam.Data; using Deltares.Dam.Data.DataPlugins; [TestFixture] public class DataPluginDataSourceXmlSerializerTests { private const string cXmlFilename = "datasource.xml"; [TestFixtureSetUp] public void TestFixtureSetup() { } [Test] public void ReadAfterWriteReturnsSameData() { var dataSourceContainerSrc = new DataSourceContainer(); dataSourceContainerSrc.DataSourceList.Add(new DataSource() { DataSourceType = DataSourceType.MSoilBase, DataLocation = "Soilbase.mdb" }); dataSourceContainerSrc.DataSourceList.Add(new DataSource() { DataSourceType = DataSourceType.CsvFiles, DataLocation = @".\CSVFiles\" }); dataSourceContainerSrc.Add(new Data.DataPlugins.Configuration.DataAttribute { AttributeName = "testAttribute", DataSource = "testfile.shp"}); dataSourceContainerSrc.MapSoilProfile2D = @".\Geometries"; dataSourceContainerSrc.SensorConfigurationFilename = @".\SensorData.xls"; dataSourceContainerSrc.DataSourceEsriProjection = @"GDSKFJSDALKFKS"; dataSourceContainerSrc.IsImportAsRelativeProfiles = true; dataSourceContainerSrc.SoilProfileCharacteristicPointReference = CharacteristicPointType.DikeToeAtPolder; DataSourceContainer.Serialize(dataSourceContainerSrc, cXmlFilename); var dataSourceContainerDest = DataSourceContainer.Deserialize(cXmlFilename); Assert.AreEqual(dataSourceContainerSrc.MapSoilProfile2D, dataSourceContainerDest.MapSoilProfile2D); Assert.AreEqual(dataSourceContainerSrc.SensorConfigurationFilename, dataSourceContainerDest.SensorConfigurationFilename); Assert.AreEqual(dataSourceContainerSrc.DataSourceEsriProjection, dataSourceContainerDest.DataSourceEsriProjection); Assert.AreEqual(dataSourceContainerSrc.IsImportAsRelativeProfiles, dataSourceContainerDest.IsImportAsRelativeProfiles); Assert.AreEqual(dataSourceContainerSrc.SoilProfileCharacteristicPointReference, dataSourceContainerDest.SoilProfileCharacteristicPointReference); Assert.AreEqual(dataSourceContainerSrc.DataSourceList.Count, dataSourceContainerDest.DataSourceList.Count); Assert.AreEqual(dataSourceContainerSrc.DataSourceList[1].DataSourceType, dataSourceContainerDest.DataSourceList[1].DataSourceType); Assert.AreEqual(dataSourceContainerSrc.DataSourceList[1].DataLocation, dataSourceContainerDest.DataSourceList[1].DataLocation); Assert.IsNotNull(dataSourceContainerDest.DataAttributes); Assert.IsTrue(dataSourceContainerDest.DataAttributes.Count() == 1); Assert.AreEqual(dataSourceContainerSrc.DataAttributes.ElementAt(0).AttributeName, dataSourceContainerDest.DataAttributes.ElementAt(0).AttributeName); //Assert.AreEqual(dataSourceContainerSrc.DataAttributes.ElementAt(0).DataSource, dataSourceContainerDest.DataAttributes.ElementAt(0).DataSource); } [Test] public void ContainerIsValid_ContainsUnsupportedAttributes_ReturnsFalse() { var container = new DataSourceContainer(); const string attributeName = "testattribute"; container.Add(new Data.DataPlugins.Configuration.DataAttribute() { AttributeName = attributeName }); Assert.IsTrue(DataSourceContainer.Validate(container, new[]{ attributeName }).Count() == 0); } } }