public void UpdateSectionsWithImportedData_WithValidData_UpdatesDataAndReturnsAffectedObjects() { // Setup var failureMechanism = new PipingFailureMechanism(); var failureMechanismSectionUpdateStrategy = new PipingFailureMechanismSectionUpdateStrategy( failureMechanism, new AdoptableWithProfileProbabilityFailureMechanismSectionResultUpdateStrategy()); string sourcePath = TestHelper.GetScratchPadPath(); FailureMechanismSection[] sections = { FailureMechanismSectionTestFactory.CreateFailureMechanismSection() }; // Call IEnumerable <IObservable> affectedObjects = failureMechanismSectionUpdateStrategy.UpdateSectionsWithImportedData(sections, sourcePath); // Assert Assert.AreEqual(sourcePath, failureMechanism.FailureMechanismSectionSourcePath); Assert.AreEqual(sections.Single(), failureMechanism.Sections.Single()); CollectionAssert.AreEqual(new IObservable[] { failureMechanism, failureMechanism.SectionResults, failureMechanism.ScenarioConfigurationsPerFailureMechanismSection }, affectedObjects); }
public void Constructor_ExpectedValues() { // Call var updateStrategy = new PipingFailureMechanismSectionUpdateStrategy( new PipingFailureMechanism(), new AdoptableWithProfileProbabilityFailureMechanismSectionResultUpdateStrategy()); // Assert Assert.IsInstanceOf <FailureMechanismSectionUpdateStrategy <AdoptableWithProfileProbabilityFailureMechanismSectionResult> >(updateStrategy); }
public void DoPostUpdateActions_Always_ClearsAllProbabilisticOutputAndReturnsAffectedObjects() { // Setup var calculation1 = new ProbabilisticPipingCalculationScenario { Output = PipingTestDataGenerator.GetRandomProbabilisticPipingOutputWithIllustrationPoints() }; var calculation2 = new ProbabilisticPipingCalculationScenario { 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 ICalculation[] { calculation1, calculation2, calculation3, new ProbabilisticPipingCalculationScenario() }); var replaceStrategy = new PipingFailureMechanismSectionUpdateStrategy(failureMechanism, new AdoptableWithProfileProbabilityFailureMechanismSectionResultUpdateStrategy()); // Call IEnumerable <IObservable> affectedObjects = replaceStrategy.DoPostUpdateActions(); // Assert Assert.IsFalse(calculation1.HasOutput); Assert.IsFalse(calculation2.HasOutput); Assert.IsTrue(calculation3.HasOutput); CollectionAssert.AreEqual(new[] { calculation1, calculation2 }, affectedObjects); }
public void GivenFailureMechanismWithSections_WhenUpdateSectionsWithImportedData_ThenDataUpdatedAndReturnsAffectedObjects() { // Given var failureMechanism = new PipingFailureMechanism(); var failureMechanismSectionUpdateStrategy = new PipingFailureMechanismSectionUpdateStrategy( failureMechanism, new AdoptableWithProfileProbabilityFailureMechanismSectionResultUpdateStrategy()); FailureMechanismSection[] sections = { FailureMechanismSectionTestFactory.CreateFailureMechanismSection(), FailureMechanismSectionTestFactory.CreateFailureMechanismSection(new[] { new Point2D(1, 0), new Point2D(3, 0) }) }; string sourcePath = TestHelper.GetScratchPadPath(); failureMechanism.SetSections(sections, sourcePath); failureMechanism.ScenarioConfigurationsPerFailureMechanismSection.First().ScenarioConfigurationType = PipingScenarioConfigurationPerFailureMechanismSectionType.Probabilistic; // When IEnumerable <IObservable> affectedObjects = failureMechanismSectionUpdateStrategy.UpdateSectionsWithImportedData(sections, sourcePath); // Then CollectionAssert.AreEqual(new[] { PipingScenarioConfigurationPerFailureMechanismSectionType.Probabilistic, PipingScenarioConfigurationPerFailureMechanismSectionType.SemiProbabilistic }, failureMechanism.ScenarioConfigurationsPerFailureMechanismSection.Select(sc => sc.ScenarioConfigurationType)); CollectionAssert.AreEqual(new IObservable[] { failureMechanism, failureMechanism.SectionResults, failureMechanism.ScenarioConfigurationsPerFailureMechanismSection }, affectedObjects); }