Index: DamClients/DamUI/trunk/src/Dam/Tests/DataPluginImporterTests.cs =================================================================== diff -u -r2168 -r2419 --- DamClients/DamUI/trunk/src/Dam/Tests/DataPluginImporterTests.cs (.../DataPluginImporterTests.cs) (revision 2168) +++ DamClients/DamUI/trunk/src/Dam/Tests/DataPluginImporterTests.cs (.../DataPluginImporterTests.cs) (revision 2419) @@ -25,6 +25,7 @@ using Deltares.Dam.Data; using Deltares.Dam.Data.DataPlugins; using Deltares.Dam.Data.DataPlugins.Configuration; +using Deltares.Dam.Data.Importers; using Deltares.Dam.Data.Properties; using Deltares.Standard.Language; using Deltares.Standard.TestUtils; @@ -38,6 +39,59 @@ { const string directoryWithCsvFiles = @"..\..\..\data\Dam\Waterboards\Groot Salland\Binnenwaarts\"; + //Project Invoer1 uses both a locations.csv and a cross section shapefile + const string invoer1DirectoryWithCsvFiles = @"..\..\..\data\DamEngineTestProjects\Invoer1\STBI - toDesign\csvfiles\"; + const string invoer1DirectoryWithDataShapeFiles = @"..\..\..\data\DamEngineTestProjects\Invoer1\STBI - toDesign\shapefiles\"; + private const string Location1Id = "RK210-560"; + private const string Location2Id = "RK210-570"; + + List srcDataSources; + DataPluginImporter dataPluginImporter; + + private void SetupInvoer1() + { + srcDataSources = new List + { + new DataSource + { + DataSourceType = DataSourceType.CsvFiles, + DataLocation = invoer1DirectoryWithCsvFiles + }, + new DataSource + { + DataSourceType = DataSourceType.DataShapeFiles, + DataLocation = invoer1DirectoryWithDataShapeFiles + } + }; + dataPluginImporter = new DataPluginImporter + { + Attributes = new[] + { + new DataAttribute + { + AttributeId = LocationShapeFileAttributeMap.LocationAttributeId, + AttributeName = "LocationId", + DataSource = "Locationv2.shp" + }, + new DataAttribute + { + AttributeId = LocationShapeFileAttributeMap.DikeRingAttributeId, + AttributeName = "DIKERINGID", + DataSource = "Locationv2.shp" + }, + new DataAttribute + { + AttributeId = LocationShapeFileAttributeMap.HeadPl3AttributeId, + AttributeName = "stijgh_m", + DataSource = "winterstijg_zonderDSM.shp" + }, + } + }; + + dataPluginImporter.SetDataSources("", srcDataSources); + + } + [Test] public void CanDefineDataSources() { @@ -93,5 +147,38 @@ Assert.AreEqual("Waterschap", info.Description); } + [Test] + public void ValuesFromShapeFileOverwriteValuesFromLocationsCsv() + { + SetupInvoer1(); + string dikeRingId = dataPluginImporter.GetDikeRingIdList().FirstOrDefault(); + dataPluginImporter.ImportDataForDikeRings(new List { dikeRingId }, null); + + IEnumerable locationDetails = dataPluginImporter.GetLocationDetails(dikeRingId, Location1Id); + var nameValueParameters = locationDetails as NameValueParameter[] ?? locationDetails.ToArray(); + Assert.IsTrue(nameValueParameters.Any()); + Assert.AreEqual("-3.651", nameValueParameters.FirstOrDefault(x => x.ParameterName.Equals("HeadPL3")).ParameterValue); + + locationDetails = dataPluginImporter.GetLocationDetails(dikeRingId, Location2Id); + Assert.AreEqual("-3.632", locationDetails.First(x => x.ParameterName.Equals("HeadPL3")).ParameterValue); + } + +// [Test] +// public void ValuesFromShapeFileAreCopiedToScenarioIfNotDefinedInScenariosCsv() +// { +// SetupInvoer1(); +// string dikeRingId = dataPluginImporter.GetDikeRingIdList().FirstOrDefault(); +// dataPluginImporter.ImportDataForDikeRings(new List { dikeRingId }, null); +// +// string scenarioId = dataPluginImporter.GetScenarioList(dikeRingId, Location1Id).FirstOrDefault(); +// IEnumerable scenarioDetails = dataPluginImporter.GetScenarioDetails(dikeRingId, Location1Id, scenarioId); +// var nameValueParameters = scenarioDetails as NameValueParameter[] ?? scenarioDetails.ToArray(); +// Assert.IsTrue(nameValueParameters.Any()); +// Assert.AreEqual("-3.651", nameValueParameters.FirstOrDefault(x => x.ParameterName.Equals("HeadPL3")).ParameterValue); +// +// scenarioDetails = dataPluginImporter.GetScenarioDetails(dikeRingId, Location2Id, scenarioId); +// Assert.AreEqual("-3.632", scenarioDetails.First(x => x.ParameterName.Equals("HeadPL3")).ParameterValue); +// } + } }