From fdea3d69b3eb1c4deefc61d8211d71eeaa11df31 Mon Sep 17 00:00:00 2001 From: Michael Sevestre Date: Fri, 2 Jun 2023 10:38:11 -0400 Subject: [PATCH] Fixes #2025 unhandled exception --- src/OSPSuite.Core/Chart/CurveChart.cs | 2 +- .../Domain/CurveChartSpecs.cs | 10 +++++++++- ...ulationResidualVsTimeChartPresenterSpecs.cs | 18 ++++++++++++++++++ 3 files changed, 28 insertions(+), 2 deletions(-) diff --git a/src/OSPSuite.Core/Chart/CurveChart.cs b/src/OSPSuite.Core/Chart/CurveChart.cs index d9030b0d0..10d8fd4d8 100644 --- a/src/OSPSuite.Core/Chart/CurveChart.cs +++ b/src/OSPSuite.Core/Chart/CurveChart.cs @@ -255,7 +255,7 @@ public void RemoveCurvesForColumn(DataColumn dataColumn) removeCurves(curve => curve.xData == dataColumn || curve.yData == dataColumn); } - public void RemoveCurvesForColumns(IEnumerable dataColumns) => dataColumns.Each(RemoveCurvesForColumn); + public void RemoveCurvesForColumns(IEnumerable dataColumns) => dataColumns?.Each(RemoveCurvesForColumn); public void RemoveCurvesForDataRepository(DataRepository dataRepository) => RemoveCurvesForColumns(dataRepository); diff --git a/tests/OSPSuite.Core.Tests/Domain/CurveChartSpecs.cs b/tests/OSPSuite.Core.Tests/Domain/CurveChartSpecs.cs index 660afc373..1f91b7445 100644 --- a/tests/OSPSuite.Core.Tests/Domain/CurveChartSpecs.cs +++ b/tests/OSPSuite.Core.Tests/Domain/CurveChartSpecs.cs @@ -6,7 +6,6 @@ using OSPSuite.Core.Domain.Data; using OSPSuite.Core.Domain.Services; using OSPSuite.Core.Domain.UnitSystem; -using OSPSuite.Core.Extensions; using OSPSuite.Helpers; namespace OSPSuite.Core.Domain @@ -287,4 +286,13 @@ public void should_also_update_title_and_description() sut.Description.ShouldBeEqualTo(_other.Description); } } + + public class When_removing_a_data_repository_from_a_chart_that_is_null : concern_for_CurveChart + { + [Observation] + public void should_not_crash() + { + sut.RemoveCurvesForDataRepository(null); + } + } } \ No newline at end of file diff --git a/tests/OSPSuite.Presentation.Tests/Presentation/SimulationResidualVsTimeChartPresenterSpecs.cs b/tests/OSPSuite.Presentation.Tests/Presentation/SimulationResidualVsTimeChartPresenterSpecs.cs index 04e412b4e..5dd48fb75 100644 --- a/tests/OSPSuite.Presentation.Tests/Presentation/SimulationResidualVsTimeChartPresenterSpecs.cs +++ b/tests/OSPSuite.Presentation.Tests/Presentation/SimulationResidualVsTimeChartPresenterSpecs.cs @@ -1,6 +1,7 @@ using System.Collections.Generic; using System.Linq; using FakeItEasy; +using NPOI.HPSF; using OSPSuite.BDDHelper; using OSPSuite.BDDHelper.Extensions; using OSPSuite.Core.Chart; @@ -161,4 +162,21 @@ public void should_remove_the_zero_maker_curve_that_was_added_to_the_chart() _residualVsTimeChart.Curves.Count.ShouldBeEqualTo(_residualResults.AllOutputResiduals.Count); } } + + public class When_clearing_the_simulation_residual_vs_time_chart_presenter_that_was_initialized_without_observed_data : concern_for_SimulationResidualVsTimeChartPresenter + { + protected override void Context() + { + base.Context(); + A.CallTo(() => _observedDataRepository.AllObservedDataUsedBy(A._)).Returns(Enumerable.Empty()); + + sut.InitializeAnalysis(_residualVsTimeChart, _simulation); + } + + [Observation] + public void should_not_crash() + { + sut.Clear(); + } + } } \ No newline at end of file