public void CalculateForSelectedButton_OneSelected_CallsCalculateWaveHeights() { // Setup IObservableEnumerable <HydraulicBoundaryLocationCalculation> hydraulicBoundaryLocationCalculations = GetTestHydraulicBoundaryLocationCalculations(); WaveHeightCalculationsView view = ShowFullyConfiguredWaveHeightCalculationsView(hydraulicBoundaryLocationCalculations, testForm); DataGridViewControl calculationsDataGridViewControl = GetCalculationsDataGridViewControl(); DataGridViewRowCollection rows = calculationsDataGridViewControl.Rows; rows[0].Cells[calculateColumnIndex].Value = true; var guiService = mockRepository.StrictMock <IHydraulicBoundaryLocationCalculationGuiService>(); HydraulicBoundaryLocationCalculation[] performedCalculations = null; guiService.Expect(ch => ch.CalculateWaveHeights(null, null, int.MinValue, null)).IgnoreArguments().WhenCalled( invocation => { performedCalculations = ((IEnumerable <HydraulicBoundaryLocationCalculation>)invocation.Arguments[0]).ToArray(); }); mockRepository.ReplayAll(); view.CalculationGuiService = guiService; var buttonTester = new ButtonTester("CalculateForSelectedButton", testForm); // Call buttonTester.Click(); // Assert Assert.AreEqual(1, performedCalculations.Length); Assert.AreSame(hydraulicBoundaryLocationCalculations.First(), performedCalculations.First()); }
public void CloseViewForData_ForNonMatchingContext_ReturnsFalse() { // Setup const double targetProbability = 0.01; var context = new WaveHeightCalculationsForUserDefinedTargetProbabilityContext( new HydraulicBoundaryLocationCalculationsForTargetProbability(targetProbability), new AssessmentSectionStub()); var otherCalculations = new ObservableList <HydraulicBoundaryLocationCalculation>(); using (var view = new WaveHeightCalculationsView(otherCalculations, new AssessmentSectionStub(), () => targetProbability, () => "1/100")) using (var plugin = new RiskeerPlugin()) { view.Data = otherCalculations; ViewInfo info = GetViewInfo(plugin); // Call bool closeForData = info.CloseForData(view, context); // Assert Assert.IsFalse(closeForData); } }
private static WaveHeightCalculationsView ShowWaveHeightCalculationsView(IObservableEnumerable <HydraulicBoundaryLocationCalculation> calculations, IAssessmentSection assessmentSection, double targetProbability, string calculationIdentifier, Form form) { var view = new WaveHeightCalculationsView(calculations, assessmentSection, () => targetProbability, () => calculationIdentifier); form.Controls.Add(view); form.Show(); return(view); }
public void Constructor_ExpectedValues() { // Setup IAssessmentSection assessmentSection = AssessmentSectionTestHelper.CreateAssessmentSectionStub(mockRepository); mockRepository.ReplayAll(); // Call using (var view = new WaveHeightCalculationsView(new ObservableList <HydraulicBoundaryLocationCalculation>(), assessmentSection, () => 0.01, () => "1/100")) { // Assert Assert.IsInstanceOf <HydraulicBoundaryCalculationsView>(view); Assert.IsNull(view.Data); } }
public void CloseViewForData_ForOtherObjectType_ReturnsFalse() { // Setup var assessmentSectionA = new AssessmentSectionStub(); using (var view = new WaveHeightCalculationsView(new ObservableList <HydraulicBoundaryLocationCalculation>(), assessmentSectionA, () => 0.01, () => "1/100")) using (var plugin = new RiskeerPlugin()) { ViewInfo info = GetViewInfo(plugin); // Call bool closeForData = info.CloseForData(view, new object()); // Assert Assert.IsFalse(closeForData); } }
public void AfterCreate_WithGuiSet_SetsSpecificPropertiesToView() { // Setup var mocks = new MockRepository(); IGui gui = StubFactory.CreateGuiStub(mocks); gui.Stub(g => g.ViewCommands).Return(mocks.Stub <IViewCommands>()); gui.Stub(g => g.MainWindow).Return(mocks.Stub <IMainWindow>()); gui.Stub(g => g.DocumentViewController).Return(mocks.Stub <IDocumentViewController>()); gui.Stub(g => g.ProjectStore).Return(mocks.Stub <IStoreProject>()); mocks.ReplayAll(); const double targetProbability = 0.01; var calculationsForTargetProbability = new HydraulicBoundaryLocationCalculationsForTargetProbability(targetProbability); var context = new WaveHeightCalculationsForUserDefinedTargetProbabilityContext(calculationsForTargetProbability, new AssessmentSectionStub()); using (var view = new WaveHeightCalculationsView(new ObservableList <HydraulicBoundaryLocationCalculation>(), new AssessmentSectionStub(), () => targetProbability, () => "1/100")) using (var plugin = new RiskeerPlugin()) { ViewInfo info = GetViewInfo(plugin); plugin.Gui = gui; plugin.Activate(); // Call info.AfterCreate(view, context); // Assert Assert.IsInstanceOf <IHydraulicBoundaryLocationCalculationGuiService>(view.CalculationGuiService); } mocks.VerifyAll(); }
public void CalculateForSelectedButton_Always_CalculateWaveHeightsCalledAsExpected() { // Setup const string databaseFilePath = "DatabaseFilePath"; const double targetProbability = 0.01; const string calculationIdentifier = "1/100"; var assessmentSection = mockRepository.Stub <IAssessmentSection>(); var hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase { FilePath = databaseFilePath }; assessmentSection.Stub(a => a.HydraulicBoundaryDatabase).Return(hydraulicBoundaryDatabase); assessmentSection.Stub(a => a.Id).Return(string.Empty); assessmentSection.Stub(a => a.FailureMechanismContribution) .Return(FailureMechanismContributionTestFactory.CreateFailureMechanismContribution()); assessmentSection.Stub(a => a.Attach(null)).IgnoreArguments(); assessmentSection.Stub(a => a.Detach(null)).IgnoreArguments(); var guiService = mockRepository.StrictMock <IHydraulicBoundaryLocationCalculationGuiService>(); IAssessmentSection assessmentSectionValue = null; HydraulicBoundaryLocationCalculation[] performedCalculations = null; double targetProbabilityValue = double.NaN; string calculationIdentifierValue = null; guiService.Expect(ch => ch.CalculateWaveHeights(null, null, int.MinValue, null)).IgnoreArguments().WhenCalled( invocation => { performedCalculations = ((IEnumerable <HydraulicBoundaryLocationCalculation>)invocation.Arguments[0]).ToArray(); assessmentSectionValue = (IAssessmentSection)invocation.Arguments[1]; targetProbabilityValue = (double)invocation.Arguments[2]; calculationIdentifierValue = (string)invocation.Arguments[3]; }); mockRepository.ReplayAll(); IObservableEnumerable <HydraulicBoundaryLocationCalculation> hydraulicBoundaryLocationCalculations = GetTestHydraulicBoundaryLocationCalculations(); WaveHeightCalculationsView view = ShowWaveHeightCalculationsView(hydraulicBoundaryLocationCalculations, assessmentSection, targetProbability, calculationIdentifier, testForm); DataGridView calculationsDataGridView = GetCalculationsDataGridView(); DataGridViewRowCollection rows = calculationsDataGridView.Rows; rows[0].Cells[calculateColumnIndex].Value = true; view.CalculationGuiService = guiService; var button = new ButtonTester("CalculateForSelectedButton", testForm); // Call button.Click(); // Assert Assert.AreEqual(calculationIdentifier, calculationIdentifierValue); Assert.AreSame(assessmentSection, assessmentSectionValue); Assert.AreEqual(targetProbability, targetProbabilityValue); Assert.AreEqual(1, performedCalculations.Length); Assert.AreSame(hydraulicBoundaryLocationCalculations.First(), performedCalculations.First()); }