// Copyright (C) Stichting Deltares 2016. All rights reserved. // // This file is part of Ringtoets. // // Ringtoets is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // All names, logos, and references to "Deltares" are registered trademarks of // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. using System.Collections.Generic; using System.Linq; using Core.Components.Gis.Data; using Core.Components.Gis.Features; using Core.Components.Gis.Geometries; using NUnit.Framework; using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.HydraRing.Data; namespace Ringtoets.Common.Forms.TestUtil { /// /// Class that can be used to test properties of a . /// public static class MapDataTestHelper { /// /// Asserts whether the contains the data that is representative for the . /// /// The sections that contains the original data. /// The that needs to be asserted. /// Thrown when: /// /// is not . /// The number of sections and features in are not the same. /// The points of a section and the geometry of a feature are not the same. /// The name of the is not "Vakindeling". /// public static void AssertFailureMechanismSectionsMapData(IEnumerable sections, MapData mapData) { Assert.IsInstanceOf(mapData); MapLineData sectionsMapLinesData = (MapLineData) mapData; MapFeature[] sectionMapLinesFeatures = sectionsMapLinesData.Features.ToArray(); FailureMechanismSection[] sectionsArray = sections.ToArray(); Assert.AreEqual(sectionsArray.Length, sectionMapLinesFeatures.Length); for (int index = 0; index < sectionsArray.Length; index++) { MapGeometry geometry = sectionMapLinesFeatures[index].MapGeometries.First(); FailureMechanismSection failureMechanismSection = sectionsArray[index]; CollectionAssert.AreEquivalent(failureMechanismSection.Points, geometry.PointCollections.First()); } Assert.AreEqual("Vakindeling", mapData.Name); } /// /// Asserts whether the contains the data that is representative for the /// /// The that contains the original data. /// The that needs to be asserted. /// Thrown when: /// /// is not . /// The number of and features /// in are not the same. /// The points of a location and the geometry of a feature are not the same. /// The name of the is not "Hydraulische randvoorwaarden". /// public static void AssertHydraulicBoundaryLocationsMapData(HydraulicBoundaryDatabase database, MapData mapData) { Assert.IsInstanceOf(mapData); MapPointData hydraulicLocationsMapData = (MapPointData)mapData; if (database == null) { CollectionAssert.IsEmpty(hydraulicLocationsMapData.Features); } else { Assert.AreEqual(database.Locations.Count, hydraulicLocationsMapData.Features.Length); CollectionAssert.AreEqual(database.Locations.Select(hrp => hrp.Location), hydraulicLocationsMapData.Features.SelectMany(f => f.MapGeometries.First().PointCollections.First())); } Assert.AreEqual("Hydraulische randvoorwaarden", mapData.Name); } } }