public void Read_ValidEntityWithUnreadDikeProfileEntity_ReturnCalculationWithNewDikeProfile() { // Setup var dikeProfileEntity = new DikeProfileEntity { Id = "a", DikeGeometryXml = new RoughnessPointCollectionXmlSerializer().ToXml(new RoughnessPoint[0]), ForeshoreXml = new Point2DCollectionXmlSerializer().ToXml(new Point2D[0]) }; var entity = new GrassCoverErosionInwardsCalculationEntity { DikeProfileEntity = dikeProfileEntity, ScenarioContribution = 0, DikeHeightTargetProbability = 0.01, OvertoppingRateTargetProbability = 0.02 }; var collector = new ReadConversionCollector(); // Call GrassCoverErosionInwardsCalculationScenario calculation = entity.Read(collector); // Assert Assert.IsNotNull(calculation.InputParameters.DikeProfile); Assert.IsTrue(collector.Contains(dikeProfileEntity)); }
public void Read_ReadConversionCollectorNull_ThrowArgumentNullException() { // Setup var entity = new GrassCoverErosionInwardsCalculationEntity(); // Call void Call() => entity.Read(null); // Assert var exception = Assert.Throws <ArgumentNullException>(Call); Assert.AreEqual("collector", exception.ParamName); }
public void Read_ValidEntityWithUnreadHydraulicLocationEntity_ReturnCalculationWithNewHydraulicBoundaryLocation() { // Setup HydraulicLocationEntity hydraulicLocationEntity = HydraulicLocationEntityTestFactory.CreateHydraulicLocationEntity(); var entity = new GrassCoverErosionInwardsCalculationEntity { HydraulicLocationEntity = hydraulicLocationEntity, ScenarioContribution = 0, DikeHeightTargetProbability = 0.01, OvertoppingRateTargetProbability = 0.02 }; var collector = new ReadConversionCollector(); // Call GrassCoverErosionInwardsCalculationScenario calculation = entity.Read(collector); // Assert Assert.IsNotNull(calculation.InputParameters.HydraulicBoundaryLocation); Assert.IsTrue(collector.Contains(hydraulicLocationEntity)); }
public void Read_ValidEntityWithOutputEntity_ReturnCalculationWithOutput() { // Setup var entity = new GrassCoverErosionInwardsCalculationEntity { GrassCoverErosionInwardsOutputEntities = { new GrassCoverErosionInwardsOutputEntity() }, ScenarioContribution = 0, DikeHeightTargetProbability = 0.01, OvertoppingRateTargetProbability = 0.02 }; var collector = new ReadConversionCollector(); // Call GrassCoverErosionInwardsCalculationScenario calculation = entity.Read(collector); // Assert Assert.IsTrue(calculation.HasOutput); }
public void Read_EntityWithNullValues_ReturnCalculationWithNaNOrNull() { // Setup var entity = new GrassCoverErosionInwardsCalculationEntity { Name = null, ScenarioContribution = 0, Comments = null, Orientation = null, CriticalFlowRateMean = null, CriticalFlowRateStandardDeviation = null, DikeHeight = null, BreakWaterHeight = null, DikeHeightTargetProbability = 0.01, OvertoppingRateTargetProbability = 0.02 }; var collector = new ReadConversionCollector(); // Call GrassCoverErosionInwardsCalculationScenario calculation = entity.Read(collector); // Assert Assert.IsNull(calculation.Name); Assert.IsNull(calculation.Comments.Body); GrassCoverErosionInwardsInput input = calculation.InputParameters; Assert.IsNaN(input.Orientation); Assert.IsNaN(input.CriticalFlowRate.Mean); Assert.IsNaN(input.CriticalFlowRate.StandardDeviation); Assert.IsNaN(input.DikeHeight); Assert.IsNaN(input.BreakWater.Height.Value); Assert.IsNull(input.DikeProfile); Assert.IsNull(input.HydraulicBoundaryLocation); Assert.IsFalse(calculation.HasOutput); }
public void Read_ValidEntityWithAlreadyReadHydraulicLocationEntity_ReturnCalculationWithReadHydraulicBoundaryLocation() { // Setup var hydraulicBoundaryLocation = new HydraulicBoundaryLocation(1, "A", 0, 0); var hydraulicLocationEntity = new HydraulicLocationEntity(); var entity = new GrassCoverErosionInwardsCalculationEntity { HydraulicLocationEntity = hydraulicLocationEntity, ScenarioContribution = 0, DikeHeightTargetProbability = 0.01, OvertoppingRateTargetProbability = 0.02 }; var collector = new ReadConversionCollector(); collector.Read(hydraulicLocationEntity, hydraulicBoundaryLocation); // Call GrassCoverErosionInwardsCalculationScenario calculation = entity.Read(collector); // Assert Assert.AreSame(hydraulicBoundaryLocation, calculation.InputParameters.HydraulicBoundaryLocation); }
public void Read_ValidEntityWithAlreadyReadDikeProfileEntity_ReturnCalculationWithReadDikeProfile() { // Setup DikeProfile dikeProfile = DikeProfileTestFactory.CreateDikeProfile(); var dikeProfileEntity = new DikeProfileEntity(); var entity = new GrassCoverErosionInwardsCalculationEntity { DikeProfileEntity = dikeProfileEntity, ScenarioContribution = 0, DikeHeightTargetProbability = 0.01, OvertoppingRateTargetProbability = 0.02 }; var collector = new ReadConversionCollector(); collector.Read(dikeProfileEntity, dikeProfile); // Call GrassCoverErosionInwardsCalculationScenario calculation = entity.Read(collector); // Assert Assert.AreSame(dikeProfile, calculation.InputParameters.DikeProfile); }
public void Read_ValidEntity_ReturnCalculation() { // Setup var random = new Random(14); var breakWaterType = random.NextEnumValue <BreakWaterType>(); var entity = new GrassCoverErosionInwardsCalculationEntity { Name = "sodhfksn", Comments = "s;ohfgwjo5p09u", HydraulicLocationEntity = null, DikeProfileEntity = null, Orientation = 5.6, CriticalFlowRateMean = 3.4, CriticalFlowRateStandardDeviation = 1.2, UseForeshore = Convert.ToByte(random.NextBoolean()), DikeHeight = 2.3, UseBreakWater = Convert.ToByte(random.NextBoolean()), BreakWaterType = Convert.ToByte(breakWaterType), BreakWaterHeight = 5.7, ShouldOvertoppingOutputIllustrationPointsBeCalculated = Convert.ToByte(random.NextBoolean()), ShouldDikeHeightBeCalculated = Convert.ToByte(random.NextBoolean()), DikeHeightTargetProbability = 0.01, ShouldDikeHeightIllustrationPointsBeCalculated = Convert.ToByte(random.NextBoolean()), ShouldOvertoppingRateBeCalculated = Convert.ToByte(random.NextBoolean()), OvertoppingRateTargetProbability = 0.02, ShouldOvertoppingRateIllustrationPointsBeCalculated = Convert.ToByte(random.NextBoolean()), RelevantForScenario = Convert.ToByte(random.NextBoolean()), ScenarioContribution = 0.45 }; var collector = new ReadConversionCollector(); // Call GrassCoverErosionInwardsCalculationScenario calculation = entity.Read(collector); // Assert Assert.AreEqual(entity.Name, calculation.Name); Assert.AreEqual(entity.Comments, calculation.Comments.Body); AssertBoolean(entity.RelevantForScenario, calculation.IsRelevant); RoundedDoubleTestHelper.AssertRoundedDouble(entity.ScenarioContribution, calculation.Contribution); GrassCoverErosionInwardsInput input = calculation.InputParameters; Assert.AreEqual(entity.Orientation, input.Orientation.Value); Assert.AreEqual(entity.CriticalFlowRateMean, input.CriticalFlowRate.Mean.Value); Assert.AreEqual(entity.CriticalFlowRateStandardDeviation, input.CriticalFlowRate.StandardDeviation.Value); AssertBoolean(entity.UseForeshore, input.UseForeshore); Assert.AreEqual(entity.DikeHeight, input.DikeHeight.Value); AssertBoolean(entity.UseBreakWater, input.UseBreakWater); Assert.AreEqual(breakWaterType, input.BreakWater.Type); Assert.AreEqual(entity.BreakWaterHeight, input.BreakWater.Height.Value); AssertBoolean(entity.ShouldOvertoppingOutputIllustrationPointsBeCalculated, input.ShouldOvertoppingOutputIllustrationPointsBeCalculated); AssertBoolean(entity.ShouldDikeHeightBeCalculated, input.ShouldDikeHeightBeCalculated); Assert.AreEqual(entity.DikeHeightTargetProbability, input.DikeHeightTargetProbability); AssertBoolean(entity.ShouldDikeHeightIllustrationPointsBeCalculated, input.ShouldDikeHeightIllustrationPointsBeCalculated); AssertBoolean(entity.ShouldOvertoppingRateBeCalculated, input.ShouldOvertoppingRateBeCalculated); Assert.AreEqual(entity.OvertoppingRateTargetProbability, input.OvertoppingRateTargetProbability); AssertBoolean(entity.ShouldOvertoppingRateIllustrationPointsBeCalculated, input.ShouldOvertoppingRateIllustrationPointsBeCalculated); Assert.IsNull(input.DikeProfile); Assert.IsNull(input.HydraulicBoundaryLocation); Assert.IsFalse(calculation.HasOutput); }