public void GetFailureMechanismAssemblyGroups_AssemblySucceeds_CorrectlySetsProperties()
        {
            // Setup
            var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike);

            using (new AssemblyToolCalculatorFactoryConfig())
            {
                // Call
                var properties = new FailureMechanismSectionAssemblyGroupsProperties(assessmentSection);

                // Assert
                FailureMechanismSectionAssemblyGroupProperties[]             failureMechanismAssemblyGroups = properties.FailureMechanismAssemblyGroups;
                IEnumerable <FailureMechanismSectionAssemblyGroupBoundaries> output =
                    FailureMechanismSectionAssemblyGroupsHelper.GetFailureMechanismSectionAssemblyGroupBoundaries(assessmentSection);

                Assert.AreEqual(output.Count(), failureMechanismAssemblyGroups.Length);
                for (var i = 0; i < output.Count(); i++)
                {
                    FailureMechanismSectionAssemblyGroupBoundaries assemblyGroupBoundaries = output.ElementAt(i);

                    FailureMechanismSectionAssemblyGroupProperties property = failureMechanismAssemblyGroups[i];
                    Assert.AreEqual(assemblyGroupBoundaries.FailureMechanismSectionAssemblyGroup, property.Group);
                    Assert.AreEqual(assemblyGroupBoundaries.UpperBoundary, property.UpperBoundary);
                    Assert.AreEqual(assemblyGroupBoundaries.LowerBoundary, property.LowerBoundary);
                }
            }
        }
        public void ToString_Always_ReturnsAssemblyGroupDisplayName()
        {
            // Setup
            var random        = new Random(39);
            var assemblyGroup = random.NextEnumValue <FailureMechanismSectionAssemblyGroup>();
            var properties    = new FailureMechanismSectionAssemblyGroupProperties(new FailureMechanismSectionAssemblyGroupBoundaries(random.NextDouble(),
                                                                                                                                      random.NextDouble(),
                                                                                                                                      assemblyGroup));

            // Call
            var result = properties.ToString();

            // Assert
            Assert.AreEqual(EnumDisplayNameHelper.GetDisplayName(assemblyGroup), result);
        }
        public void Constructor_ValidParameters_ExpectedValues()
        {
            // Setup
            var random           = new Random(39);
            var assemblyCategory = new FailureMechanismSectionAssemblyGroupBoundaries(random.NextDouble(),
                                                                                      random.NextDouble(),
                                                                                      random.NextEnumValue <FailureMechanismSectionAssemblyGroup>());

            // Call
            var properties = new FailureMechanismSectionAssemblyGroupProperties(assemblyCategory);

            // Assert
            Assert.IsInstanceOf <ObjectProperties <FailureMechanismSectionAssemblyGroupBoundaries> >(properties);
            Assert.AreSame(assemblyCategory, properties.Data);
            TestHelper.AssertTypeConverter <FailureMechanismSectionAssemblyGroupProperties, ExpandableObjectConverter>();

            Assert.AreEqual(assemblyCategory.FailureMechanismSectionAssemblyGroup, properties.Group);
            Assert.AreEqual(assemblyCategory.LowerBoundary, properties.LowerBoundary);
            Assert.AreEqual(assemblyCategory.UpperBoundary, properties.UpperBoundary);
        }
        public void Constructor_Always_PropertiesHaveExpectedAttributeValues()
        {
            // Setup
            var random           = new Random(39);
            var assemblyCategory = new FailureMechanismSectionAssemblyGroupBoundaries(random.NextDouble(),
                                                                                      random.NextDouble(),
                                                                                      random.NextEnumValue <FailureMechanismSectionAssemblyGroup>());

            // Call
            var properties = new FailureMechanismSectionAssemblyGroupProperties(assemblyCategory);
            // Assert
            PropertyDescriptorCollection dynamicProperties = PropertiesTestHelper.GetAllVisiblePropertyDescriptors(properties);

            Assert.AreEqual(3, dynamicProperties.Count);

            const string generalCategoryName = "Algemeen";

            PropertyDescriptor nameProperty = dynamicProperties[0];

            PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(nameProperty,
                                                                            generalCategoryName,
                                                                            "Naam",
                                                                            "Naam van de duidingsklasse.",
                                                                            true);

            PropertyDescriptor lowerBoundaryProperty = dynamicProperties[1];

            PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(lowerBoundaryProperty,
                                                                            generalCategoryName,
                                                                            "Ondergrens [1/jaar]",
                                                                            "Ondergrens van de duidingsklasse.",
                                                                            true);

            PropertyDescriptor upperBoundaryProperty = dynamicProperties[2];

            PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(upperBoundaryProperty,
                                                                            generalCategoryName,
                                                                            "Bovengrens [1/jaar]",
                                                                            "Bovengrens van de duidingsklasse.",
                                                                            true);
        }