private static void AssertSectionsDataGridViewControl(FailureMechanismSection[] sections, ProbabilityAssessmentInput probabilityAssessmentInput, DataGridViewControl sectionsDataGridViewControl) { Assert.AreEqual(sections.Length, sectionsDataGridViewControl.Rows.Count); double sectionStart = 0; for (var i = 0; i < sectionsDataGridViewControl.Rows.Count; i++) { FailureMechanismSection section = sections[i]; DataGridViewCellCollection rowCells = sectionsDataGridViewControl.Rows[i].Cells; Assert.AreEqual(section.Name, rowCells[nameColumnIndex].Value); var sectionStartValue = (RoundedDouble)rowCells[sectionStartColumnIndex].Value; Assert.AreEqual(sectionStart, sectionStartValue, sectionStartValue.GetAccuracy()); double sectionEnd = sectionStart + section.Length; var sectionEndValue = (RoundedDouble)rowCells[sectionEndColumnIndex].Value; Assert.AreEqual(sectionEnd, sectionEndValue, sectionEndValue.GetAccuracy()); var sectionLength = (RoundedDouble)rowCells[lengthColumnIndex].Value; Assert.AreEqual(section.Length, sectionLength, sectionLength.GetAccuracy()); var lengthEffect = (RoundedDouble)rowCells[lengthEffectColumnIndex].Value; Assert.AreEqual(probabilityAssessmentInput.GetN(section.Length), lengthEffect, lengthEffect.GetAccuracy()); sectionStart = sectionEnd; } }
public void GivenViewWithSections_WhenFailureMechanismNotifiesChangeAndSectionsUpdated_ThenDataGridViewUpdated() { // Given var failureMechanism = new TestFailureMechanism(); FailureMechanismTestHelper.SetSections(failureMechanism, new[] { CreateFailureMechanismSection("a", 0.0, 0.0, 1.0, 1.0) }); ProbabilityAssessmentInput probabilityAssessmentInput = CreateProbabilityAssessmentInput(); using (FailureMechanismSectionsProbabilityAssessmentView view = ShowFailureMechanismSectionsProbabilityAssessmentView(failureMechanism.Sections, failureMechanism, probabilityAssessmentInput)) { DataGridViewControl sectionsDataGridViewControl = GetSectionsDataGridViewControl(view); // Precondition AssertSectionsDataGridViewControl(failureMechanism.Sections.ToArray(), probabilityAssessmentInput, sectionsDataGridViewControl); // When FailureMechanismTestHelper.SetSections(failureMechanism, new[] { CreateFailureMechanismSection("a", 1.0, 1.0, 2.0, 2.0) }); failureMechanism.NotifyObservers(); // Then AssertSectionsDataGridViewControl(failureMechanism.Sections.ToArray(), probabilityAssessmentInput, sectionsDataGridViewControl); } }
public void GivenViewWithSections_WhenFailureMechanismNotifiesChangeButNothingRelevantChanged_ThenDataGridViewNotUpdated() { // Given var failureMechanism = new TestFailureMechanism(); FailureMechanismTestHelper.SetSections(failureMechanism, new[] { CreateFailureMechanismSection("a", 0.0, 0.0, 1.0, 1.0) }); ProbabilityAssessmentInput probabilityAssessmentInput = CreateProbabilityAssessmentInput(); using (FailureMechanismSectionsProbabilityAssessmentView view = ShowFailureMechanismSectionsProbabilityAssessmentView(failureMechanism.Sections, failureMechanism, probabilityAssessmentInput)) { DataGridView sectionsDataGridView = GetSectionsDataGridView(view); var invalidated = false; sectionsDataGridView.Invalidated += (s, e) => { invalidated = true; }; // When failureMechanism.NotifyObservers(); // Then Assert.IsFalse(invalidated); } }
public void Constructor_WithSections_CreatesViewWithDataGridViewCorrectlyFilled() { // Setup var mocks = new MockRepository(); var failureMechanism = mocks.Stub <IFailureMechanism>(); mocks.ReplayAll(); FailureMechanismSection[] sections = { CreateFailureMechanismSection("a", 0.0, 0.0, 1.0, 1.0), CreateFailureMechanismSection("b", 1.0, 1.0, 2.0, 2.0), CreateFailureMechanismSection("c", 2.0, 2.0, 3.0, 3.0) }; ProbabilityAssessmentInput probabilityAssessmentInput = CreateProbabilityAssessmentInput(); // Call using (FailureMechanismSectionsProbabilityAssessmentView view = ShowFailureMechanismSectionsProbabilityAssessmentView(sections, failureMechanism, probabilityAssessmentInput)) { // Assert DataGridViewControl sectionsDataGridViewControl = GetSectionsDataGridViewControl(view); AssertSectionsDataGridViewControl(sections, probabilityAssessmentInput, sectionsDataGridViewControl); } mocks.VerifyAll(); }
/// <summary> /// Creates a new instance of <see cref="FailureMechanismSectionProbabilityAssessmentProperties"/>. /// </summary> /// <param name="section">The section to show the properties for.</param> /// <param name="sectionStart">The start of the section from the beginning /// of the reference line in meters.</param> /// <param name="sectionEnd">The end of the section from the beginning of /// the reference line in meters.</param> /// <param name="probabilityAssessmentInput">The probability assessment input belonging to the /// failure mechanism of the properties.</param> /// <exception cref="ArgumentNullException">Thrown when any input parameter is <c>null</c>.</exception> public FailureMechanismSectionProbabilityAssessmentProperties(FailureMechanismSection section, double sectionStart, double sectionEnd, ProbabilityAssessmentInput probabilityAssessmentInput) : base(section, sectionStart, sectionEnd) { if (probabilityAssessmentInput == null) { throw new ArgumentNullException(nameof(probabilityAssessmentInput)); } this.probabilityAssessmentInput = probabilityAssessmentInput; }
/// <summary> /// Creates a new instance of <see cref="FailureMechanismSectionsProbabilityAssessmentView"/>. /// </summary> /// <param name="sections">The sections to be displayed in the view.</param> /// <param name="failureMechanism">The failure mechanism the view belongs to.</param> /// <param name="probabilityAssessmentInput">The probability assessment input belonging to the /// failure mechanism.</param> /// <exception cref="ArgumentNullException">Thrown when any input parameter is <c>null</c>.</exception> public FailureMechanismSectionsProbabilityAssessmentView(IEnumerable <FailureMechanismSection> sections, IFailureMechanism failureMechanism, ProbabilityAssessmentInput probabilityAssessmentInput) : base(sections, failureMechanism) { if (probabilityAssessmentInput == null) { throw new ArgumentNullException(nameof(probabilityAssessmentInput)); } this.probabilityAssessmentInput = probabilityAssessmentInput; failureMechanismSectionsDataGridViewControl.AddTextBoxColumn(nameof(FailureMechanismSectionProbabilityAssessmentRow.N), Resources.FailureMechanismSectionProbabilityAssessment_N_Rounded_DisplayName, true); failureMechanismObserver = new Observer(HandleProbabilityAssessmentInputChange) { Observable = failureMechanism }; }
/// <summary> /// Creates a new instance of <see cref="FailureMechanismSectionsProbabilityAssessmentProperties"/>. /// </summary> /// <param name="failureMechanism">The failure mechanism to show the section properties for.</param> /// <param name="probabilityAssessmentInput">The probability assessment input belonging to the /// failure mechanism of the properties.</param> /// <exception cref="ArgumentNullException">Thrown when any parameter is <c>null</c>.</exception> public FailureMechanismSectionsProbabilityAssessmentProperties(IFailureMechanism failureMechanism, ProbabilityAssessmentInput probabilityAssessmentInput) { if (failureMechanism == null) { throw new ArgumentNullException(nameof(failureMechanism)); } if (probabilityAssessmentInput == null) { throw new ArgumentNullException(nameof(probabilityAssessmentInput)); } failureMechanismObserver = new Observer(OnRefreshRequired) { Observable = failureMechanism }; data = failureMechanism; this.probabilityAssessmentInput = probabilityAssessmentInput; }
public void GivenViewWithSections_WhenFailureMechanismNotifiesChangeAndProbabilityAssessmentInputChanged_ThenDataGridViewRefreshed() { // Given var failureMechanism = new TestFailureMechanism(); FailureMechanismTestHelper.SetSections(failureMechanism, new[] { CreateFailureMechanismSection("a", 0.0, 0.0, 1.0, 1.0) }); ProbabilityAssessmentInput probabilityAssessmentInput = CreateProbabilityAssessmentInput(); using (FailureMechanismSectionsProbabilityAssessmentView view = ShowFailureMechanismSectionsProbabilityAssessmentView(failureMechanism.Sections, failureMechanism, probabilityAssessmentInput)) { DataGridView sectionsDataGridView = GetSectionsDataGridView(view); var dataSourceChanged = false; sectionsDataGridView.DataSourceChanged += (s, e) => { dataSourceChanged = true; }; DataGridViewControl sectionsDataGridViewControl = GetSectionsDataGridViewControl(view); // Precondition AssertSectionsDataGridViewControl(failureMechanism.Sections.ToArray(), probabilityAssessmentInput, sectionsDataGridViewControl); // When probabilityAssessmentInput.A = 0.5; failureMechanism.NotifyObservers(); // Then Assert.IsFalse(dataSourceChanged); AssertSectionsDataGridViewControl(failureMechanism.Sections.ToArray(), probabilityAssessmentInput, sectionsDataGridViewControl); } }
public void Constructor_WithoutSections_CreatesViewWithDataGridViewEmpty() { // Setup var mocks = new MockRepository(); var failureMechanism = mocks.Stub <IFailureMechanism>(); mocks.ReplayAll(); IEnumerable <FailureMechanismSection> sections = Enumerable.Empty <FailureMechanismSection>(); ProbabilityAssessmentInput probabilityAssessmentInput = CreateProbabilityAssessmentInput(); // Call using (FailureMechanismSectionsProbabilityAssessmentView view = ShowFailureMechanismSectionsProbabilityAssessmentView(sections, failureMechanism, probabilityAssessmentInput)) { // Assert CollectionAssert.IsEmpty(GetSectionsDataGridViewControl(view).Rows); } mocks.VerifyAll(); }
public void Constructor_ValidParameters_InitializesViewCorrectly() { // Setup var mocks = new MockRepository(); var failureMechanism = mocks.Stub <IFailureMechanism>(); mocks.ReplayAll(); IEnumerable <FailureMechanismSection> sections = Enumerable.Empty <FailureMechanismSection>(); ProbabilityAssessmentInput probabilityAssessmentInput = CreateProbabilityAssessmentInput(); // Call using (FailureMechanismSectionsProbabilityAssessmentView view = ShowFailureMechanismSectionsProbabilityAssessmentView(sections, failureMechanism, probabilityAssessmentInput)) { // Assert Assert.IsInstanceOf <FailureMechanismSectionsView>(view); Assert.IsNull(view.Data); Assert.AreSame(failureMechanism, view.FailureMechanism); Assert.AreEqual(1, view.Controls.Count); DataGridViewControl sectionsDataGridViewControl = GetSectionsDataGridViewControl(view); Assert.NotNull(sectionsDataGridViewControl); Assert.AreEqual(DockStyle.Fill, sectionsDataGridViewControl.Dock); DataGridView dataGridView = GetSectionsDataGridView(view); Assert.AreEqual(columnCount, dataGridView.ColumnCount); Assert.AreEqual("Vaknaam", dataGridView.Columns[nameColumnIndex].HeaderText); Assert.AreEqual("Metrering van* [m]", dataGridView.Columns[sectionStartColumnIndex].HeaderText); Assert.AreEqual("Metrering tot* [m]", dataGridView.Columns[sectionEndColumnIndex].HeaderText); Assert.AreEqual("Lengte* [m]", dataGridView.Columns[lengthColumnIndex].HeaderText); Assert.AreEqual("Nvak* [-]", dataGridView.Columns[lengthEffectColumnIndex].HeaderText); } mocks.VerifyAll(); }
private static void AssertLengthEffect(ProbabilityAssessmentInput probabilityAssessmentInput, FailureMechanismSection section, FailureMechanismSectionProbabilityAssessmentRow sectionRow) { Assert.AreEqual(probabilityAssessmentInput.GetN(section.Length), sectionRow.N, sectionRow.N.GetAccuracy()); }
private FailureMechanismSectionsProbabilityAssessmentView ShowFailureMechanismSectionsProbabilityAssessmentView(IEnumerable <FailureMechanismSection> sections, IFailureMechanism failureMechanism, ProbabilityAssessmentInput probabilityAssessmentInput) { var view = new FailureMechanismSectionsProbabilityAssessmentView(sections, failureMechanism, probabilityAssessmentInput); testForm.Controls.Add(view); testForm.Show(); return(view); }