public void ContextMenuStrip_Always_CallsContextMenuBuilderMethods()
        {
            // Setup
            var mocks = new MockRepository();

            using (var treeViewControl = new TreeViewControl())
            {
                StabilityStoneCoverWaveConditionsOutput output = StabilityStoneCoverWaveConditionsOutputTestFactory.Create();
                var context = new StabilityStoneCoverWaveConditionsOutputContext(output, new StabilityStoneCoverWaveConditionsInput());

                var menuBuilder = mocks.StrictMock <IContextMenuBuilder>();
                using (mocks.Ordered())
                {
                    menuBuilder.Expect(mb => mb.AddPropertiesItem()).Return(menuBuilder);
                    menuBuilder.Expect(mb => mb.Build()).Return(null);
                }

                var gui = mocks.Stub <IGui>();
                gui.Stub(cmp => cmp.Get(context, treeViewControl)).Return(menuBuilder);
                mocks.ReplayAll();

                using (var plugin = new StabilityStoneCoverPlugin())
                {
                    TreeNodeInfo info = GetInfo(plugin);
                    plugin.Gui = gui;

                    // Call
                    info.ContextMenuStrip(context, null, treeViewControl);
                }
            }

            // Assert
            mocks.VerifyAll();
        }
        public void Clone_OutputNull_ReturnNewInstanceWithCopiedValues()
        {
            // Setup
            var original = new StabilityStoneCoverWaveConditionsOutput(null, null);

            // Call
            object clone = original.Clone();

            // Assert
            CoreCloneAssert.AreObjectClones(original, clone, StabilityStoneCoverCloneAssert.AreClones);
        }
示例#3
0
        public void Constructor_ExpectedValues()
        {
            // Setup
            StabilityStoneCoverWaveConditionsOutput output = StabilityStoneCoverWaveConditionsOutputTestFactory.Create();

            // Call
            var properties = new StabilityStoneCoverWaveConditionsOutputProperties(output, new StabilityStoneCoverWaveConditionsInput());

            // Assert
            Assert.IsInstanceOf <ObjectProperties <StabilityStoneCoverWaveConditionsOutput> >(properties);
            Assert.AreSame(output, properties.Data);
        }
示例#4
0
        public void CreateOutputWithColumns_WithColumnsOutput_ReturnsOutput()
        {
            // Setup
            IEnumerable <WaveConditionsOutput> columnsOutput = Enumerable.Empty <WaveConditionsOutput>();

            // Call
            StabilityStoneCoverWaveConditionsOutput output = StabilityStoneCoverWaveConditionsOutputFactory.CreateOutputWithColumns(columnsOutput);

            // Assert
            Assert.AreSame(columnsOutput, output.ColumnsOutput);
            Assert.IsNull(output.BlocksOutput);
        }
示例#5
0
        public void Constructor_CalculationTypeBlocksOrColumns_PropertiesHaveExpectedAttributesValues(StabilityStoneCoverWaveConditionsCalculationType calculationType)
        {
            // Setup
            var blocksOutput = new[]
            {
                new TestWaveConditionsOutput()
            };

            var columnsOutput = new[]
            {
                new TestWaveConditionsOutput()
            };

            StabilityStoneCoverWaveConditionsOutput stabilityStoneCoverWaveConditionsOutput = StabilityStoneCoverWaveConditionsOutputTestFactory.Create(
                columnsOutput, blocksOutput);
            var input = new StabilityStoneCoverWaveConditionsInput
            {
                CalculationType = calculationType
            };

            // Call
            var properties = new StabilityStoneCoverWaveConditionsOutputProperties(
                stabilityStoneCoverWaveConditionsOutput, input);

            // Assert
            PropertyDescriptorCollection dynamicProperties = PropertiesTestHelper.GetAllVisiblePropertyDescriptors(properties);

            Assert.AreEqual(1, dynamicProperties.Count);

            const string resultCategory = "Resultaat";

            string revetmentType = null;

            if (calculationType == StabilityStoneCoverWaveConditionsCalculationType.Blocks)
            {
                revetmentType = "blokken";
            }

            if (calculationType == StabilityStoneCoverWaveConditionsCalculationType.Columns)
            {
                revetmentType = "zuilen";
            }

            PropertyDescriptor outputProperty = dynamicProperties[0];

            Assert.IsInstanceOf <ExpandableArrayConverter>(outputProperty.Converter);
            PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(outputProperty,
                                                                            resultCategory,
                                                                            $"Hydraulische belastingen voor {revetmentType}",
                                                                            $"Berekende hydraulische belastingen voor {revetmentType}.",
                                                                            true);
        }
示例#6
0
        public void Constructor_InputNull_ThrowsArgumentNullException()
        {
            // Setup
            StabilityStoneCoverWaveConditionsOutput output = StabilityStoneCoverWaveConditionsOutputTestFactory.Create();

            // Call
            TestDelegate call = () => new StabilityStoneCoverWaveConditionsOutputProperties(output, null);

            // Assert
            var exception = Assert.Throws <ArgumentNullException>(call);

            Assert.AreEqual("input", exception.ParamName);
        }
示例#7
0
        public void Constructor_ExpectedValues()
        {
            // Setup
            StabilityStoneCoverWaveConditionsOutput output = StabilityStoneCoverWaveConditionsOutputTestFactory.Create();
            var input = new StabilityStoneCoverWaveConditionsInput();

            // Call
            var context = new StabilityStoneCoverWaveConditionsOutputContext(output, input);

            // Assert
            Assert.IsInstanceOf <ObservableWrappedObjectContextBase <StabilityStoneCoverWaveConditionsOutput> >(context);
            Assert.AreSame(output, context.WrappedData);
            Assert.AreSame(input, context.Input);
        }
示例#8
0
        public void DynamicVisibleValidationMethod_DependingOnRelevancy_ReturnExpectedVisibility(
            StabilityStoneCoverWaveConditionsCalculationType calculationType, bool blocksVisible, bool columnsVisible)
        {
            // Setup
            StabilityStoneCoverWaveConditionsOutput output = StabilityStoneCoverWaveConditionsOutputTestFactory.Create();
            var input = new StabilityStoneCoverWaveConditionsInput
            {
                CalculationType = calculationType
            };

            var properties = new StabilityStoneCoverWaveConditionsOutputProperties(output, input);

            // Call & Assert
            Assert.AreEqual(blocksVisible, properties.DynamicVisibleValidationMethod(nameof(properties.Blocks)));
            Assert.AreEqual(columnsVisible, properties.DynamicVisibleValidationMethod(nameof(properties.Columns)));
            Assert.IsTrue(properties.DynamicVisibleValidationMethod(null));
        }
示例#9
0
        public void Constructor_CalculationTypeBoth_PropertiesHaveExpectedAttributesValues()
        {
            // Setup
            var blocksOutput = new[]
            {
                new TestWaveConditionsOutput()
            };

            var columnsOutput = new[]
            {
                new TestWaveConditionsOutput()
            };

            StabilityStoneCoverWaveConditionsOutput stabilityStoneCoverWaveConditionsOutput = StabilityStoneCoverWaveConditionsOutputTestFactory.Create(
                columnsOutput, blocksOutput);

            // Call
            var properties = new StabilityStoneCoverWaveConditionsOutputProperties(
                stabilityStoneCoverWaveConditionsOutput, new StabilityStoneCoverWaveConditionsInput());

            // Assert
            PropertyDescriptorCollection dynamicProperties = PropertiesTestHelper.GetAllVisiblePropertyDescriptors(properties);

            Assert.AreEqual(2, dynamicProperties.Count);

            const string resultCategory = "Resultaat";

            PropertyDescriptor blocksProperty = dynamicProperties[blockPropertyIndex];

            Assert.IsInstanceOf <ExpandableArrayConverter>(blocksProperty.Converter);
            PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(blocksProperty,
                                                                            resultCategory,
                                                                            "Hydraulische belastingen voor blokken",
                                                                            "Berekende hydraulische belastingen voor blokken.",
                                                                            true);

            PropertyDescriptor columnsProperty = dynamicProperties[columnPropertyIndex];

            Assert.IsInstanceOf <ExpandableArrayConverter>(columnsProperty.Converter);
            PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(columnsProperty,
                                                                            resultCategory,
                                                                            "Hydraulische belastingen voor zuilen",
                                                                            "Berekende hydraulische belastingen voor zuilen.",
                                                                            true);
        }
        public void Clone_WithOutputSet_ReturnNewInstanceWithCopiedValues()
        {
            // Setup
            var original = new StabilityStoneCoverWaveConditionsOutput(new[]
            {
                WaveConditionsTestDataGenerator.GetRandomWaveConditionsOutput()
            },
                                                                       new[]
            {
                WaveConditionsTestDataGenerator.GetRandomWaveConditionsOutput()
            });

            // Call
            object clone = original.Clone();

            // Assert
            CoreCloneAssert.AreObjectClones(original, clone, StabilityStoneCoverCloneAssert.AreClones);
        }
        public void CreateInstance_WithContext_SetsOutputAsData()
        {
            // Setup
            StabilityStoneCoverWaveConditionsOutput output = StabilityStoneCoverWaveConditionsOutputTestFactory.Create();
            var context = new StabilityStoneCoverWaveConditionsOutputContext(output, new StabilityStoneCoverWaveConditionsInput());

            using (var plugin = new StabilityStoneCoverPlugin())
            {
                PropertyInfo info = GetInfo(plugin);

                // Call
                IObjectProperties objectProperties = info.CreateInstance(context);

                // Assert
                Assert.IsInstanceOf <StabilityStoneCoverWaveConditionsOutputProperties>(objectProperties);
                Assert.AreSame(output, objectProperties.Data);
            }
        }
        public void Constructor_ExpectedValues()
        {
            // Setup
            var columnsOutput = new[]
            {
                new TestWaveConditionsOutput()
            };

            var blocksOutput = new[]
            {
                new TestWaveConditionsOutput()
            };

            // Call
            var output = new StabilityStoneCoverWaveConditionsOutput(columnsOutput, blocksOutput);

            // Assert
            Assert.IsInstanceOf <CloneableObservable>(output);
            Assert.IsInstanceOf <ICalculationOutput>(output);

            Assert.AreSame(columnsOutput, output.ColumnsOutput);
            Assert.AreSame(blocksOutput, output.BlocksOutput);
        }
示例#13
0
        public void Constructor_WithData_ReturnsExpectedValues()
        {
            // Setup
            var blocksOutput = new[]
            {
                new TestWaveConditionsOutput()
            };

            var columnsOutput = new[]
            {
                new TestWaveConditionsOutput()
            };

            StabilityStoneCoverWaveConditionsOutput stabilityStoneCoverWaveConditionsOutput = StabilityStoneCoverWaveConditionsOutputTestFactory.Create(
                columnsOutput, blocksOutput);

            // Call
            var properties = new StabilityStoneCoverWaveConditionsOutputProperties(
                stabilityStoneCoverWaveConditionsOutput, new StabilityStoneCoverWaveConditionsInput());

            // Assert
            CollectionAssert.AllItemsAreInstancesOfType(properties.Blocks, typeof(WaveConditionsOutputProperties));
            Assert.AreEqual(blocksOutput.Length, properties.Blocks.Length);

            TestWaveConditionsOutput       firstBlocksOutput     = blocksOutput[0];
            WaveConditionsOutputProperties firstBlocksProperties = properties.Blocks[0];

            Assert.AreSame(firstBlocksOutput, firstBlocksProperties.Data);

            CollectionAssert.AllItemsAreInstancesOfType(properties.Columns, typeof(WaveConditionsOutputProperties));
            Assert.AreEqual(columnsOutput.Length, properties.Columns.Length);

            TestWaveConditionsOutput       firstColumnsOutput     = columnsOutput[0];
            WaveConditionsOutputProperties firstColumnsProperties = properties.Columns[0];

            Assert.AreSame(firstColumnsOutput, firstColumnsProperties.Data);
        }
        public void IsEnabled_CalculationWithOrWithoutOutputInSubFolder_ReturnExpectedEnabledState(bool hasOutput)
        {
            // Setup
            var assessmentSection = mocks.Stub <IAssessmentSection>();

            mocks.ReplayAll();

            var failureMechanism = new StabilityStoneCoverFailureMechanism();
            var calculationGroup = new CalculationGroup();

            StabilityStoneCoverWaveConditionsOutput stabilityStoneCoverWaveConditionsOutput = null;

            if (hasOutput)
            {
                stabilityStoneCoverWaveConditionsOutput = StabilityStoneCoverWaveConditionsOutputTestFactory.Create();
            }

            calculationGroup.Children.Add(
                new CalculationGroup
            {
                Children =
                {
                    new StabilityStoneCoverWaveConditionsCalculation
                    {
                        Output = stabilityStoneCoverWaveConditionsOutput
                    }
                }
            });

            var context = new StabilityStoneCoverCalculationGroupContext(calculationGroup, null, failureMechanism, assessmentSection);

            // Call
            bool isEnabled = info.IsEnabled(context);

            // Assert
            Assert.AreEqual(hasOutput, isEnabled);
        }
 /// <summary>
 /// Method that asserts whether <paramref name="original"/> and <paramref name="clone"/>
 /// are clones.
 /// </summary>
 /// <param name="original">The original object.</param>
 /// <param name="clone">The cloned object.</param>
 /// <exception cref="AssertionException">Thrown when <paramref name="original"/> and
 /// <paramref name="clone"/> are not clones.</exception>
 public static void AreClones(StabilityStoneCoverWaveConditionsOutput original, StabilityStoneCoverWaveConditionsOutput clone)
 {
     CoreCloneAssert.AreEnumerationClones(original.BlocksOutput, clone.BlocksOutput, WaveConditionsCloneAssert.AreClones);
     CoreCloneAssert.AreEnumerationClones(original.ColumnsOutput, clone.ColumnsOutput, WaveConditionsCloneAssert.AreClones);
 }