public void GivenViewWithInValidData_WhenCalculationWithValidData_ThenSetsDataTable()
        {
            // Given
            var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike);

            using (new AssemblyToolCalculatorFactoryConfig())
            {
                var calculatorFactory = (TestAssemblyToolCalculatorFactory)AssemblyToolCalculatorFactory.Instance;
                FailureMechanismSectionAssemblyGroupBoundariesCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyGroupBoundariesCalculator;
                calculator.ThrowExceptionOnCalculate = true;

                using (var view = new FailureMechanismSectionAssemblyGroupsView(assessmentSection))
                {
                    AssemblyGroupsTable <FailureMechanismSectionAssemblyGroup> failureMechanismSectionGroupsTable = GetAssemblyGroupsTable(view);

                    // Precondition
                    Assert.IsEmpty(failureMechanismSectionGroupsTable.Rows);

                    // When
                    calculator.ThrowExceptionOnCalculate = false;
                    assessmentSection.FailureMechanismContribution.NotifyObservers();

                    // Then
                    Assert.IsNotEmpty(failureMechanismSectionGroupsTable.Rows);
                }
            }
        }
        public void Constructor_WithValidParameters_FillsTableWithData()
        {
            // Setup
            var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike);

            using (new AssemblyToolCalculatorFactoryConfig())
            {
                // Call
                using (var view = new FailureMechanismSectionAssemblyGroupsView(assessmentSection))
                {
                    AssemblyGroupsTable <FailureMechanismSectionAssemblyGroup> assemblyGroupsTable = GetAssemblyGroupsTable(view);

                    // Assert
                    IEnumerable <FailureMechanismSectionAssemblyGroupBoundaries> expectedAssemblyGroupBoundaries =
                        FailureMechanismSectionAssemblyGroupsHelper.GetFailureMechanismSectionAssemblyGroupBoundaries(assessmentSection);
                    Assert.AreEqual(expectedAssemblyGroupBoundaries.Count(), assemblyGroupsTable.Rows.Count);

                    for (int i = 0; i < expectedAssemblyGroupBoundaries.Count(); i++)
                    {
                        FailureMechanismSectionAssemblyGroupBoundaries expectedBoundary = expectedAssemblyGroupBoundaries.ElementAt(i);
                        var actualBoundary = (AssemblyGroupRow <FailureMechanismSectionAssemblyGroup>)assemblyGroupsTable.Rows[i].DataBoundItem;

                        Assert.AreEqual(expectedBoundary.FailureMechanismSectionAssemblyGroup, actualBoundary.Group);
                        Assert.AreEqual(expectedBoundary.LowerBoundary, actualBoundary.LowerBoundary);
                        Assert.AreEqual(expectedBoundary.UpperBoundary, actualBoundary.UpperBoundary);
                    }
                }
            }
        }
        public void CloseForData_ViewCorrespondingToRemovedAssessmentSection_ReturnsTrue()
        {
            // Setup
            var random            = new Random(21);
            var assessmentSection = new AssessmentSection(random.NextEnumValue <AssessmentSectionComposition>());

            using (var view = new FailureMechanismSectionAssemblyGroupsView(assessmentSection))
            {
                // Call
                bool closeForData = info.CloseForData(view, assessmentSection);

                // Assert
                Assert.IsTrue(closeForData);
            }
        }
        public void GivenViewWithValidData_WhenFailureMechanismContributionUpdated_ThenDataTableUpdated()
        {
            // Given
            var random            = new Random();
            var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike);

            using (new AssemblyToolCalculatorFactoryConfig())
            {
                var calculatorFactory = (TestAssemblyToolCalculatorFactory)AssemblyToolCalculatorFactory.Instance;
                FailureMechanismSectionAssemblyGroupBoundariesCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyGroupBoundariesCalculator;
                var output = new List <FailureMechanismSectionAssemblyGroupBoundaries>
                {
                    CreateFailureMechanismSectionAssemblyGroupBoundaries(random)
                };

                calculator.FailureMechanismSectionAssemblyGroupBoundariesOutput = output;

                using (var view = new FailureMechanismSectionAssemblyGroupsView(assessmentSection))
                {
                    AssemblyGroupsTable <FailureMechanismSectionAssemblyGroup> failureMechanismSectionGroupsTable = GetAssemblyGroupsTable(view);

                    // Precondition
                    int expectedNrOfDefaultGroupBoundaries = FailureMechanismSectionAssemblyGroupsHelper.GetFailureMechanismSectionAssemblyGroupBoundaries(assessmentSection).Count();
                    Assert.AreEqual(expectedNrOfDefaultGroupBoundaries, failureMechanismSectionGroupsTable.Rows.Count);

                    int newNrOfGroupBoundaries = random.Next(1, 10);
                    for (var i = 1; i <= newNrOfGroupBoundaries; i++)
                    {
                        output.Add(CreateFailureMechanismSectionAssemblyGroupBoundaries(random));
                    }

                    // When
                    assessmentSection.FailureMechanismContribution.NotifyObservers();

                    // Then
                    Assert.AreEqual(expectedNrOfDefaultGroupBoundaries + newNrOfGroupBoundaries, failureMechanismSectionGroupsTable.Rows.Count);
                }
            }
        }
        public void Constructor_ExpectedValues()
        {
            // Setup
            var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike);

            // Call
            using (var view = new FailureMechanismSectionAssemblyGroupsView(assessmentSection))
            {
                // Assert
                Assert.IsInstanceOf <UserControl>(view);
                Assert.IsInstanceOf <IView>(view);
                Assert.IsNull(view.Data);
                Assert.AreSame(assessmentSection, view.AssessmentSection);

                Assert.AreEqual(1, view.Controls.Count);

                Panel groupBoxPanel = ControlTestHelper.GetControls <Panel>(view, "groupBoxPanel").Single();
                Assert.AreEqual(1, groupBoxPanel.Controls.Count);
                Assert.AreEqual(DockStyle.Fill, groupBoxPanel.Dock);

                AssemblyGroupsTable <FailureMechanismSectionAssemblyGroup> assemblyGroupsTable = GetAssemblyGroupsTable(view);
                Assert.AreEqual(DockStyle.Fill, assemblyGroupsTable.Dock);
            }
        }
 private static AssemblyGroupsTable <FailureMechanismSectionAssemblyGroup> GetAssemblyGroupsTable(
     FailureMechanismSectionAssemblyGroupsView view)
 {
     return(ControlTestHelper.GetControls <AssemblyGroupsTable <FailureMechanismSectionAssemblyGroup> >(
                view, "assemblyGroupsTable").Single());
 }