public void Calculate_WithCustomParserThrowingHydraRingFileParserException_HydraRingCalculationExceptionThrown() { // Setup var parseException = new HydraRingFileParserException("message", new Exception()); var parser = new TestParser(parseException); var calculator = new TestHydraRingCalculator(HydraRingCalculationSettingsTestFactory.CreateSettings(), parser); // Call void Call() => calculator.PublicCalculate(new TestHydraRingCalculationInput()); // Assert var exception = Assert.Throws <HydraRingCalculationException>(Call); Assert.AreEqual(parseException.Message, exception.Message); Assert.AreSame(parseException.InnerException, exception.InnerException); }
public void Calculate_ValidDesignWaterLevelCalculationThrowsException_ThrowsHydraRingFileParserException() { // Setup const string locationName = "locationName"; var expectedException = new HydraRingFileParserException(); var mockRepository = new MockRepository(); var calculator = mockRepository.Stub <IDesignWaterLevelCalculator>(); calculator.Expect(c => c.Calculate(Arg <AssessmentLevelCalculationInput> .Is.TypeOf)) .Throw(expectedException); calculator.Stub(c => c.LastErrorFileContent).Return(string.Empty); calculator.Stub(c => c.OutputDirectory).Return(string.Empty); var calculatorFactory = mockRepository.StrictMock <IHydraRingCalculatorFactory>(); calculatorFactory.Expect(cf => cf.CreateDesignWaterLevelCalculator(null)) .IgnoreArguments() .Return(calculator); var calculationMessageProvider = mockRepository.Stub <ICalculationMessageProvider>(); calculationMessageProvider.Stub(mp => mp.GetCalculatedNotConvergedMessage(locationName)).Return(string.Empty); mockRepository.ReplayAll(); var hydraulicBoundaryLocationCalculation = new HydraulicBoundaryLocationCalculation(new TestHydraulicBoundaryLocation(locationName)); using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) { // Call TestDelegate call = () => new DesignWaterLevelCalculationService().Calculate(hydraulicBoundaryLocationCalculation, CreateCalculationSettings(), 1.0 / 30, calculationMessageProvider); // Assert var thrownException = Assert.Throws <HydraRingFileParserException>(call); Assert.AreSame(expectedException, thrownException); } mockRepository.VerifyAll(); }