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); } }
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()); } }
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(); }
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); } }
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); } }
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); } }