//-----------------------------------------------------------------------
//
// Copyright (c) 2011 Deltares. All rights reserved.
//
// Tom The
// tom.the@deltares.nl
// 05-04-2011
// Test for importing CSV-files in DataPlugin
//-----------------------------------------------------------------------
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);
}
}
}