コード例 #1
0
        public void Validate_KernelReturnsValidationResults_ReturnsEnumerableWithOnlyErrorsAndWarnings()
        {
            // Setup
            using (new MacroStabilityInwardsKernelFactoryConfig())
            {
                var factory = (TestMacroStabilityInwardsKernelFactory)MacroStabilityInwardsKernelWrapperFactory.Instance;
                WaternetKernelStub waternetKernel = factory.LastCreatedWaternetExtremeKernel;
                waternetKernel.ReturnValidationResults = true;

                WaternetCalculatorInput input = WaternetCalculatorInputTestFactory.CreateValidCalculatorInput();
                var calculator = new TestWaternetCalculator(input, factory);

                // Call
                IEnumerable <MacroStabilityInwardsKernelMessage> kernelMessages = calculator.Validate();

                // Assert
                Assert.AreEqual(2, kernelMessages.Count());
                MacroStabilityInwardsKernelMessage firstMessage = kernelMessages.ElementAt(0);
                Assert.AreEqual("Validation Warning", firstMessage.Message);
                Assert.AreEqual(MacroStabilityInwardsKernelMessageType.Warning, firstMessage.Type);
                MacroStabilityInwardsKernelMessage secondMessage = kernelMessages.ElementAt(1);
                Assert.AreEqual("Validation Error", secondMessage.Message);
                Assert.AreEqual(MacroStabilityInwardsKernelMessageType.Error, secondMessage.Type);
            }
        }
コード例 #2
0
        public void Calculate_KernelWithCompleteOutput_OutputCorrectlyReturnedByCalculator()
        {
            // Setup
            WaternetCalculatorInput input = WaternetCalculatorInputTestFactory.CreateValidCalculatorInput();

            using (new MacroStabilityInwardsKernelFactoryConfig())
            {
                var factory = (TestMacroStabilityInwardsKernelFactory)MacroStabilityInwardsKernelWrapperFactory.Instance;
                WaternetKernelStub kernel = factory.LastCreatedWaternetExtremeKernel;
                SetCompleteKernelOutput(kernel);

                // Call
                WaternetCalculatorResult result = new TestWaternetCalculator(input, factory).Calculate();

                // Assert
                Assert.IsNotNull(result);
                var expectedPhreaticLines = new List <HeadLine>
                {
                    kernel.Waternet.PhreaticLine
                };
                expectedPhreaticLines.AddRange(kernel.Waternet.HeadLines);

                WaternetCalculatorOutputAssert.AssertPhreaticLines(expectedPhreaticLines.ToArray(), result.PhreaticLines.ToArray());
                WaternetCalculatorOutputAssert.AssertReferenceLines(kernel.Waternet.ReferenceLines.ToArray(), result.WaternetLines.ToArray());
            }
        }
コード例 #3
0
        public void Constructor_ExpectedValues()
        {
            // Setup
            var mocks   = new MockRepository();
            var factory = mocks.Stub <IMacroStabilityInwardsKernelFactory>();

            mocks.ReplayAll();

            WaternetCalculatorInput input = WaternetCalculatorInputTestFactory.CreateValidCalculatorInput();

            // Call
            var calculator = new TestWaternetCalculator(input, factory);

            // Assert
            Assert.IsInstanceOf <IWaternetCalculator>(calculator);
            mocks.VerifyAll();
        }
コード例 #4
0
        public void Validate_CalculatorWithValidInput_ReturnEmptyEnumerable()
        {
            // Setup
            using (new MacroStabilityInwardsKernelFactoryConfig())
            {
                var factory = (TestMacroStabilityInwardsKernelFactory)MacroStabilityInwardsKernelWrapperFactory.Instance;

                WaternetCalculatorInput input = WaternetCalculatorInputTestFactory.CreateValidCalculatorInput();
                var calculator = new TestWaternetCalculator(input, factory);

                // Call
                IEnumerable <MacroStabilityInwardsKernelMessage> kernelMessages = calculator.Validate();

                // Assert
                CollectionAssert.IsEmpty(kernelMessages);
            }
        }
コード例 #5
0
        public void Validate_CalculatorWithValidInput_KernelValidateMethodCalled()
        {
            // Setup
            using (new MacroStabilityInwardsKernelFactoryConfig())
            {
                var factory = (TestMacroStabilityInwardsKernelFactory)MacroStabilityInwardsKernelWrapperFactory.Instance;

                WaternetCalculatorInput input = WaternetCalculatorInputTestFactory.CreateValidCalculatorInput();
                var calculator = new TestWaternetCalculator(input, factory);

                // Call
                calculator.Validate();

                // Assert
                Assert.IsTrue(factory.LastCreatedWaternetExtremeKernel.Validated);
            }
        }
コード例 #6
0
        public void Validate_KernelThrowsWaternetKernelWrapperException_ThrowWaternetCalculatorException()
        {
            // Setup
            using (new MacroStabilityInwardsKernelFactoryConfig())
            {
                var factory = (TestMacroStabilityInwardsKernelFactory)MacroStabilityInwardsKernelWrapperFactory.Instance;
                WaternetKernelStub waternetKernel = factory.LastCreatedWaternetExtremeKernel;
                waternetKernel.ThrowExceptionOnValidate = true;

                WaternetCalculatorInput input = WaternetCalculatorInputTestFactory.CreateValidCalculatorInput();
                var calculator = new TestWaternetCalculator(input, factory);

                // Call
                void Call() => calculator.Validate();

                // Assert
                var exception = Assert.Throws <WaternetCalculatorException>(Call);
                Assert.IsInstanceOf <WaternetKernelWrapperException>(exception.InnerException);
                Assert.AreEqual(exception.InnerException.Message, exception.Message);
            }
        }