Ejemplo n.º 1
0
        public void ReadReferenceLine_NoFilePath_ThrowArgumentException(string invalidFilePath)
        {
            // Setup
            var reader = new ReferenceLineReader();

            // Call
            TestDelegate call = () => reader.ReadReferenceLine(invalidFilePath);

            // Assert
            string expectedMessage = $"Fout bij het lezen van bestand '{invalidFilePath}': bestandspad mag niet leeg of ongedefinieerd zijn.";

            TestHelper.AssertThrowsArgumentExceptionAndTestMessage <ArgumentException>(call, expectedMessage);
        }
Ejemplo n.º 2
0
        public void ReadReferenceLine_FilePathIsActuallyDirectoryPath_ThrowArgumentException()
        {
            // Setup
            string invalidFilePath = TestHelper.GetTestDataPath(TestDataPath.Riskeer.Common.IO,
                                                                Path.DirectorySeparatorChar.ToString());

            var reader = new ReferenceLineReader();

            // Call
            TestDelegate call = () => reader.ReadReferenceLine(invalidFilePath);

            // Assert
            string expectedMessage = $"Fout bij het lezen van bestand '{invalidFilePath}': bestandspad mag niet verwijzen naar een lege bestandsnaam.";

            TestHelper.AssertThrowsArgumentExceptionAndTestMessage <ArgumentException>(call, expectedMessage);
        }
Ejemplo n.º 3
0
        public void ReadReferenceLine_ShapefileDoesNotHaveSinglePolyline_ThrowCriticalFileReadException(string shapeFileName)
        {
            // Setup
            string invalidFilePath = TestHelper.GetTestDataPath(TestDataPath.Core.Components.Gis.IO,
                                                                shapeFileName);

            var reader = new ReferenceLineReader();

            // Call
            TestDelegate call = () => reader.ReadReferenceLine(invalidFilePath);

            // Assert
            string expectedMessage = $"Fout bij het lezen van bestand '{invalidFilePath}': het bestand moet exact één gehele polylijn bevatten.";
            string message         = Assert.Throws <CriticalFileReadException>(call).Message;

            Assert.AreEqual(expectedMessage, message);
        }
Ejemplo n.º 4
0
        public void ReadReferenceLine_ShapefileContainsOtherThanPolyline_ThrowCriticalFileReadException(string shapeFileName)
        {
            // Setup
            string invalidFilePath = TestHelper.GetTestDataPath(TestDataPath.Core.Components.Gis.IO,
                                                                shapeFileName);

            var reader = new ReferenceLineReader();

            // Call
            TestDelegate call = () => reader.ReadReferenceLine(invalidFilePath);

            // Assert
            string expectedMessage = $"Fout bij het lezen van bestand '{invalidFilePath}': kon geen lijnen vinden in dit bestand.";
            string message         = Assert.Throws <CriticalFileReadException>(call).Message;

            Assert.AreEqual(expectedMessage, message);
        }
Ejemplo n.º 5
0
        public void ReadReferenceLine_ShapefileDoesntExist_ThrowCriticalFileReadException()
        {
            // Setup
            string invalidFilePath = TestHelper.GetTestDataPath(TestDataPath.Riskeer.Common.IO,
                                                                "I_do_not_exist.shp");

            var reader = new ReferenceLineReader();

            // Call
            TestDelegate call = () => reader.ReadReferenceLine(invalidFilePath);

            // Assert
            string expectedMessage = $"Fout bij het lezen van bestand '{invalidFilePath}': het bestand bestaat niet.";
            string message         = Assert.Throws <CriticalFileReadException>(call).Message;

            Assert.AreEqual(expectedMessage, message);
        }
Ejemplo n.º 6
0
        public void ReadReferenceLine_FileHasOneValidLineInShape_ReturnReferenceLine()
        {
            // Setup
            string validReferenceLineShapeFile = TestHelper.GetTestDataPath(TestDataPath.Riskeer.Common.IO,
                                                                            Path.Combine("ReferenceLine", "traject_10-2.shp"));
            var reader = new ReferenceLineReader();

            // Call
            ReferenceLine referenceLine = reader.ReadReferenceLine(validReferenceLineShapeFile);

            // Assert
            Point2D[] point2Ds = referenceLine.Points.ToArray();
            Assert.AreEqual(803, point2Ds.Length);
            Assert.AreEqual(193527.156, point2Ds[465].X, 1e-6);
            Assert.AreEqual(511438.281, point2Ds[465].Y, 1e-6);
            Assert.AreEqual(191144.375, point2Ds[800].X, 1e-6);
            Assert.AreEqual(508840.469, point2Ds[800].Y, 1e-6);
        }
Ejemplo n.º 7
0
        public void ReadReferenceLine_ShapefileHasSingleMultiPolyline_ThrowCriticalFileReadException()
        {
            // Setup
            string invalidFilePath = TestHelper.GetTestDataPath(TestDataPath.Core.Components.Gis.IO,
                                                                "Single_Multi-PolyLine_with_ID.shp");

            var reader = new ReferenceLineReader();

            // Call
            TestDelegate call = () => reader.ReadReferenceLine(invalidFilePath);

            // Assert
            string expectedMessage = $"Fout bij het lezen van bestand '{invalidFilePath}': het bestand bevat een multi-polylijn. " +
                                     "Multi-polylijnen worden niet ondersteund.";
            string message = Assert.Throws <CriticalFileReadException>(call).Message;

            Assert.AreEqual(expectedMessage, message);
        }
Ejemplo n.º 8
0
        public void ReadReferenceLine_FilePathHasInvalidPathCharacter_ThrowArgumentException()
        {
            // Setup
            char[] invalidPathChars = Path.GetInvalidPathChars();

            string validFilePath = TestHelper.GetTestDataPath(TestDataPath.Riskeer.Common.IO,
                                                              "traject_10-1.shp");
            string invalidFilePath = validFilePath.Replace("_", invalidPathChars[3].ToString());

            var reader = new ReferenceLineReader();

            // Call
            TestDelegate call = () => reader.ReadReferenceLine(invalidFilePath);

            // Assert
            string expectedMessage = $"Fout bij het lezen van bestand '{invalidFilePath}': "
                                     + "er zitten ongeldige tekens in het bestandspad. Alle tekens in het bestandspad moeten geldig zijn.";

            TestHelper.AssertThrowsArgumentExceptionAndTestMessage <ArgumentException>(call, expectedMessage);
        }
Ejemplo n.º 9
0
        public void ReadReferenceLine_FileInUse_ThrowCriticalFileReadException()
        {
            // Setup
            var    reader = new ReferenceLineReader();
            string path   = TestHelper.GetScratchPadPath(nameof(ReadReferenceLine_FileInUse_ThrowCriticalFileReadException));

            using (var fileDisposeHelper = new FileDisposeHelper(path))
            {
                fileDisposeHelper.LockFiles();

                // Call
                TestDelegate call = () => reader.ReadReferenceLine(path);

                // Assert
                string expectedMessage = $"Fout bij het lezen van bestand '{path}': het bestand kon niet worden geopend. Mogelijk is het bestand corrupt of in gebruik door een andere applicatie.";
                var    exception       = Assert.Throws <CriticalFileReadException>(call);
                Assert.AreEqual(expectedMessage, exception.Message);
                Assert.IsInstanceOf <IOException>(exception.InnerException);
            }
        }