public void SetCharacteristicPoints_DikeToesReversed_ThrowsImportedDataTransformException()
        {
            // Setup
            const string name   = "Reversed dike toes";
            var          points = new CharacteristicPoints(name)
            {
                DikeToeAtPolder       = new Point3D(3, 2, 5),
                DikeToeAtRiver        = new Point3D(3.4, 3, 8),
                DitchDikeSide         = new Point3D(4.4, 6, 8),
                BottomDitchDikeSide   = new Point3D(5.1, 6, 6.5),
                BottomDitchPolderSide = new Point3D(8.5, 7.2, 4.2),
                DitchPolderSide       = new Point3D(9.6, 7.5, 3.9)
            };
            var surfaceLine = new PipingSurfaceLine(string.Empty);

            surfaceLine.SetGeometry(CharacteristicPointsToGeometry(points));

            // Call
            TestDelegate test = () => surfaceLine.SetCharacteristicPoints(points);

            // Assert
            var exception = Assert.Throws <ImportedDataTransformException>(test);

            Assert.AreEqual($"Het uittredepunt moet landwaarts van het intredepunt liggen voor locatie '{name}'.", exception.Message);
        }
        public void SetCharacteristicPoints_CharacteristicPointsNull_NoCharacteristicPointsSet()
        {
            // Setup
            var surfaceLine = new PipingSurfaceLine(string.Empty);

            surfaceLine.SetGeometry(new[]
            {
                new Point3D(3, 2, 5),
                new Point3D(3.4, 3, 8),
                new Point3D(4.4, 6, 8),
                new Point3D(5.1, 6, 6.5),
                new Point3D(8.5, 7.2, 4.2),
                new Point3D(9.6, 7.5, 3.9)
            });

            // Call
            surfaceLine.SetCharacteristicPoints(null);

            // Assert
            Assert.IsNull(surfaceLine.DikeToeAtRiver);
            Assert.IsNull(surfaceLine.DikeToeAtPolder);
            Assert.IsNull(surfaceLine.DitchDikeSide);
            Assert.IsNull(surfaceLine.BottomDitchDikeSide);
            Assert.IsNull(surfaceLine.BottomDitchPolderSide);
            Assert.IsNull(surfaceLine.DitchPolderSide);
        }
        public void SetCharacteristicPoints_ValidSituations_PointsAreSet(CharacteristicPoints points)
        {
            // Setup
            var surfaceLine = new PipingSurfaceLine(string.Empty);

            surfaceLine.SetGeometry(CharacteristicPointsToGeometry(points));

            // Call
            surfaceLine.SetCharacteristicPoints(points);

            // Assert
            Assert.AreEqual(points.DikeToeAtRiver, surfaceLine.DikeToeAtRiver);
            Assert.AreEqual(points.DikeToeAtPolder, surfaceLine.DikeToeAtPolder);
            Assert.AreEqual(points.DitchDikeSide, surfaceLine.DitchDikeSide);
            Assert.AreEqual(points.BottomDitchDikeSide, surfaceLine.BottomDitchDikeSide);
            Assert.AreEqual(points.BottomDitchPolderSide, surfaceLine.BottomDitchPolderSide);
            Assert.AreEqual(points.DitchPolderSide, surfaceLine.DitchPolderSide);
        }