public void ClearForeshoreProfile_CalculationsWithForeshoreProfile_ClearForeshoreProfileAndReturnAffectedInputs() { // Setup var foreshoreProfileToBeRemoved = new TestForeshoreProfile(new Point2D(0, 0)); var foreshoreProfile = new TestForeshoreProfile(new Point2D(1, 1)); var calculation1 = new StructuresCalculation <TestStructuresInput> { InputParameters = { ForeshoreProfile = foreshoreProfile } }; var calculation2 = new StructuresCalculation <TestStructuresInput> { InputParameters = { ForeshoreProfile = foreshoreProfileToBeRemoved } }; var calculation3 = new StructuresCalculation <TestStructuresInput> { InputParameters = { ForeshoreProfile = foreshoreProfileToBeRemoved }, Output = new TestStructuresOutput() }; StructuresCalculation <TestStructuresInput>[] calculations = { calculation1, calculation2, calculation3 }; // Call IEnumerable <IObservable> affectedObjects = RiskeerCommonDataSynchronizationService.ClearForeshoreProfile <TestStructuresInput, TestStructure>( calculations, foreshoreProfileToBeRemoved); // Assert Assert.IsNull(calculation2.InputParameters.ForeshoreProfile); Assert.IsNull(calculation3.InputParameters.ForeshoreProfile); Assert.IsFalse(calculation3.HasOutput); Assert.IsNotNull(calculation1.InputParameters.ForeshoreProfile); CollectionAssert.AreEqual(new IObservable[] { calculation2.InputParameters, calculation3, calculation3.InputParameters }, affectedObjects); }