// Copyright (C) Stichting Deltares 2017. 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; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using Core.Common.TestUtil; using NUnit.Framework; using Ringtoets.Common.Service.ValidationRules; using Ringtoets.StabilityPointStructures.Data; namespace Ringtoets.StabilityPointStructures.Service.Test { [TestFixture] public class StabilityPointStructuresValidationRulesRegistryTest { [Test] public void Constructor_ExpectedValues() { // Call var registry = new StabilityPointStructuresValidationRulesRegistry(); // Assert Assert.IsInstanceOf>(registry); } [Test] public void GetValidationRules_InputNull_ThrowsArgumentNullException() { // Setup var registry = new StabilityPointStructuresValidationRulesRegistry(); // Call TestDelegate test = () => registry.GetValidationRules(null); // Assert var exception = Assert.Throws(test); Assert.AreEqual("input", exception.ParamName); } [Test] public void GetValidationRules_InvalidInflowModelType_ThrowsInvalidEnumArgumentException() { // Setup var registry = new StabilityPointStructuresValidationRulesRegistry(); // Call TestDelegate test = () => registry.GetValidationRules(new StabilityPointStructuresInput { InflowModelType = (StabilityPointStructureInflowModelType) 99 }); // Assert const string message = "The value of argument 'input' (99) is invalid for Enum type 'StabilityPointStructureInflowModelType'."; TestHelper.AssertThrowsArgumentExceptionAndTestMessage(test, message); } [Test] [TestCase(StabilityPointStructureInflowModelType.LowSill)] [TestCase(StabilityPointStructureInflowModelType.FloodedCulvert)] public void GetValidationRules_InvalidLoadSchematizationType_ThrowsInvalidEnumArgumentException(StabilityPointStructureInflowModelType inflowModelType) { // Setup var registry = new StabilityPointStructuresValidationRulesRegistry(); // Call TestDelegate test = () => registry.GetValidationRules(new StabilityPointStructuresInput { InflowModelType = inflowModelType, LoadSchematizationType = (LoadSchematizationType) 99 }); // Assert const string message = "Er is geen belastingschematisering geselecteerd."; TestHelper.AssertThrowsArgumentExceptionAndTestMessage(test, message); } [Test] [TestCase(LoadSchematizationType.Linear)] [TestCase(LoadSchematizationType.Quadratic)] public void GetValidationRules_InflowModelTypeLowSill_ReturnValidationRules(LoadSchematizationType loadSchematizationType) { // Setup var registry = new StabilityPointStructuresValidationRulesRegistry(); // Call IEnumerable rules = registry.GetValidationRules(new StabilityPointStructuresInput { InflowModelType = StabilityPointStructureInflowModelType.LowSill, LoadSchematizationType = loadSchematizationType }); // Assert ValidationRule[] validationRules = rules.ToArray(); Assert.AreEqual(24, validationRules.Length); Assert.IsInstanceOf(validationRules[0]); Assert.IsInstanceOf(validationRules[1]); Assert.IsInstanceOf(validationRules[2]); Assert.IsInstanceOf(validationRules[3]); Assert.IsInstanceOf(validationRules[4]); Assert.IsInstanceOf(validationRules[5]); Assert.IsInstanceOf(validationRules[6]); Assert.IsInstanceOf(validationRules[7]); Assert.IsInstanceOf(validationRules[8]); Assert.IsInstanceOf(validationRules[9]); Assert.IsInstanceOf(validationRules[10]); Assert.IsInstanceOf(validationRules[11]); Assert.IsInstanceOf(validationRules[12]); Assert.IsInstanceOf(validationRules[13]); Assert.IsInstanceOf(validationRules[14]); Assert.IsInstanceOf(validationRules[15]); Assert.IsInstanceOf(validationRules[16]); Assert.IsInstanceOf(validationRules[17]); Assert.IsInstanceOf(validationRules[18]); Assert.IsInstanceOf(validationRules[19]); Assert.IsInstanceOf(validationRules[20]); Assert.IsInstanceOf(validationRules[21]); Assert.IsInstanceOf(validationRules[22]); Assert.IsInstanceOf(validationRules[23]); } [Test] [TestCase(LoadSchematizationType.Linear)] [TestCase(LoadSchematizationType.Quadratic)] public void GetValidationRules_InflowModelTypeFloodedCulvert_ReturnValidationRules(LoadSchematizationType loadSchematizationType) { // Setup var registry = new StabilityPointStructuresValidationRulesRegistry(); // Call IEnumerable rules = registry.GetValidationRules(new StabilityPointStructuresInput { InflowModelType = StabilityPointStructureInflowModelType.FloodedCulvert, LoadSchematizationType = loadSchematizationType }); // Assert ValidationRule[] validationRules = rules.ToArray(); Assert.AreEqual(24, validationRules.Length); Assert.IsInstanceOf(validationRules[0]); Assert.IsInstanceOf(validationRules[1]); Assert.IsInstanceOf(validationRules[2]); Assert.IsInstanceOf(validationRules[3]); Assert.IsInstanceOf(validationRules[4]); Assert.IsInstanceOf(validationRules[5]); Assert.IsInstanceOf(validationRules[6]); Assert.IsInstanceOf(validationRules[7]); Assert.IsInstanceOf(validationRules[8]); Assert.IsInstanceOf(validationRules[9]); Assert.IsInstanceOf(validationRules[10]); Assert.IsInstanceOf(validationRules[11]); Assert.IsInstanceOf(validationRules[12]); Assert.IsInstanceOf(validationRules[13]); Assert.IsInstanceOf(validationRules[14]); Assert.IsInstanceOf(validationRules[15]); Assert.IsInstanceOf(validationRules[16]); Assert.IsInstanceOf(validationRules[17]); Assert.IsInstanceOf(validationRules[18]); Assert.IsInstanceOf(validationRules[19]); Assert.IsInstanceOf(validationRules[20]); Assert.IsInstanceOf(validationRules[21]); Assert.IsInstanceOf(validationRules[22]); Assert.IsInstanceOf(validationRules[23]); } } }