public void GivenFullyConfiguredViewWithFilledIllustrationPointsControl_WhenOutputCleared_ThenDataGridViewsUpdated()
        {
            // Given
            LocationCalculationsView <T> view = ShowFullyConfiguredCalculationsView(testForm);

            DataGridView calculationsDataGridView      = GetCalculationsDataGridView();
            DataGridViewRowCollection dataGridViewRows = calculationsDataGridView.Rows;

            calculationsDataGridView.CurrentCell = dataGridViewRows[3].Cells[0];

            // Precondition
            Assert.AreEqual(4, dataGridViewRows.Count);
            Assert.AreEqual("-", dataGridViewRows[0].Cells[OutputColumnIndex].FormattedValue);
            Assert.AreNotEqual("-", dataGridViewRows[1].Cells[OutputColumnIndex].FormattedValue);
            Assert.AreEqual("-", dataGridViewRows[2].Cells[OutputColumnIndex].FormattedValue);
            Assert.AreNotEqual("-", dataGridViewRows[3].Cells[OutputColumnIndex].FormattedValue);
            Assert.AreEqual(2, GetIllustrationPointsControl().Data.Count());

            var refreshed = false;

            calculationsDataGridView.Invalidated += (sender, args) => refreshed = true;

            // When
            ClearCalculationOutputAndNotifyObservers(view);

            // Then
            Assert.IsTrue(refreshed);
            Assert.AreEqual(4, dataGridViewRows.Count);
            Assert.AreEqual("-", dataGridViewRows[0].Cells[OutputColumnIndex].FormattedValue);
            Assert.AreEqual("-", dataGridViewRows[1].Cells[OutputColumnIndex].FormattedValue);
            Assert.AreEqual("-", dataGridViewRows[2].Cells[OutputColumnIndex].FormattedValue);
            Assert.AreEqual("-", dataGridViewRows[3].Cells[OutputColumnIndex].FormattedValue);
            CollectionAssert.IsEmpty(GetIllustrationPointsControl().Data);
        }
        public void GivenFullyConfiguredViewWithIllustrationPointSelection_WhenOutputUpdated_ThenSelectionPreserved()
        {
            // Given
            LocationCalculationsView <T> view = ShowFullyConfiguredCalculationsView(testForm);

            DataGridView calculationsDataGridView = GetCalculationsDataGridView();

            calculationsDataGridView.CurrentCell = calculationsDataGridView.Rows[3].Cells[0];
            DataGridView illustrationPointsDataGridView = GetIllustrationPointsDataGridView();

            illustrationPointsDataGridView.CurrentCell = illustrationPointsDataGridView.Rows[1].Cells[0];

            // Precondition
            Assert.AreEqual(3, calculationsDataGridView.CurrentRow?.Index);
            Assert.AreEqual(1, illustrationPointsDataGridView.CurrentRow?.Index);
            AssertIllustrationPointControlSelection(view.Selection);

            // When
            SetCalculationOutputAndNotifyObservers(view);

            // Then
            Assert.AreEqual(3, calculationsDataGridView.CurrentRow?.Index);
            Assert.AreEqual(1, illustrationPointsDataGridView.CurrentRow?.Index);
            AssertIllustrationPointControlSelection(view.Selection);
        }
        private void ReplaceCalculationsAndNotifyObservers(LocationCalculationsView <T> view)
        {
            ObservableList <HydraulicBoundaryLocationCalculation> calculations = GetCalculationsInView(view);

            calculations.Clear();
            calculations.Add(new HydraulicBoundaryLocationCalculation(new HydraulicBoundaryLocation(10, "10", 10.0, 10.0)));
            calculations.NotifyObservers();
        }
        private void SetCalculationOutputAndNotifyObservers(LocationCalculationsView <T> view)
        {
            ObservableList <HydraulicBoundaryLocationCalculation> calculations = GetCalculationsInView(view);

            HydraulicBoundaryLocationCalculation hydraulicBoundaryLocationCalculation = calculations.First();

            hydraulicBoundaryLocationCalculation.Output = new TestHydraulicBoundaryLocationCalculationOutput(new TestGeneralResultSubMechanismIllustrationPoint());
            hydraulicBoundaryLocationCalculation.NotifyObservers();
        }
        private void ClearCalculationOutputAndNotifyObservers(LocationCalculationsView <T> view)
        {
            ObservableList <HydraulicBoundaryLocationCalculation> calculations = GetCalculationsInView(view);

            calculations.ForEach(calculation =>
            {
                calculation.Output = null;
                calculation.NotifyObservers();
            });
        }
        public void GivenFullyConfiguredView_WhenSelectingIllustrationPoint_ThenSelectionUpdated()
        {
            // Given
            LocationCalculationsView <T> view = ShowFullyConfiguredCalculationsView(testForm);

            DataGridView calculationsDataGridView = GetCalculationsDataGridView();

            calculationsDataGridView.CurrentCell = calculationsDataGridView.Rows[3].Cells[0];
            DataGridView illustrationPointsDataGridView = GetIllustrationPointsDataGridView();

            // When
            illustrationPointsDataGridView.CurrentCell = illustrationPointsDataGridView.Rows[1].Cells[0];

            // Then
            AssertIllustrationPointControlSelection(view.Selection);
        }
        public void GivenFullyConfiguredView_WhenSelectingCalculation_ThenSelectionUpdated()
        {
            // Given
            LocationCalculationsView <T> view = ShowFullyConfiguredCalculationsView(testForm);

            DataGridView calculationsDataGridView = GetCalculationsDataGridView();

            // When
            calculationsDataGridView.CurrentCell = calculationsDataGridView.Rows[3].Cells[0];

            // Then
            DataGridViewRow currentCalculationRow = GetCalculationsDataGridViewControl().CurrentRow;

            Assert.AreEqual(3, currentCalculationRow.Index);
            Assert.AreEqual(GetCalculationSelection(view, currentCalculationRow.DataBoundItem), view.Selection);
        }
        public void GivenFullyConfiguredViewWithCalculationSelection_WhenOutputUpdated_ThenSelectionPreserved()
        {
            // Given
            LocationCalculationsView <T> view = ShowFullyConfiguredCalculationsView(testForm);

            DataGridView calculationsDataGridView = GetCalculationsDataGridView();

            calculationsDataGridView.CurrentCell = calculationsDataGridView.Rows[3].Cells[0];

            // Precondition
            DataGridViewRow currentCalculationRow = GetCalculationsDataGridViewControl().CurrentRow;

            Assert.AreEqual(3, currentCalculationRow.Index);
            Assert.AreEqual(GetCalculationSelection(view, currentCalculationRow.DataBoundItem), view.Selection);

            // When
            SetCalculationOutputAndNotifyObservers(view);

            // Then
            currentCalculationRow = GetCalculationsDataGridViewControl().CurrentRow;
            Assert.AreEqual(3, currentCalculationRow.Index);
            Assert.AreEqual(GetCalculationSelection(view, currentCalculationRow.DataBoundItem), view.Selection);
        }
Exemplo n.º 9
0
 protected override ObservableList <HydraulicBoundaryLocationCalculation> GetCalculationsInView(LocationCalculationsView <HydraulicBoundaryLocationCalculation> view)
 {
     return(calculations);
 }
Exemplo n.º 10
0
 protected override object GetCalculationSelection(LocationCalculationsView <HydraulicBoundaryLocationCalculation> view, object selectedRowObject)
 {
     return(new WaveHeightCalculationContext(((HydraulicBoundaryLocationCalculationRow)selectedRowObject).CalculatableObject));
 }
 /// <summary>
 /// Method for getting the calculations in <paramref name="view"/>.
 /// </summary>
 /// <param name="view">The view to get the calculations from.</param>
 /// <returns>An <see cref="ObservableList{T}"/> of calculations.</returns>
 protected abstract ObservableList <HydraulicBoundaryLocationCalculation> GetCalculationsInView(LocationCalculationsView <T> view);
 /// <summary>
 /// Method for obtaining the view selection object related to the selected calculation row.
 /// </summary>
 /// <param name="view">The calculations view involved.</param>
 /// <param name="selectedRowObject">The selected calculation row object.</param>
 /// <returns>The view selection object.</returns>
 protected abstract object GetCalculationSelection(LocationCalculationsView <T> view, object selectedRowObject);