//-----------------------------------------------------------------------
//
// Copyright (c) 2011 Deltares. All rights reserved.
//
// Tom The
// tom.the@deltares.nl
// 05-04-2011
// Test for importing MGeobase data in DataPlugin
//-----------------------------------------------------------------------
using Deltares.Dam.Data;
using Deltares.Dam.Data.DataPlugins.Configuration;
using Deltares.Dam.Data.Importers;
using Deltares.Standard.TestUtils;
namespace Deltares.Dam.Tests
{
using System.Collections.Generic;
using System.Linq;
using NUnit.Framework;
using Data.DataPlugins;
[TestFixture]
public class DataPluginImporterDataShapeFileTests
{
const string DirectoryWithCsvFiles = @"..\..\..\data\Dam\Waterboards\Groot Salland\Binnenwaarts\";
const string DirectoryWithDataShapeFiles = @"..\..\..\data\Dam\Waterboards\Groot Salland\Binnenwaarts\GWS\gis-customdata\ShapeFiles\";
private const string Location186Id = "dwp18_6";
private const string Location275Id = "dwp27_5";
private const string Location475Id = "dwp47_5";
List srcDataSources;
DataPluginImporter dataPluginImporter;
[TestFixtureSetUp]
public void TestFixtureSetup()
{
srcDataSources = new List
{
new DataSource
{
DataSourceType = DataSourceType.CsvFiles,
DataLocation = DirectoryWithCsvFiles
},
new DataSource
{
DataSourceType = DataSourceType.DataShapeFiles,
DataLocation = DirectoryWithDataShapeFiles
}
};
dataPluginImporter = new DataPluginImporter
{
Attributes = new[]
{
new DataAttribute
{
AttributeId =
LocationShapeFileAttributeMap.
TrafficLoadAttributeId
},
new DataAttribute
{
AttributeId =
LocationShapeFileAttributeMap.
PenetrationLengthAttributeId
}
}
};
dataPluginImporter.SetDataSources("", srcDataSources);
}
[Test]
public void CanRetrieveTrafficLoadFromDataShapeFile()
{
string dikeRingId = dataPluginImporter.GetDikeRingIdList(DamType.Primary).FirstOrDefault();
dataPluginImporter.ImportDataForDikeRings(new List { dikeRingId }, DamType.Primary, null);
IEnumerable locationDetails = dataPluginImporter.GetLocationDetails(dikeRingId, Location275Id);
var nameValueParameters = locationDetails as NameValueParameter[] ?? locationDetails.ToArray();
Assert.IsTrue(nameValueParameters.Count() > 0);
Assert.AreEqual("13", nameValueParameters.FirstOrDefault(x => x.ParameterName.Equals("TrafficLoad")).ParameterValue);
}
/*[Test]
public void Import_NoCoverageFoundForPoint_ImporterContinuesAndErrorsAreRetrievable()
{
string dikeRingId = dataPluginImporter.GetDikeRingIdList().FirstOrDefault();
dataPluginImporter.GetLocationDetails(dikeRingId, location18_6Id);
var errors = dataPluginImporter.GetImportErrors();
Assert.IsNotNull(errors);
Assert.IsTrue(errors.Count() > 0);
Assert.IsTrue(errors.Contains());
}
*/
[Test]
[Category(Categories.Slow)]
public void CanRetrievePenetrationLengthFromDataShapeFile()
{
string dikeRingId = dataPluginImporter.GetDikeRingIdList(DamType.Primary).FirstOrDefault();
dataPluginImporter.ImportDataForDikeRings(new List { dikeRingId }, DamType.Primary, null);
IEnumerable locationDetails = dataPluginImporter.GetLocationDetails(dikeRingId, Location275Id);
Assert.AreEqual("-1.5", locationDetails.First(
x => x.ParameterName.Equals("PenetrationLength")).ParameterValue);
locationDetails = dataPluginImporter.GetLocationDetails(dikeRingId, Location475Id);
Assert.AreEqual("-1", locationDetails.First(
x => x.ParameterName.Equals("PenetrationLength")).ParameterValue);
}
[Test, Ignore("Waiting on proper test file")]
public void CanRetrieveDetrimentFactorFromDataShapeFile()
{
string dikeRingId = dataPluginImporter.GetDikeRingIdList(DamType.Primary).FirstOrDefault();
dataPluginImporter.ImportDataForDikeRings(new List { dikeRingId }, DamType.Primary, null);
IEnumerable locationDetails = dataPluginImporter.GetLocationDetails(dikeRingId, Location275Id);
Assert.AreEqual("1.05", locationDetails.First(
x => x.ParameterName.Equals("DetrimentFactor")).ParameterValue);
locationDetails = dataPluginImporter.GetLocationDetails(dikeRingId, Location475Id);
Assert.AreEqual("1.07", locationDetails.First(
x => x.ParameterName.Equals("DetrimentFactor")).ParameterValue);
}
}
}