Index: Riskeer/Common/test/Riskeer.Common.IO.Test/FileImporters/FailureMechanismSectionReplaceStrategyTest.cs =================================================================== diff -u -rf4239d5ab72b269c59174ff6119e2c4abcafca81 -r5e923aa85cb018fe1ab29ad2c1df0d381aca4100 --- Riskeer/Common/test/Riskeer.Common.IO.Test/FileImporters/FailureMechanismSectionReplaceStrategyTest.cs (.../FailureMechanismSectionReplaceStrategyTest.cs) (revision f4239d5ab72b269c59174ff6119e2c4abcafca81) +++ Riskeer/Common/test/Riskeer.Common.IO.Test/FileImporters/FailureMechanismSectionReplaceStrategyTest.cs (.../FailureMechanismSectionReplaceStrategyTest.cs) (revision 5e923aa85cb018fe1ab29ad2c1df0d381aca4100) @@ -222,8 +222,8 @@ public void DoPostUpdateActions_Always_ReturnsEmptyCollection() { // Setup - var failureMechanism = new TestFailurePath(); - var failureMechanismSectionReplaceStrategy = new FailureMechanismSectionReplaceStrategy(failureMechanism); + var failurePath = new TestFailurePath(); + var failureMechanismSectionReplaceStrategy = new FailureMechanismSectionReplaceStrategy(failurePath); // Call IEnumerable affectedObjects = failureMechanismSectionReplaceStrategy.DoPostUpdateActions(); Index: Riskeer/Common/test/Riskeer.Common.IO.Test/FileImporters/FailureMechanismSectionsImporterTest.cs =================================================================== diff -u -rd8469c5b44661e4c6da4a03959b7ebd19b313596 -r5e923aa85cb018fe1ab29ad2c1df0d381aca4100 --- Riskeer/Common/test/Riskeer.Common.IO.Test/FileImporters/FailureMechanismSectionsImporterTest.cs (.../FailureMechanismSectionsImporterTest.cs) (revision d8469c5b44661e4c6da4a03959b7ebd19b313596) +++ Riskeer/Common/test/Riskeer.Common.IO.Test/FileImporters/FailureMechanismSectionsImporterTest.cs (.../FailureMechanismSectionsImporterTest.cs) (revision 5e923aa85cb018fe1ab29ad2c1df0d381aca4100) @@ -147,7 +147,7 @@ Assert.AreEqual(sectionsFilePath, invocation.Arguments[1]); }) .Return(Enumerable.Empty()); - ; + var messageProvider = mocks.Stub(); mocks.ReplayAll(); @@ -613,9 +613,12 @@ var updateStrategy = mocks.StrictMock(); updateStrategy.Expect(us => us.UpdateSectionsWithImportedData(null, null)) .IgnoreArguments() - .WhenCalled(invocation => { CollectionAssert.IsNotEmpty((IEnumerable) invocation.Arguments[0]); }) + .WhenCalled(invocation => + { + CollectionAssert.IsNotEmpty((IEnumerable) invocation.Arguments[0]); + }) .Return(Enumerable.Empty()); - ; + var messageProvider = mocks.StrictMock(); messageProvider.Expect(mp => mp.GetAddDataToModelProgressText()).Return(expectedAddDataToModelProgressText); mocks.ReplayAll(); @@ -671,7 +674,7 @@ Assert.AreEqual(sectionsFilePath, invocation.Arguments[1]); }) .Return(Enumerable.Empty()); - ; + var messageProvider = mocks.Stub(); mocks.ReplayAll(); @@ -695,21 +698,29 @@ public void DoPostImport_AfterImport_CallUpdateStrategyAndObserversNotified() { // Setup - var failurePath = new TestFailurePath(); + var updateSectionsWithImportedDataObservable = new TestObservable(); + var doPostUpdateActionsObservable = new TestObservable(); var mocks = new MockRepository(); var updateStrategy = mocks.StrictMock(); updateStrategy.Expect(us => us.UpdateSectionsWithImportedData(null, null)) .IgnoreArguments() .Return(new[] { - failurePath + updateSectionsWithImportedDataObservable }); updateStrategy.Expect(us => us.DoPostUpdateActions()) - .Return(Enumerable.Empty()); + .Return(new[] + { + doPostUpdateActionsObservable + }); var messageProvider = mocks.Stub(); - var observable = mocks.StrictMock(); - observable.Expect(o => o.UpdateObserver()); + + var updateSectionsWithImportedDataObserver = mocks.StrictMock(); + updateSectionsWithImportedDataObserver.Expect(o => o.UpdateObserver()); + + var doPostUpdateActionsObserver = mocks.StrictMock(); + doPostUpdateActionsObserver.Expect(o => o.UpdateObserver()); mocks.ReplayAll(); string referenceLineFilePath = TestHelper.GetTestDataPath(TestDataPath.Riskeer.Common.IO, @@ -719,10 +730,12 @@ ReferenceLine importReferenceLine = ImportReferenceLine(referenceLineFilePath); + var failurePath = new TestFailurePath(); var importer = new FailureMechanismSectionsImporter(failurePath, importReferenceLine, sectionsFilePath, updateStrategy, messageProvider); importer.Import(); - failurePath.Attach(observable); + updateSectionsWithImportedDataObservable.Attach(updateSectionsWithImportedDataObserver); + doPostUpdateActionsObservable.Attach(doPostUpdateActionsObserver); // Call importer.DoPostImport(); @@ -731,6 +744,8 @@ mocks.VerifyAll(); } + private class TestObservable : Observable {} + private static ReferenceLine ImportReferenceLine(string referenceLineFilePath) { var referenceLine = new ReferenceLine(); Index: Riskeer/Piping/test/Riskeer.Piping.Plugin.Test/FileImporter/PipingFailureMechanismSectionReplaceStrategyTest.cs =================================================================== diff -u -r18a6d3ed8bca0374132300f545c94f8bc8c380ad -r5e923aa85cb018fe1ab29ad2c1df0d381aca4100 --- Riskeer/Piping/test/Riskeer.Piping.Plugin.Test/FileImporter/PipingFailureMechanismSectionReplaceStrategyTest.cs (.../PipingFailureMechanismSectionReplaceStrategyTest.cs) (revision 18a6d3ed8bca0374132300f545c94f8bc8c380ad) +++ Riskeer/Piping/test/Riskeer.Piping.Plugin.Test/FileImporter/PipingFailureMechanismSectionReplaceStrategyTest.cs (.../PipingFailureMechanismSectionReplaceStrategyTest.cs) (revision 5e923aa85cb018fe1ab29ad2c1df0d381aca4100) @@ -24,11 +24,13 @@ using Core.Common.Base; using Core.Common.TestUtil; using NUnit.Framework; +using Riskeer.Common.Data.Calculation; using Riskeer.Common.Data.FailureMechanism; using Riskeer.Common.Data.TestUtil; using Riskeer.Common.IO.FileImporters; using Riskeer.Piping.Data; using Riskeer.Piping.Data.Probabilistic; +using Riskeer.Piping.Data.SemiProbabilistic; using Riskeer.Piping.Data.TestUtil; using Riskeer.Piping.Plugin.FileImporter; @@ -74,7 +76,7 @@ } [Test] - public void DoPostUpdateActions_Always_ClearsOutputAndReturnsAffectedObjects() + public void DoPostUpdateActions_Always_ClearsAllProbabilisticOutputAndReturnsAffectedObjects() { // Setup var calculation1 = new ProbabilisticPipingCalculationScenario @@ -85,12 +87,17 @@ { Output = PipingTestDataGenerator.GetRandomProbabilisticPipingOutputWithoutIllustrationPoints() }; - + var calculation3 = new SemiProbabilisticPipingCalculationScenario + { + Output = PipingTestDataGenerator.GetSemiProbabilisticPipingOutput(double.NaN, double.NaN, double.NaN) + }; + var failureMechanism = new PipingFailureMechanism(); - failureMechanism.CalculationsGroup.Children.AddRange(new[] + failureMechanism.CalculationsGroup.Children.AddRange(new ICalculation[] { calculation1, calculation2, + calculation3, new ProbabilisticPipingCalculationScenario() }); @@ -100,7 +107,9 @@ IEnumerable affectedObjects = replaceStrategy.DoPostUpdateActions(); // Assert - Assert.IsTrue(failureMechanism.Calculations.All(c => !c.HasOutput)); + Assert.IsFalse(calculation1.HasOutput); + Assert.IsFalse(calculation2.HasOutput); + Assert.IsTrue(calculation3.HasOutput); CollectionAssert.AreEqual(new[] { calculation1, Index: Riskeer/Piping/test/Riskeer.Piping.Plugin.Test/FileImporter/PipingFailureMechanismSectionUpdateStrategyTest.cs =================================================================== diff -u -r5d4c739ad955814539e4c55f7db209763bfa8ffd -r5e923aa85cb018fe1ab29ad2c1df0d381aca4100 --- Riskeer/Piping/test/Riskeer.Piping.Plugin.Test/FileImporter/PipingFailureMechanismSectionUpdateStrategyTest.cs (.../PipingFailureMechanismSectionUpdateStrategyTest.cs) (revision 5d4c739ad955814539e4c55f7db209763bfa8ffd) +++ Riskeer/Piping/test/Riskeer.Piping.Plugin.Test/FileImporter/PipingFailureMechanismSectionUpdateStrategyTest.cs (.../PipingFailureMechanismSectionUpdateStrategyTest.cs) (revision 5e923aa85cb018fe1ab29ad2c1df0d381aca4100) @@ -25,11 +25,13 @@ using Core.Common.Base.Geometry; using Core.Common.TestUtil; using NUnit.Framework; +using Riskeer.Common.Data.Calculation; using Riskeer.Common.Data.FailureMechanism; using Riskeer.Common.Data.TestUtil; using Riskeer.Common.IO.FileImporters; using Riskeer.Piping.Data; using Riskeer.Piping.Data.Probabilistic; +using Riskeer.Piping.Data.SemiProbabilistic; using Riskeer.Piping.Data.TestUtil; using Riskeer.Piping.Plugin.FileImporter; @@ -116,7 +118,7 @@ } [Test] - public void DoPostUpdateActions_Always_ClearsOutputAndReturnsAffectedObjects() + public void DoPostUpdateActions_Always_ClearsAllProbabilisticOutputAndReturnsAffectedObjects() { // Setup var calculation1 = new ProbabilisticPipingCalculationScenario @@ -127,12 +129,17 @@ { Output = PipingTestDataGenerator.GetRandomProbabilisticPipingOutputWithoutIllustrationPoints() }; + var calculation3 = new SemiProbabilisticPipingCalculationScenario + { + Output = PipingTestDataGenerator.GetSemiProbabilisticPipingOutput(double.NaN, double.NaN, double.NaN) + }; var failureMechanism = new PipingFailureMechanism(); - failureMechanism.CalculationsGroup.Children.AddRange(new[] + failureMechanism.CalculationsGroup.Children.AddRange(new ICalculation[] { calculation1, calculation2, + calculation3, new ProbabilisticPipingCalculationScenario() }); @@ -142,7 +149,9 @@ IEnumerable affectedObjects = replaceStrategy.DoPostUpdateActions(); // Assert - Assert.IsTrue(failureMechanism.Calculations.All(c => !c.HasOutput)); + Assert.IsFalse(calculation1.HasOutput); + Assert.IsFalse(calculation2.HasOutput); + Assert.IsTrue(calculation3.HasOutput); CollectionAssert.AreEqual(new[] { calculation1,