public void ContextMenuStrip_Always_CallsContextMenuBuilderMethods() { // Setup var mocks = new MockRepository(); using (var treeViewControl = new TreeViewControl()) { GrassCoverErosionOutwardsWaveConditionsOutput output = GrassCoverErosionOutwardsWaveConditionsOutputTestFactory.Create(); var context = new GrassCoverErosionOutwardsWaveConditionsOutputContext(output, new GrassCoverErosionOutwardsWaveConditionsInput()); 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 GrassCoverErosionOutwardsPlugin()) { TreeNodeInfo info = GetInfo(plugin); plugin.Gui = gui; // Call info.ContextMenuStrip(context, null, treeViewControl); } } // Assert mocks.VerifyAll(); }
public void Constructor_CalculationTypeWaveRunUpOrWaveImpact_PropertiesHaveExpectedAttributesValues( GrassCoverErosionOutwardsWaveConditionsCalculationType calculationType, string expectedDisplayName, string expectedDescription) { // Setup GrassCoverErosionOutwardsWaveConditionsOutput output = GrassCoverErosionOutwardsWaveConditionsOutputTestFactory.Create(); var input = new GrassCoverErosionOutwardsWaveConditionsInput { CalculationType = calculationType }; // Call var properties = new GrassCoverErosionOutwardsWaveConditionsOutputProperties(output, input); // Assert PropertyDescriptorCollection dynamicProperties = PropertiesTestHelper.GetAllVisiblePropertyDescriptors(properties); Assert.AreEqual(1, dynamicProperties.Count); PropertyDescriptor outputProperty = dynamicProperties[0]; PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(outputProperty, "Resultaat", expectedDisplayName, expectedDescription, true); }
public void IsEnabled_CalculationWithOrWithoutOutput_ReturnExpectedEnabledState(bool hasOutput) { // Setup var assessmentSection = mocks.Stub <IAssessmentSection>(); mocks.ReplayAll(); var failureMechanism = new GrassCoverErosionOutwardsFailureMechanism(); var calculationGroup = new CalculationGroup(); var calculation = new GrassCoverErosionOutwardsWaveConditionsCalculation(); if (hasOutput) { calculation.Output = GrassCoverErosionOutwardsWaveConditionsOutputTestFactory.Create(); } calculationGroup.Children.Add(calculation); var context = new GrassCoverErosionOutwardsCalculationGroupContext(calculationGroup, null, failureMechanism, assessmentSection); // Call bool isEnabled = info.IsEnabled(context); // Assert Assert.AreEqual(hasOutput, isEnabled); }
public void Export_CalculationsWithoutHydraulicBoundaryLocation_FileWithOnlyHeader() { // Setup const string folderName = nameof(Export_CalculationsWithoutHydraulicBoundaryLocation_FileWithOnlyHeader); string directoryPath = TestHelper.GetScratchPadPath(folderName); using (new DirectoryDisposeHelper(TestHelper.GetScratchPadPath(), folderName)) { string filePath = Path.Combine(directoryPath, "test.csv"); var calculations = new[] { new GrassCoverErosionOutwardsWaveConditionsCalculation { Output = GrassCoverErosionOutwardsWaveConditionsOutputTestFactory.Create() } }; var exporter = new GrassCoverErosionOutwardsWaveConditionsExporter(calculations, filePath, i => "1/100"); // Call bool isExported = exporter.Export(); // Assert Assert.IsTrue(isExported); Assert.IsTrue(File.Exists(filePath)); string fileContent = File.ReadAllText(filePath); string expectedText = $"Naam berekening; Naam HB locatie; X HB locatie (RD) [m]; Y HB locatie (RD) [m]; Naam voorlandprofiel; Dam gebruikt; Voorlandgeometrie gebruikt; Type bekleding; Doelkans [1/jaar]; Waterstand [m+NAP]; Golfhoogte (Hs) [m]; Golfperiode (Tp) [s]; Golfrichting t.o.v. dijknormaal [°]; Golfrichting t.o.v. Noord [°]{Environment.NewLine}"; Assert.AreEqual(expectedText, fileContent); } }
public void Export_ValidDataWithCalculationTypeAll_ValidFile() { // Setup string folderName = $"{nameof(GrassCoverErosionOutwardsWaveConditionsExporterTest)}.{nameof(Export_ValidDataWithCalculationTypeWaveImpact_ValidFile)}"; string directoryPath = TestHelper.GetScratchPadPath(folderName); using (new DirectoryDisposeHelper(TestHelper.GetScratchPadPath(), folderName)) { string filePath = Path.Combine(directoryPath, "test.csv"); var calculations = new[] { new GrassCoverErosionOutwardsWaveConditionsCalculation { Name = "aCalculation", InputParameters = { HydraulicBoundaryLocation = new HydraulicBoundaryLocation(8, "aLocation", 44, 123.456), ForeshoreProfile = new TestForeshoreProfile("foreshoreA"), LowerBoundaryRevetment = (RoundedDouble)1.384, UpperBoundaryRevetment = (RoundedDouble)11.54898963, StepSize = WaveConditionsInputStepSize.Half, LowerBoundaryWaterLevels = (RoundedDouble)1.98699, UpperBoundaryWaterLevels = (RoundedDouble)84.26548, CalculationType = GrassCoverErosionOutwardsWaveConditionsCalculationType.All }, Output = GrassCoverErosionOutwardsWaveConditionsOutputTestFactory.Create( new[] { new TestWaveConditionsOutput() }, new[] { new TestWaveConditionsOutput() }, new[] { new TestWaveConditionsOutput() }) } }; var exporter = new GrassCoverErosionOutwardsWaveConditionsExporter(calculations, filePath, i => "1/100"); // Call bool isExported = exporter.Export(); // Assert Assert.IsTrue(isExported); Assert.IsTrue(File.Exists(filePath)); string fileContent = File.ReadAllText(filePath); string expectedText = $"Naam berekening; Naam HB locatie; X HB locatie (RD) [m]; Y HB locatie (RD) [m]; Naam voorlandprofiel; Dam gebruikt; Voorlandgeometrie gebruikt; Type bekleding; Doelkans [1/jaar]; Waterstand [m+NAP]; Golfhoogte (Hs) [m]; Golfperiode (Tp) [s]; Golfrichting t.o.v. dijknormaal [°]; Golfrichting t.o.v. Noord [°]{Environment.NewLine}" + $"aCalculation; aLocation; 44.000; 123.456; foreshoreA; nee; nee; Gras (golfoploop); 1/100; 1.10; 2.20; 3.30; 4.40; 5.50{Environment.NewLine}" + $"aCalculation; aLocation; 44.000; 123.456; foreshoreA; nee; nee; Gras (golfklap); 1/100; 1.10; 2.20; 3.30; 4.40; 5.50{Environment.NewLine}" + $"aCalculation; aLocation; 44.000; 123.456; foreshoreA; nee; nee; Gras (golfklap met golfrichting); 1/100; 1.10; 2.20; 3.30; 4.40; 5.50{Environment.NewLine}"; Assert.AreEqual(expectedText, fileContent); } }
public void Constructor_ExpectedValues() { // Setup GrassCoverErosionOutwardsWaveConditionsOutput output = GrassCoverErosionOutwardsWaveConditionsOutputTestFactory.Create(); // Call var properties = new GrassCoverErosionOutwardsWaveConditionsOutputProperties(output, new GrassCoverErosionOutwardsWaveConditionsInput()); // Assert Assert.IsInstanceOf <ObjectProperties <GrassCoverErosionOutwardsWaveConditionsOutput> >(properties); Assert.AreSame(output, properties.Data); }
public void Constructor_InputNull_ThrowsArgumentNullException() { // Setup GrassCoverErosionOutwardsWaveConditionsOutput output = GrassCoverErosionOutwardsWaveConditionsOutputTestFactory.Create(); // Call TestDelegate call = () => new GrassCoverErosionOutwardsWaveConditionsOutputProperties(output, null); // Assert var exception = Assert.Throws <ArgumentNullException>(call); Assert.AreEqual("input", exception.ParamName); }
public void Constructor_WithArguments_ExpectedValues() { // Setup GrassCoverErosionOutwardsWaveConditionsOutput output = GrassCoverErosionOutwardsWaveConditionsOutputTestFactory.Create(); var input = new GrassCoverErosionOutwardsWaveConditionsInput(); // Call var context = new GrassCoverErosionOutwardsWaveConditionsOutputContext(output, input); // Assert Assert.IsInstanceOf <ObservableWrappedObjectContextBase <GrassCoverErosionOutwardsWaveConditionsOutput> >(context); Assert.AreSame(input, context.Input); Assert.AreSame(output, context.WrappedData); }
public void DynamicVisibleValidationMethod_DependingOnRelevancy_ReturnExpectedVisibility( GrassCoverErosionOutwardsWaveConditionsCalculationType calculationType, bool waveRunUpVisible, bool waveImpactVisible, bool waveImpactWithWaveDirectionVisible) { // Setup GrassCoverErosionOutwardsWaveConditionsOutput output = GrassCoverErosionOutwardsWaveConditionsOutputTestFactory.Create(); var input = new GrassCoverErosionOutwardsWaveConditionsInput { CalculationType = calculationType }; var properties = new GrassCoverErosionOutwardsWaveConditionsOutputProperties(output, input); // Call & Assert Assert.AreEqual(waveRunUpVisible, properties.DynamicVisibleValidationMethod(nameof(properties.WaveRunUpOutput))); Assert.AreEqual(waveImpactVisible, properties.DynamicVisibleValidationMethod(nameof(properties.WaveImpactOutput))); Assert.AreEqual(waveImpactWithWaveDirectionVisible, properties.DynamicVisibleValidationMethod(nameof(properties.WaveImpactWithWaveDirectionOutput))); Assert.IsFalse(properties.DynamicVisibleValidationMethod(null)); }
public void CreateInstance_WithContext_SetsOutputAsData() { // Setup GrassCoverErosionOutwardsWaveConditionsOutput output = GrassCoverErosionOutwardsWaveConditionsOutputTestFactory.Create(); var context = new GrassCoverErosionOutwardsWaveConditionsOutputContext(output, new GrassCoverErosionOutwardsWaveConditionsInput()); using (var plugin = new GrassCoverErosionOutwardsPlugin()) { PropertyInfo info = GetInfo(plugin); // Call IObjectProperties objectProperties = info.CreateInstance(context); // Assert Assert.IsInstanceOf <GrassCoverErosionOutwardsWaveConditionsOutputProperties>(objectProperties); Assert.AreSame(output, objectProperties.Data); } }
public void Constructor_CalculationTypeAll_PropertiesHaveExpectedAttributesValues() { // Setup GrassCoverErosionOutwardsWaveConditionsOutput output = GrassCoverErosionOutwardsWaveConditionsOutputTestFactory.Create(); var input = new GrassCoverErosionOutwardsWaveConditionsInput { CalculationType = GrassCoverErosionOutwardsWaveConditionsCalculationType.All }; // Precondition Assert.AreEqual(GrassCoverErosionOutwardsWaveConditionsCalculationType.All, input.CalculationType); // Call var properties = new GrassCoverErosionOutwardsWaveConditionsOutputProperties(output, input); // Assert PropertyDescriptorCollection dynamicProperties = PropertiesTestHelper.GetAllVisiblePropertyDescriptors(properties); Assert.AreEqual(3, dynamicProperties.Count); PropertyDescriptor waveRunUpProperty = dynamicProperties[waveRunUpPropertyIndex]; PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(waveRunUpProperty, "Resultaat", "Hydraulische belastingen voor golfoploop", "Berekende hydraulische belastingen voor golfoploop.", true); PropertyDescriptor waveImpactProperty = dynamicProperties[waveImpactPropertyIndex]; PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(waveImpactProperty, "Resultaat", "Hydraulische belastingen voor golfklap", "Berekende hydraulische belastingen voor golfklap zonder invloed van de golfinvalshoek.", true); PropertyDescriptor waveImpactWithWaveDirectionProperty = dynamicProperties[waveImpactWithWaveDirectionPropertyIndex]; PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(waveImpactWithWaveDirectionProperty, "Resultaat", "Hydraulische belastingen voor golfklap met golfrichting", "Berekende hydraulische belastingen voor golfklap met invloed van de golfinvalshoek.", true); }
public void Data_WithCalculationOutput_ReturnsExpectedValues() { // Setup var waveRunUpOutput = new[] { new TestWaveConditionsOutput() }; var waveImpactOutput = new[] { new TestWaveConditionsOutput() }; var waveImpactWithWaveDirectionOutput = new[] { new TestWaveConditionsOutput() }; GrassCoverErosionOutwardsWaveConditionsOutput output = GrassCoverErosionOutwardsWaveConditionsOutputTestFactory.Create(waveRunUpOutput, waveImpactOutput, waveImpactWithWaveDirectionOutput); // Call var properties = new GrassCoverErosionOutwardsWaveConditionsOutputProperties(output, new GrassCoverErosionOutwardsWaveConditionsInput()); // Assert CollectionAssert.AllItemsAreInstancesOfType(properties.WaveRunUpOutput, typeof(WaveConditionsOutputProperties)); Assert.AreEqual(waveRunUpOutput.Length, properties.WaveRunUpOutput.Length); WaveConditionsOutputProperties waveRunUpProperty = properties.WaveRunUpOutput[0]; Assert.AreSame(waveRunUpOutput[0], waveRunUpProperty.Data); CollectionAssert.AllItemsAreInstancesOfType(properties.WaveImpactOutput, typeof(WaveConditionsOutputProperties)); Assert.AreEqual(waveImpactOutput.Length, properties.WaveImpactOutput.Length); WaveConditionsOutputProperties waveImpactProperties = properties.WaveImpactOutput[0]; Assert.AreSame(waveImpactOutput[0], waveImpactProperties.Data); CollectionAssert.AllItemsAreInstancesOfType(properties.WaveImpactWithWaveDirectionOutput, typeof(WaveConditionsOutputProperties)); Assert.AreEqual(waveImpactWithWaveDirectionOutput.Length, properties.WaveImpactWithWaveDirectionOutput.Length); WaveConditionsOutputProperties waveImpactWithWaveDirectionOutputProperties = properties.WaveImpactWithWaveDirectionOutput[0]; Assert.AreSame(waveImpactWithWaveDirectionOutput[0], waveImpactWithWaveDirectionOutputProperties.Data); }
private static GrassCoverErosionOutwardsFailureMechanism CreateGrassCoverErosionOutwardsFailureMechanismWithAllUpdateForeshoreProfileScenarios( ForeshoreProfile unaffectedForeshoreProfile) { GrassCoverErosionOutwardsFailureMechanism grassCoverErosionOutwardsFailureMechanism = TestDataGenerator.GetGrassCoverErosionOutwardsFailureMechanismWithAllCalculationConfigurations(); grassCoverErosionOutwardsFailureMechanism.ForeshoreProfiles.AddRange(new[] { unaffectedForeshoreProfile }, sourceFilePath); var unaffectedCalculation = new GrassCoverErosionOutwardsWaveConditionsCalculation { InputParameters = { ForeshoreProfile = unaffectedForeshoreProfile }, Output = GrassCoverErosionOutwardsWaveConditionsOutputTestFactory.Create() }; grassCoverErosionOutwardsFailureMechanism.CalculationsGroup.Children.Add(unaffectedCalculation); return(grassCoverErosionOutwardsFailureMechanism); }
public void IsEnabled_CalculationWithOutput_ReturnTrue() { // Setup var assessmentSection = mocks.Stub <IAssessmentSection>(); mocks.ReplayAll(); var context = new GrassCoverErosionOutwardsWaveConditionsCalculationContext( new GrassCoverErosionOutwardsWaveConditionsCalculation { Output = GrassCoverErosionOutwardsWaveConditionsOutputTestFactory.Create() }, new CalculationGroup(), new GrassCoverErosionOutwardsFailureMechanism(), assessmentSection); // Call bool isEnabled = info.IsEnabled(context); // Assert Assert.IsTrue(isEnabled); }
private static GrassCoverErosionOutwardsFailureMechanism CreateFullyConfiguredFailureMechanism() { var section1 = new FailureMechanismSection("A", new[] { new Point2D(-1, 0), new Point2D(2, 0) }); var section2 = new FailureMechanismSection("B", new[] { new Point2D(2, 0), new Point2D(4, 0) }); var failureMechanism = new GrassCoverErosionOutwardsFailureMechanism(); failureMechanism.SetSections(new[] { section1, section2 }, "some/path/to/sections"); var hydraulicBoundaryLocation = new HydraulicBoundaryLocation(1, string.Empty, 0, 0); var calculation = new GrassCoverErosionOutwardsWaveConditionsCalculation(); var calculationWithOutput = new GrassCoverErosionOutwardsWaveConditionsCalculation { Output = GrassCoverErosionOutwardsWaveConditionsOutputTestFactory.Create() }; var calculationWithOutputAndHydraulicBoundaryLocation = new GrassCoverErosionOutwardsWaveConditionsCalculation { InputParameters = { HydraulicBoundaryLocation = hydraulicBoundaryLocation }, Output = GrassCoverErosionOutwardsWaveConditionsOutputTestFactory.Create() }; var calculationWithHydraulicBoundaryLocation = new GrassCoverErosionOutwardsWaveConditionsCalculation { InputParameters = { HydraulicBoundaryLocation = hydraulicBoundaryLocation } }; var subCalculation = new GrassCoverErosionOutwardsWaveConditionsCalculation(); var subCalculationWithOutput = new GrassCoverErosionOutwardsWaveConditionsCalculation { Output = GrassCoverErosionOutwardsWaveConditionsOutputTestFactory.Create() }; var subCalculationWithOutputAndHydraulicBoundaryLocation = new GrassCoverErosionOutwardsWaveConditionsCalculation { InputParameters = { HydraulicBoundaryLocation = hydraulicBoundaryLocation }, Output = GrassCoverErosionOutwardsWaveConditionsOutputTestFactory.Create() }; var subCalculationWithHydraulicBoundaryLocation = new GrassCoverErosionOutwardsWaveConditionsCalculation { InputParameters = { HydraulicBoundaryLocation = hydraulicBoundaryLocation } }; failureMechanism.CalculationsGroup.Children.Add(calculation); failureMechanism.CalculationsGroup.Children.Add(calculationWithOutput); failureMechanism.CalculationsGroup.Children.Add(calculationWithOutputAndHydraulicBoundaryLocation); failureMechanism.CalculationsGroup.Children.Add(calculationWithHydraulicBoundaryLocation); failureMechanism.CalculationsGroup.Children.Add(new CalculationGroup { Children = { subCalculation, subCalculationWithOutput, subCalculationWithOutputAndHydraulicBoundaryLocation, subCalculationWithHydraulicBoundaryLocation } }); return(failureMechanism); }