Index: DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Maps.Tests/Services/ShapeFileCreatorTest.cs =================================================================== diff -u -r4638 -r6259 --- DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Maps.Tests/Services/ShapeFileCreatorTest.cs (.../ShapeFileCreatorTest.cs) (revision 4638) +++ DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Maps.Tests/Services/ShapeFileCreatorTest.cs (.../ShapeFileCreatorTest.cs) (revision 6259) @@ -30,8 +30,7 @@ [TestFixture] public class ShapeFileCreatorTest { - const string OutputFolder = "ShapeFileTestFiles"; - + private readonly string pathOutputFolder = Path.Combine(Directory.GetCurrentDirectory(), @"ShapeFileTestFiles\"); private FeatureRepository repository; private string fileName; private string shpFile; @@ -54,107 +53,108 @@ } [Test] - [Ignore("Need to fix shape file writing")] - public void CreateFile_RepositoryContainsNotSupportedFeature_Throws() - { - repository.Add(Feature.Create("POLYGON (( 10 10, 10 20, 20 20, 20 15, 10 10))")); - Assert.That(() => ShapeFileCreator.Create(@"", fileName, repository), Throws.InstanceOf().With.Message.EqualTo("The repository contains geometry types which are currently not supported")); - } - - [Test] - [Ignore("Need to fix shape file writing")] public void CreateFile_RepositoryContainsDifferentGeometryTypes_Throws() { repository.Add(Feature.Create("LINESTRING EMPTY")); repository.Add(Feature.Create("POINT(0 0)")); - Assert.That(() => ShapeFileCreator.Create(@"", fileName, repository), Throws.InstanceOf().With.Message.EqualTo("The repository contains different geometry types. Currently only one type per repository is supported ")); + Assert.That(() => ShapeFileCreator.Create(@"", fileName, repository), Throws.InstanceOf().With.Message.EqualTo("Invalid geometry type provided (LineString). Expected: Point.")); } [Test] - [Ignore("Need to fix shape file writing")] public void CreateFile_ValidPathAndRepositoryContainsOneLineString_ShapeFileIsCreated() { repository.Add(Feature.Create("LINESTRING (10 10, 10 20)")); - ShapeFileCreator.Create(OutputFolder, fileName, repository); + ShapeFileCreator.Create(pathOutputFolder, fileName, repository); AssertThatMandatoryFilesExist(); var shapeFile = new ShapeFileLocation(shpFilePath); IFeatureRepository retrievedRepository = FeatureRepository.CreateFromShapeFile(shapeFile); Assert.That(retrievedRepository, Is.Not.Null); - Assert.That(retrievedRepository.Count, Is.EqualTo(1)); - Assert.That(repository.Features.ElementAt(0).Geometry.GeometryType, Is.EqualTo("LineString")); + Assert.Multiple(() => + { + Assert.That(retrievedRepository.Count, Is.EqualTo(1)); + Assert.That(repository.Features.ElementAt(0).Geometry.GeometryType, Is.EqualTo("LineString")); + }); } [Test] - [Ignore("Need to fix shape file writing")] public void CreateFile_ValidPathAndRepositoryContainsOneLineStringAndOneMultiLineString_ShapeFileIsCreated() { repository.Add(Feature.Create("LINESTRING (10 10, 10 20)")); repository.Add(Feature.Create("MULTILINESTRING ((10 10, 20 20, 10 40),(40 40, 30 30, 40 20, 30 10))")); - ShapeFileCreator.Create(OutputFolder, fileName, repository); + ShapeFileCreator.Create(pathOutputFolder, fileName, repository); AssertThatMandatoryFilesExist(); var shapeFile = new ShapeFileLocation(shpFilePath); IFeatureRepository retrievedRepository = FeatureRepository.CreateFromShapeFile(shapeFile); Assert.That(retrievedRepository, Is.Not.Null); - Assert.That(retrievedRepository.Count, Is.EqualTo(2)); - Assert.That(repository.Features.Any(f => f.Geometry.GeometryType == "LineString"), Is.True); - Assert.That(repository.Features.Any(f => f.Geometry.GeometryType == "MultiLineString"), Is.True); + Assert.Multiple(() => + { + Assert.That(retrievedRepository.Count, Is.EqualTo(2)); + Assert.That(repository.Features.Any(f => f.Geometry.GeometryType == "LineString"), Is.True); + Assert.That(repository.Features.Any(f => f.Geometry.GeometryType == "MultiLineString"), Is.True); + }); } [Test] - [Ignore("Need to fix shape file writing")] public void CreateFile_ValidPathAndRepositoryContainsOnePoint_ShapeFileIsCreated() { repository.Add(Feature.Create("POINT(0 0)")); - ShapeFileCreator.Create(OutputFolder, fileName, repository); + ShapeFileCreator.Create(pathOutputFolder, fileName, repository); AssertThatMandatoryFilesExist(); var shapeFile = new ShapeFileLocation(shpFilePath); IFeatureRepository retrievedRepository = FeatureRepository.CreateFromShapeFile(shapeFile); Assert.That(retrievedRepository, Is.Not.Null); - Assert.That(retrievedRepository.Count, Is.EqualTo(1)); - Assert.That(repository.Features.ElementAt(0).Geometry.GeometryType, Is.EqualTo("GeometryPoint")); + Assert.Multiple(() => + { + Assert.That(retrievedRepository.Count, Is.EqualTo(1)); + Assert.That(repository.Features.ElementAt(0).Geometry.GeometryType, Is.EqualTo("Point")); + }); } - /* [Test] - public void CreateFile_ValidPathAndRepositoryContainsMultyPoint_ShapeFileIsCreated() + [Test] + public void CreateFile_ValidPathAndRepositoryContainsMultiPoint_ShapeFileIsCreated() { - //repository.Add(Feature.Create("POINT(0 0)")); repository.Add(Feature.Create("MULTIPOINT (10 40, 40 30, 20 20, 30 10)")); - ShapeFileCreator.Create(OutputFolder, fileName, repository); + ShapeFileCreator.Create(pathOutputFolder, fileName, repository); AssertThatMandatoryFilesExist(); - var shapeFile = new ShapeFile(this.shpFilePath); - var retrievedRepository = FeatureRepository.CreateFromShapeFile(shapeFile); - Assert.IsNotNull(retrievedRepository); - Assert.IsTrue(retrievedRepository.Count == 2); - Assert.IsTrue(repository.Features.Any(f => f.Geometry.GeometryType == GeometryType2.MultiPoint)); - Assert.IsTrue(repository.Features.Any(f => f.Geometry.GeometryType == GeometryType2.GeometryPoint)); - }*/ + var shapeFile = new ShapeFileLocation(shpFilePath); + IFeatureRepository retrievedRepository = FeatureRepository.CreateFromShapeFile(shapeFile); + Assert.That(retrievedRepository, Is.Not.Null); + Assert.Multiple(() => + { + Assert.That(retrievedRepository.Count, Is.EqualTo(1)); + Assert.That(repository.Features.ElementAt(0).Geometry.GeometryType, Is.EqualTo("MultiPoint")); + }); + } private void AssertThatMandatoryFilesExist() { - Assert.That(File.Exists(shpFilePath), Is.True, $"{shpFile} does not exist"); - Assert.That(File.Exists(dbfFilePath), Is.True, $"{dbfFile} does not exist"); - Assert.That(File.Exists(shxFilePath), Is.True, $"{shxFile} does not exist"); + Assert.Multiple(() => + { + Assert.That(File.Exists(shpFilePath), Is.True, $"{shpFile} does not exist"); + Assert.That(File.Exists(dbfFilePath), Is.True, $"{dbfFile} does not exist"); + Assert.That(File.Exists(shxFilePath), Is.True, $"{shxFile} does not exist"); + }); } #region Setup [SetUp] public void FixtureSetup() { - if (Directory.Exists(OutputFolder)) + if (Directory.Exists(pathOutputFolder)) { - //Directory.Delete(OutputFolder, true); // TODO: Disabled to prevent files from being deleted in test data dir (although copied there for other tests) + Directory.Delete(pathOutputFolder, true); } - Directory.CreateDirectory(OutputFolder); + Directory.CreateDirectory(pathOutputFolder); } [TearDown] @@ -168,9 +168,9 @@ dbfFile = fileName + ".dbf"; shxFile = fileName + ".shx"; - shpFilePath = Path.Combine(OutputFolder, shpFile); - shxFilePath = Path.Combine(OutputFolder, shxFile); - dbfFilePath = Path.Combine(OutputFolder, dbfFile); + shpFilePath = Path.Combine(pathOutputFolder, shpFile); + shxFilePath = Path.Combine(pathOutputFolder, shxFile); + dbfFilePath = Path.Combine(pathOutputFolder, dbfFile); if (File.Exists(shpFilePath)) { Index: DamClients/DamUI/trunk/src/Dam/Deltares.Dam.Tests/IO/ShapeFileExporterTest.cs =================================================================== diff -u -r4638 -r6259 --- DamClients/DamUI/trunk/src/Dam/Deltares.Dam.Tests/IO/ShapeFileExporterTest.cs (.../ShapeFileExporterTest.cs) (revision 4638) +++ DamClients/DamUI/trunk/src/Dam/Deltares.Dam.Tests/IO/ShapeFileExporterTest.cs (.../ShapeFileExporterTest.cs) (revision 6259) @@ -32,8 +32,7 @@ public class ShapeFileExporterTest { [Test] - [Ignore("ShapeFile writing bug needs to be solved to make this test succeed")] - public void Export_UsingValidDataAndPreCondionsAreMet_FilesAreWrittenAnCanBeRead() + public void Export_UsingValidDataAndPreConditionsAreMet_FilesAreWrittenAnCanBeRead() { const string name = "SafetyFactor"; const string path = "."; Index: DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Maps/ShapeFileCreator.cs =================================================================== diff -u -r4813 -r6259 --- DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Maps/ShapeFileCreator.cs (.../ShapeFileCreator.cs) (revision 4813) +++ DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Maps/ShapeFileCreator.cs (.../ShapeFileCreator.cs) (revision 6259) @@ -70,7 +70,7 @@ } path = string.IsNullOrEmpty(path) || path.Trim() == "" || path.Trim() == "." - ? Directory.GetCurrentDirectory() + ? Directory.GetCurrentDirectory() + Path.DirectorySeparatorChar : path; if (!Directory.Exists(path))