public void UpdateSectionsWithImportedData_SourcePathNull_ThrowsArgumentNullException() { // Setup var mocks = new MockRepository(); var failureMechanism = mocks.Stub <IFailureMechanism <TestFailureMechanismSectionResult> >(); var sectionResultUpdateStrategy = mocks.Stub <IFailureMechanismSectionResultUpdateStrategy <TestFailureMechanismSectionResult> >(); mocks.ReplayAll(); var failureMechanismSectionUpdateStrategy = new FailureMechanismSectionUpdateStrategy <TestFailureMechanismSectionResult>(failureMechanism, sectionResultUpdateStrategy); // Call void Call() => failureMechanismSectionUpdateStrategy.UpdateSectionsWithImportedData(Enumerable.Empty <FailureMechanismSection>(), null); // Assert var exception = Assert.Throws <ArgumentNullException>(Call); Assert.AreEqual("sourcePath", exception.ParamName); mocks.VerifyAll(); }
public void UpdateSectionsWithImportedData_WithEmptyData_ClearsSectionsAndUpdatesPathAndReturnsAffectedObjects() { // Setup const string oldSourcePath = "old/path"; string sourcePath = TestHelper.GetScratchPadPath(); var failureMechanism = new TestFailureMechanism(); failureMechanism.SetSections(new[] { FailureMechanismSectionTestFactory.CreateFailureMechanismSection() }, oldSourcePath); var sectionResultUpdateStrategy = new TestUpdateFailureMechanismSectionResultUpdateStrategy(); var failureMechanismSectionUpdateStrategy = new FailureMechanismSectionUpdateStrategy <FailureMechanismSectionResult>( failureMechanism, sectionResultUpdateStrategy); // Precondition IEnumerable <FailureMechanismSection> failureMechanismSections = failureMechanism.Sections; Assert.AreEqual(1, failureMechanismSections.Count()); Assert.AreEqual(oldSourcePath, failureMechanism.FailureMechanismSectionSourcePath); // Call IEnumerable <IObservable> affectedObjects = failureMechanismSectionUpdateStrategy.UpdateSectionsWithImportedData( Enumerable.Empty <FailureMechanismSection>(), sourcePath); // Assert Assert.AreEqual(sourcePath, failureMechanism.FailureMechanismSectionSourcePath); Assert.IsEmpty(failureMechanismSections); Assert.IsFalse(sectionResultUpdateStrategy.Update); CollectionAssert.AreEqual(new IObservable[] { failureMechanism, failureMechanism.SectionResults }, affectedObjects); }
public void UpdateSectionsWithImportedData_WithInvalidSections_ThrowsUpdateDataException() { // Setup string sourcePath = TestHelper.GetScratchPadPath(); var failureMechanism = new TestFailureMechanism(); FailureMechanismSection failureMechanismSection1 = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(new[] { new Point2D(0.0, 0.0), new Point2D(5.0, 5.0) }); FailureMechanismSection failureMechanismSection2 = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(new[] { new Point2D(10.0, 10.0), new Point2D(15.0, 15.0) }); var sectionResultUpdateStrategy = new TestUpdateFailureMechanismSectionResultUpdateStrategy(); var failureMechanismSectionUpdateStrategy = new FailureMechanismSectionUpdateStrategy <FailureMechanismSectionResult>(failureMechanism, sectionResultUpdateStrategy); FailureMechanismSection[] sections = { failureMechanismSection1, failureMechanismSection2 }; // Call void Call() => failureMechanismSectionUpdateStrategy.UpdateSectionsWithImportedData(sections, sourcePath); // Assert var exception = Assert.Throws <UpdateDataException>(Call); Assert.IsInstanceOf <ArgumentException>(exception.InnerException); Assert.AreEqual(exception.InnerException.Message, exception.Message); Assert.IsFalse(sectionResultUpdateStrategy.Update); }
public void UpdateSectionsWithImportedData_WithValidData_SetsSectionsToFailureMechanismAndCopiesPropertiesOfEqualSectionsAndReturnsAffectedObjects() { // Setup string sourcePath = TestHelper.GetScratchPadPath(); var failureMechanism = new TestFailureMechanism(); FailureMechanismSection failureMechanismSection1 = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(new[] { new Point2D(0.0, 0.0), new Point2D(5.0, 5.0) }); FailureMechanismSection failureMechanismSection2 = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(new[] { new Point2D(5.0, 5.0), new Point2D(10.0, 10.0) }); failureMechanism.SetSections(new[] { failureMechanismSection1, failureMechanismSection2 }, sourcePath); IObservableEnumerable <FailureMechanismSectionResult> failureMechanismSectionResults = failureMechanism.SectionResults; FailureMechanismSectionResult oldSectionResult = failureMechanismSectionResults.First(); var sectionResultUpdateStrategy = new TestUpdateFailureMechanismSectionResultUpdateStrategy(); var failureMechanismSectionUpdateStrategy = new FailureMechanismSectionUpdateStrategy <FailureMechanismSectionResult>(failureMechanism, sectionResultUpdateStrategy); FailureMechanismSection[] sections = { FailureMechanismSectionTestFactory.CreateFailureMechanismSection(new[] { new Point2D(0.0, 0.0), new Point2D(5.0, 5.0) }), FailureMechanismSectionTestFactory.CreateFailureMechanismSection(new[] { new Point2D(5.0, 5.0), new Point2D(15.0, 15.0) }) }; // Call IEnumerable <IObservable> affectedObjects = failureMechanismSectionUpdateStrategy.UpdateSectionsWithImportedData(sections, sourcePath); // Assert Assert.AreEqual(sourcePath, failureMechanism.FailureMechanismSectionSourcePath); IEnumerable <FailureMechanismSection> failureMechanismSections = failureMechanism.Sections; Assert.AreEqual(2, failureMechanismSections.Count()); CollectionAssert.AreEqual(sections, failureMechanismSections); Assert.AreSame(oldSectionResult, sectionResultUpdateStrategy.Origin); Assert.AreSame(failureMechanismSectionResults.First(), sectionResultUpdateStrategy.Target); CollectionAssert.AreEqual(new IObservable[] { failureMechanism, failureMechanism.SectionResults }, affectedObjects); }