Index: Core/Common/src/Core.Common.Gui/Forms/MainWindow/MainWindow.xaml.cs
===================================================================
diff -u -r770547be3030f73473282742f9a63ca6805ff74b -rf9058d5293ecb785069c5b6b4c554dc6800ee771
--- Core/Common/src/Core.Common.Gui/Forms/MainWindow/MainWindow.xaml.cs (.../MainWindow.xaml.cs) (revision 770547be3030f73473282742f9a63ca6805ff74b)
+++ Core/Common/src/Core.Common.Gui/Forms/MainWindow/MainWindow.xaml.cs (.../MainWindow.xaml.cs) (revision f9058d5293ecb785069c5b6b4c554dc6800ee771)
@@ -233,7 +233,7 @@
{
if ((propertyGrid == null) || (propertyGrid.IsDisposed))
{
- propertyGrid = new PropertyGridView.PropertyGridView(Gui);
+ propertyGrid = new PropertyGridView.PropertyGridView(Gui, Gui);
}
propertyGrid.Text = Properties.Resources.Properties_Title;
Index: Core/Common/src/Core.Common.Gui/Forms/PropertyGridView/PropertyGridView.cs
===================================================================
diff -u -r71dede5dbf330ad9b3f552c5bfd09f7b09b3e14c -rf9058d5293ecb785069c5b6b4c554dc6800ee771
--- Core/Common/src/Core.Common.Gui/Forms/PropertyGridView/PropertyGridView.cs (.../PropertyGridView.cs) (revision 71dede5dbf330ad9b3f552c5bfd09f7b09b3e14c)
+++ Core/Common/src/Core.Common.Gui/Forms/PropertyGridView/PropertyGridView.cs (.../PropertyGridView.cs) (revision f9058d5293ecb785069c5b6b4c554dc6800ee771)
@@ -17,17 +17,19 @@
///
private delegate void ArgumentlessDelegate();
+ private readonly IApplicationSelection applicationSelection;
private readonly IGui gui;
private IObservable observable;
- public PropertyGridView(IGui gui)
+ public PropertyGridView(IGui gui, IApplicationSelection applicationSelection)
{
HideTabsButton();
FixDescriptionArea();
TranslateToolTips();
PropertySort = PropertySort.Categorized;
+ this.applicationSelection = applicationSelection;
this.gui = gui;
gui.SelectionChanged += GuiSelectionChanged;
@@ -66,9 +68,9 @@
protected override void Dispose(bool disposing)
{
- if (gui != null)
+ if (applicationSelection != null)
{
- gui.SelectionChanged -= GuiSelectionChanged;
+ applicationSelection.SelectionChanged -= GuiSelectionChanged;
}
if (observable != null)
@@ -86,7 +88,7 @@
observable.Detach(this);
}
- var selection = gui.Selection;
+ var selection = applicationSelection.Selection;
if (selection == null)
{
SelectedObject = null;
Index: Core/Common/src/Core.Common.Gui/RingtoetsGui.cs
===================================================================
diff -u -r54693eb17dc16b9d1fd390842c05b2ad823ab97b -rf9058d5293ecb785069c5b6b4c554dc6800ee771
--- Core/Common/src/Core.Common.Gui/RingtoetsGui.cs (.../RingtoetsGui.cs) (revision 54693eb17dc16b9d1fd390842c05b2ad823ab97b)
+++ Core/Common/src/Core.Common.Gui/RingtoetsGui.cs (.../RingtoetsGui.cs) (revision f9058d5293ecb785069c5b6b4c554dc6800ee771)
@@ -40,7 +40,7 @@
{
private static readonly ILog log = LogManager.GetLogger(typeof(RingtoetsGui));
- private static RingtoetsGui instance;
+ private static bool isAlreadyRunningInstanceOfIGui;
private static string instanceCreationStackTrace;
private AvalonDockDockingManager toolWindowViewsDockingManager;
@@ -53,16 +53,16 @@
public RingtoetsGui(ApplicationCore applicationCore = null, GuiCoreSettings fixedSettings = null)
{
// error detection code, make sure we use only a single instance of RingtoetsGui at a time
- if (instance != null)
+ if (isAlreadyRunningInstanceOfIGui)
{
- instance = null; // reset to that the consequent creations won't fail.
+ isAlreadyRunningInstanceOfIGui = false; // reset to that the consequent creations won't fail.
throw new InvalidOperationException(Resources.RingtoetsGui_Only_a_single_instance_of_Ringtoets_is_allowed_at_the_same_time_per_process_Make_sure_that_the_previous_instance_was_disposed_correctly_stack_trace + instanceCreationStackTrace);
}
ApplicationCore = applicationCore ?? new ApplicationCore();
FixedSettings = fixedSettings ?? new GuiCoreSettings();
- instance = this;
+ isAlreadyRunningInstanceOfIGui = true;
instanceCreationStackTrace = new StackTrace().ToString();
ViewPropertyEditor.Gui = this;
@@ -309,7 +309,7 @@
GC.Collect();
instanceCreationStackTrace = "";
- instance = null;
+ isAlreadyRunningInstanceOfIGui = false;
}
private void DeactivatePlugin(GuiPlugin plugin)
Index: Core/Plugins/src/Core.Plugins.OxyPlot/Commands/OpenChartViewCommand.cs
===================================================================
diff -u -r74cd1965818ae9b23da6cad8776b7da2868be4a7 -rf9058d5293ecb785069c5b6b4c554dc6800ee771
--- Core/Plugins/src/Core.Plugins.OxyPlot/Commands/OpenChartViewCommand.cs (.../OpenChartViewCommand.cs) (revision 74cd1965818ae9b23da6cad8776b7da2868be4a7)
+++ Core/Plugins/src/Core.Plugins.OxyPlot/Commands/OpenChartViewCommand.cs (.../OpenChartViewCommand.cs) (revision f9058d5293ecb785069c5b6b4c554dc6800ee771)
@@ -1,6 +1,8 @@
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
+
+using Core.Common.Controls.Commands;
using Core.Common.Gui;
using Core.Components.Charting.Data;
using Core.Plugins.OxyPlot.Forms;
@@ -10,8 +12,15 @@
///
/// This class describes the command for opening a with some arbitrary data.
///
- public class OpenChartViewCommand : IGuiCommand {
+ public class OpenChartViewCommand : ICommand
+ {
+ private readonly IDocumentViewController documentViewController;
+ public OpenChartViewCommand(IDocumentViewController documentViewController)
+ {
+ this.documentViewController = documentViewController;
+ }
+
public bool Enabled
{
get
@@ -28,8 +37,6 @@
}
}
- public IGui Gui { get; set; }
-
public void Execute(params object[] arguments)
{
var line = new LineData(new Collection>
@@ -60,7 +67,7 @@
new Tuple(0.5, 1.6),
new Tuple(1.0, 2.1)
});
- Gui.DocumentViewsResolver.OpenViewForData(new ChartDataCollection( new List { area, clearArea, line, points }));
+ documentViewController.DocumentViewsResolver.OpenViewForData(new ChartDataCollection(new List { area, clearArea, line, points }));
}
}
}
\ No newline at end of file
Index: Core/Plugins/src/Core.Plugins.OxyPlot/OxyPlotGuiPlugin.cs
===================================================================
diff -u -r74cd1965818ae9b23da6cad8776b7da2868be4a7 -rf9058d5293ecb785069c5b6b4c554dc6800ee771
--- Core/Plugins/src/Core.Plugins.OxyPlot/OxyPlotGuiPlugin.cs (.../OxyPlotGuiPlugin.cs) (revision 74cd1965818ae9b23da6cad8776b7da2868be4a7)
+++ Core/Plugins/src/Core.Plugins.OxyPlot/OxyPlotGuiPlugin.cs (.../OxyPlotGuiPlugin.cs) (revision f9058d5293ecb785069c5b6b4c554dc6800ee771)
@@ -34,7 +34,7 @@
public override void Activate()
{
legendController = CreateLegendController(this);
- chartingRibbon = CreateRibbon(legendController);
+ chartingRibbon = CreateRibbon(legendController, Gui);
legendController.ToggleLegend();
Gui.ActiveViewChanged += GuiOnActiveViewChanged;
@@ -96,12 +96,13 @@
///
/// The to use for the
/// .
+ /// The controller for Document Views.
/// A new instance.
- private static ChartingRibbon CreateRibbon(LegendController legendController)
+ private static ChartingRibbon CreateRibbon(LegendController legendController, IDocumentViewController documentViewController)
{
return new ChartingRibbon
{
- OpenChartViewCommand = new OpenChartViewCommand(),
+ OpenChartViewCommand = new OpenChartViewCommand(documentViewController),
ToggleLegendViewCommand = new ToggleLegendViewCommand(legendController)
};
}
Index: Core/Plugins/test/Core.Plugins.OxyPlot.Test/ChartingRibbonTest.cs
===================================================================
diff -u -r18a617da943368e8294aa31528d2e2379d7318cc -rf9058d5293ecb785069c5b6b4c554dc6800ee771
--- Core/Plugins/test/Core.Plugins.OxyPlot.Test/ChartingRibbonTest.cs (.../ChartingRibbonTest.cs) (revision 18a617da943368e8294aa31528d2e2379d7318cc)
+++ Core/Plugins/test/Core.Plugins.OxyPlot.Test/ChartingRibbonTest.cs (.../ChartingRibbonTest.cs) (revision f9058d5293ecb785069c5b6b4c554dc6800ee771)
@@ -1,5 +1,7 @@
using System.Linq;
using System.Windows;
+
+using Core.Common.Gui;
using Core.Components.Charting;
using Core.Plugins.OxyPlot.Commands;
using Core.Plugins.OxyPlot.Legend;
@@ -32,8 +34,13 @@
public void Commands_CommandsAssigned_ReturnsAssignedCommands()
{
// Setup
- using(var oxyPlotGuiPlugin = new OxyPlotGuiPlugin()) {
- var openChartViewCommand = new OpenChartViewCommand();
+ var mocks = new MockRepository();
+ var documentViewController = mocks.Stub();
+ mocks.ReplayAll();
+
+ using(var oxyPlotGuiPlugin = new OxyPlotGuiPlugin())
+ {
+ var openChartViewCommand = new OpenChartViewCommand(documentViewController);
var toggleLegendViewCommand = new ToggleLegendViewCommand(new LegendController(oxyPlotGuiPlugin));
var ribbon = new ChartingRibbon
{
@@ -47,6 +54,7 @@
// Assert
CollectionAssert.AreEqual(new ICommand[]{openChartViewCommand, toggleLegendViewCommand}, commands);
}
+ mocks.VerifyAll();
}
[Test]
Index: Core/Plugins/test/Core.Plugins.OxyPlot.Test/Commands/OpenChartViewCommandTest.cs
===================================================================
diff -u -r03d5df1364557b6f4a184908affb7754e58b3fa4 -rf9058d5293ecb785069c5b6b4c554dc6800ee771
--- Core/Plugins/test/Core.Plugins.OxyPlot.Test/Commands/OpenChartViewCommandTest.cs (.../OpenChartViewCommandTest.cs) (revision 03d5df1364557b6f4a184908affb7754e58b3fa4)
+++ Core/Plugins/test/Core.Plugins.OxyPlot.Test/Commands/OpenChartViewCommandTest.cs (.../OpenChartViewCommandTest.cs) (revision f9058d5293ecb785069c5b6b4c554dc6800ee771)
@@ -1,9 +1,11 @@
using Core.Common.Gui;
using Core.Plugins.OxyPlot.Commands;
+
using NUnit.Framework;
+
using Rhino.Mocks;
-namespace Core.Plugins.OxyPlot.Test
+namespace Core.Plugins.OxyPlot.Test.Commands
{
[TestFixture]
public class OpenChartViewCommandTest
@@ -13,15 +15,14 @@
{
// Setup
var mocks = new MockRepository();
- var guiMock = mocks.StrictMock();
+ var guiMock = mocks.StrictMock();
var viewResolverMock = mocks.StrictMock();
guiMock.Expect(g => g.DocumentViewsResolver).Return(viewResolverMock);
viewResolverMock.Expect(vr => vr.OpenViewForData(null)).IgnoreArguments().Return(true);
mocks.ReplayAll();
- var command = new OpenChartViewCommand();
- command.Gui = guiMock;
+ var command = new OpenChartViewCommand(guiMock);
// Call
command.Execute();
@@ -34,20 +35,36 @@
public void Enabled_Always_ReturnsTrue()
{
// Setup
- var command = new OpenChartViewCommand();
+ var mocks = new MockRepository();
+ var documentViewControler = mocks.Stub();
+ mocks.ReplayAll();
- // Call & Assert
- Assert.IsTrue(command.Enabled);
+ var command = new OpenChartViewCommand(documentViewControler);
+
+ // Call
+ var isEnabled = command.Enabled;
+
+ // Assert
+ Assert.IsTrue(isEnabled);
+ mocks.VerifyAll();
}
[Test]
public void Checked_Always_ReturnsFalse()
{
// Setup
- var command = new OpenChartViewCommand();
+ var mocks = new MockRepository();
+ var documentViewController = mocks.Stub();
+ mocks.ReplayAll();
- // Call & Assert
- Assert.IsFalse(command.Checked);
+ var command = new OpenChartViewCommand(documentViewController);
+
+ // Call
+ var isChecked = command.Checked;
+
+ // Assert
+ Assert.IsFalse(isChecked);
+ mocks.VerifyAll();
}
}
}
\ No newline at end of file
Index: Demo/Ringtoets/src/Demo.Ringtoets/Commands/AddNewDemoDikeAssessmentSectionCommand.cs
===================================================================
diff -u -rdbf6ecaa927e26f430d7c73290df7e825ec04744 -rf9058d5293ecb785069c5b6b4c554dc6800ee771
--- Demo/Ringtoets/src/Demo.Ringtoets/Commands/AddNewDemoDikeAssessmentSectionCommand.cs (.../AddNewDemoDikeAssessmentSectionCommand.cs) (revision dbf6ecaa927e26f430d7c73290df7e825ec04744)
+++ Demo/Ringtoets/src/Demo.Ringtoets/Commands/AddNewDemoDikeAssessmentSectionCommand.cs (.../AddNewDemoDikeAssessmentSectionCommand.cs) (revision f9058d5293ecb785069c5b6b4c554dc6800ee771)
@@ -1,6 +1,8 @@
using System;
using System.IO;
using System.Linq;
+
+using Core.Common.Controls.Commands;
using Core.Common.Gui;
using Core.Common.Utils.Reflection;
using Ringtoets.Integration.Data;
@@ -12,8 +14,15 @@
///
/// Command that adds a new with demo data to the project tree.
///
- public class AddNewDemoDikeAssessmentSectionCommand : IGuiCommand
+ public class AddNewDemoDikeAssessmentSectionCommand : ICommand
{
+ private readonly IProjectOwner projectOwner;
+
+ public AddNewDemoDikeAssessmentSectionCommand(IProjectOwner projectOwner)
+ {
+ this.projectOwner = projectOwner;
+ }
+
public bool Enabled
{
get
@@ -30,11 +39,9 @@
}
}
- public IGui Gui { get; set; }
-
public void Execute(params object[] arguments)
{
- var project = Gui.Project;
+ var project = projectOwner.Project;
project.Items.Add(CreateNewDemoAssessmentSection());
project.NotifyObservers();
}
Index: Demo/Ringtoets/src/Demo.Ringtoets/Commands/AddNewDemoDuneAssessmentSectionCommand.cs
===================================================================
diff -u -rdbf6ecaa927e26f430d7c73290df7e825ec04744 -rf9058d5293ecb785069c5b6b4c554dc6800ee771
--- Demo/Ringtoets/src/Demo.Ringtoets/Commands/AddNewDemoDuneAssessmentSectionCommand.cs (.../AddNewDemoDuneAssessmentSectionCommand.cs) (revision dbf6ecaa927e26f430d7c73290df7e825ec04744)
+++ Demo/Ringtoets/src/Demo.Ringtoets/Commands/AddNewDemoDuneAssessmentSectionCommand.cs (.../AddNewDemoDuneAssessmentSectionCommand.cs) (revision f9058d5293ecb785069c5b6b4c554dc6800ee771)
@@ -1,13 +1,21 @@
-using Core.Common.Gui;
+using Core.Common.Controls.Commands;
+using Core.Common.Gui;
using Ringtoets.Integration.Data;
namespace Demo.Ringtoets.Commands
{
///
/// Command that adds a new with demo data to the project tree.
///
- public class AddNewDemoDuneAssessmentSectionCommand : IGuiCommand
+ public class AddNewDemoDuneAssessmentSectionCommand : ICommand
{
+ private readonly IProjectOwner projectOwner;
+
+ public AddNewDemoDuneAssessmentSectionCommand(IProjectOwner projectOwner)
+ {
+ this.projectOwner = projectOwner;
+ }
+
public bool Enabled
{
get
@@ -24,11 +32,9 @@
}
}
- public IGui Gui { get; set; }
-
public void Execute(params object[] arguments)
{
- var project = Gui.Project;
+ var project = projectOwner.Project;
project.Items.Add(CreateNewDemoAssessmentSection());
project.NotifyObservers();
}
Index: Demo/Ringtoets/src/Demo.Ringtoets/Commands/OpenMapViewCommand.cs
===================================================================
diff -u -rd182ae6d1a6590c4b52b17fd1f59c5b7c3780b48 -rf9058d5293ecb785069c5b6b4c554dc6800ee771
--- Demo/Ringtoets/src/Demo.Ringtoets/Commands/OpenMapViewCommand.cs (.../OpenMapViewCommand.cs) (revision d182ae6d1a6590c4b52b17fd1f59c5b7c3780b48)
+++ Demo/Ringtoets/src/Demo.Ringtoets/Commands/OpenMapViewCommand.cs (.../OpenMapViewCommand.cs) (revision f9058d5293ecb785069c5b6b4c554dc6800ee771)
@@ -1,5 +1,7 @@
using System;
using System.Collections.Generic;
+
+using Core.Common.Controls.Commands;
using Core.Common.Gui;
using Core.Components.DotSpatial.Data;
using Core.Plugins.DotSpatial.Forms;
@@ -9,8 +11,15 @@
///
/// The command for opening a with some arbitrary data.
///
- public class OpenMapViewCommand : IGuiCommand
+ public class OpenMapViewCommand : ICommand
{
+ private readonly IDocumentViewController documentViewController;
+
+ public OpenMapViewCommand(IDocumentViewController documentViewController)
+ {
+ this.documentViewController = documentViewController;
+ }
+
public bool Enabled
{
get
@@ -27,8 +36,6 @@
}
}
- public IGui Gui { get; set; }
-
public void Execute(params object[] arguments)
{
var data = new MapData();
@@ -52,7 +59,7 @@
}
}
- Gui.DocumentViewsResolver.OpenViewForData(data);
+ documentViewController.DocumentViewsResolver.OpenViewForData(data);
}
}
}
\ No newline at end of file
Index: Demo/Ringtoets/src/Demo.Ringtoets/GUIs/DemoProjectGuiPlugin.cs
===================================================================
diff -u -rd0615029ee52b3dbe0eda73c8cf9ba40e4353ee4 -rf9058d5293ecb785069c5b6b4c554dc6800ee771
--- Demo/Ringtoets/src/Demo.Ringtoets/GUIs/DemoProjectGuiPlugin.cs (.../DemoProjectGuiPlugin.cs) (revision d0615029ee52b3dbe0eda73c8cf9ba40e4353ee4)
+++ Demo/Ringtoets/src/Demo.Ringtoets/GUIs/DemoProjectGuiPlugin.cs (.../DemoProjectGuiPlugin.cs) (revision f9058d5293ecb785069c5b6b4c554dc6800ee771)
@@ -12,7 +12,7 @@
{
get
{
- return new Ribbons.RingtoetsDemoProjectRibbon();
+ return new Ribbons.RingtoetsDemoProjectRibbon(Gui, Gui);
}
}
}
Index: Demo/Ringtoets/src/Demo.Ringtoets/Ribbons/RingtoetsDemoProjectRibbon.xaml.cs
===================================================================
diff -u -rd182ae6d1a6590c4b52b17fd1f59c5b7c3780b48 -rf9058d5293ecb785069c5b6b4c554dc6800ee771
--- Demo/Ringtoets/src/Demo.Ringtoets/Ribbons/RingtoetsDemoProjectRibbon.xaml.cs (.../RingtoetsDemoProjectRibbon.xaml.cs) (revision d182ae6d1a6590c4b52b17fd1f59c5b7c3780b48)
+++ Demo/Ringtoets/src/Demo.Ringtoets/Ribbons/RingtoetsDemoProjectRibbon.xaml.cs (.../RingtoetsDemoProjectRibbon.xaml.cs) (revision f9058d5293ecb785069c5b6b4c554dc6800ee771)
@@ -1,6 +1,7 @@
using System.Collections.Generic;
using System.Windows;
using Core.Common.Controls.Commands;
+using Core.Common.Gui;
using Core.Common.Gui.Forms;
using Demo.Ringtoets.Commands;
using Fluent;
@@ -14,13 +15,13 @@
{
private readonly ICommand addNewDikeAssessmentSection, addNewDuneAssessmentSection, openMapViewCommand;
- public RingtoetsDemoProjectRibbon()
+ public RingtoetsDemoProjectRibbon(IProjectOwner projectOwner, IDocumentViewController documentViewController)
{
InitializeComponent();
- addNewDikeAssessmentSection = new AddNewDemoDikeAssessmentSectionCommand();
- addNewDuneAssessmentSection = new AddNewDemoDuneAssessmentSectionCommand();
- openMapViewCommand = new OpenMapViewCommand();
+ addNewDikeAssessmentSection = new AddNewDemoDikeAssessmentSectionCommand(projectOwner);
+ addNewDuneAssessmentSection = new AddNewDemoDuneAssessmentSectionCommand(projectOwner);
+ openMapViewCommand = new OpenMapViewCommand(documentViewController);
}
public IEnumerable Commands
Index: Demo/Ringtoets/test/Demo.Ringtoets.Test/Commands/AddNewDemoDikeAssessmentSectionCommandTest.cs
===================================================================
diff -u -rdbf6ecaa927e26f430d7c73290df7e825ec04744 -rf9058d5293ecb785069c5b6b4c554dc6800ee771
--- Demo/Ringtoets/test/Demo.Ringtoets.Test/Commands/AddNewDemoDikeAssessmentSectionCommandTest.cs (.../AddNewDemoDikeAssessmentSectionCommandTest.cs) (revision dbf6ecaa927e26f430d7c73290df7e825ec04744)
+++ Demo/Ringtoets/test/Demo.Ringtoets.Test/Commands/AddNewDemoDikeAssessmentSectionCommandTest.cs (.../AddNewDemoDikeAssessmentSectionCommandTest.cs) (revision f9058d5293ecb785069c5b6b4c554dc6800ee771)
@@ -1,7 +1,7 @@
using System.Linq;
using Core.Common.Base;
using Core.Common.Base.Data;
-using Core.Common.Base.Plugin;
+using Core.Common.Controls.Commands;
using Core.Common.Gui;
using Demo.Ringtoets.Commands;
using NUnit.Framework;
@@ -19,40 +19,38 @@
[Test]
public void DefaultConstructor_ExpectedValues()
{
+ // Setup
+ var mocks = new MockRepository();
+ var projectOwner = mocks.Stub();
+ mocks.ReplayAll();
+
// Call
- var command = new AddNewDemoDikeAssessmentSectionCommand();
+ var command = new AddNewDemoDikeAssessmentSectionCommand(projectOwner);
// Assert
- Assert.IsInstanceOf(command);
+ Assert.IsInstanceOf(command);
Assert.IsTrue(command.Enabled);
Assert.IsFalse(command.Checked);
- Assert.IsNull(command.Gui);
+ mocks.VerifyAll();
}
[Test]
public void Execute_GuiIsProperlyInitialized_AddNewDikeAssessmentSectionWithDemoDataToRootProject()
{
// Setup
+ var project = new Project();
+
var mocks = new MockRepository();
- var guiMock = mocks.Stub();
+ var projectOwnerStub = mocks.Stub();
+ projectOwnerStub.Project = project;
- var applicationCore = new ApplicationCore();
- Expect.Call(guiMock.ApplicationCore).Return(applicationCore).Repeat.Any();
-
var observerMock = mocks.StrictMock();
observerMock.Expect(o => o.UpdateObserver());
mocks.ReplayAll();
- var project = new Project();
+ var command = new AddNewDemoDikeAssessmentSectionCommand(projectOwnerStub);
- guiMock.Project = project;
-
- var command = new AddNewDemoDikeAssessmentSectionCommand
- {
- Gui = guiMock
- };
-
project.Attach(observerMock);
// Call
Index: Demo/Ringtoets/test/Demo.Ringtoets.Test/Commands/AddNewDemoDuneAssessmentSectionCommandTest.cs
===================================================================
diff -u -rdbf6ecaa927e26f430d7c73290df7e825ec04744 -rf9058d5293ecb785069c5b6b4c554dc6800ee771
--- Demo/Ringtoets/test/Demo.Ringtoets.Test/Commands/AddNewDemoDuneAssessmentSectionCommandTest.cs (.../AddNewDemoDuneAssessmentSectionCommandTest.cs) (revision dbf6ecaa927e26f430d7c73290df7e825ec04744)
+++ Demo/Ringtoets/test/Demo.Ringtoets.Test/Commands/AddNewDemoDuneAssessmentSectionCommandTest.cs (.../AddNewDemoDuneAssessmentSectionCommandTest.cs) (revision f9058d5293ecb785069c5b6b4c554dc6800ee771)
@@ -1,6 +1,6 @@
using Core.Common.Base;
using Core.Common.Base.Data;
-using Core.Common.Base.Plugin;
+using Core.Common.Controls.Commands;
using Core.Common.Gui;
using Demo.Ringtoets.Commands;
using NUnit.Framework;
@@ -13,42 +13,40 @@
public class AddNewDemoDuneAssessmentSectionCommandTest
{
[Test]
- public void DefaultConstructor_ExpectedValues()
+ public void ParameteredConstructor_ExpectedValues()
{
+ // Setup
+ var mocks = new MockRepository();
+ var projectOwner = mocks.Stub();
+ mocks.ReplayAll();
+
// Call
- var command = new AddNewDemoDuneAssessmentSectionCommand();
+ var command = new AddNewDemoDuneAssessmentSectionCommand(projectOwner);
// Assert
- Assert.IsInstanceOf(command);
+ Assert.IsInstanceOf(command);
Assert.IsTrue(command.Enabled);
Assert.IsFalse(command.Checked);
- Assert.IsNull(command.Gui);
+ mocks.VerifyAll();
}
[Test]
public void Execute_GuiIsProperlyInitialized_AddNewDuneAssessmentSectionWithDemoDataToRootProject()
{
// Setup
+ var project = new Project();
+
var mocks = new MockRepository();
- var guiMock = mocks.Stub();
+ var projectOwnerStub = mocks.Stub();
+ projectOwnerStub.Project = project;
- var applicationCore = new ApplicationCore();
- Expect.Call(guiMock.ApplicationCore).Return(applicationCore).Repeat.Any();
-
var observerMock = mocks.StrictMock();
observerMock.Expect(o => o.UpdateObserver());
mocks.ReplayAll();
- var project = new Project();
+ var command = new AddNewDemoDuneAssessmentSectionCommand(projectOwnerStub);
- guiMock.Project = project;
-
- var command = new AddNewDemoDuneAssessmentSectionCommand
- {
- Gui = guiMock
- };
-
project.Attach(observerMock);
// Call
Index: Demo/Ringtoets/test/Demo.Ringtoets.Test/Commands/OpenMapViewCommandTest.cs
===================================================================
diff -u -r61a6a8a9c4f009fef0e5fe130f167bd09d5573a3 -rf9058d5293ecb785069c5b6b4c554dc6800ee771
--- Demo/Ringtoets/test/Demo.Ringtoets.Test/Commands/OpenMapViewCommandTest.cs (.../OpenMapViewCommandTest.cs) (revision 61a6a8a9c4f009fef0e5fe130f167bd09d5573a3)
+++ Demo/Ringtoets/test/Demo.Ringtoets.Test/Commands/OpenMapViewCommandTest.cs (.../OpenMapViewCommandTest.cs) (revision f9058d5293ecb785069c5b6b4c554dc6800ee771)
@@ -1,4 +1,5 @@
-using Core.Common.Gui;
+using Core.Common.Controls.Commands;
+using Core.Common.Gui;
using Core.Components.DotSpatial.Data;
using Demo.Ringtoets.Commands;
using NUnit.Framework;
@@ -10,34 +11,36 @@
public class OpenMapViewCommandTest
{
[Test]
- public void DefaultConstructor_DefaultValues()
+ public void ParameteredConstructor_DefaultValues()
{
+ // Setup
+ var mocks = new MockRepository();
+ var documentViewController = mocks.Stub();
+ mocks.ReplayAll();
+
// Call
- var command = new OpenMapViewCommand();
+ var command = new OpenMapViewCommand(documentViewController);
// Assert
- Assert.IsInstanceOf(command);
+ Assert.IsInstanceOf(command);
Assert.IsTrue(command.Enabled);
Assert.IsFalse(command.Checked);
- Assert.IsNull(command.Gui);
+ mocks.VerifyAll();;
}
[Test]
public void Execute_Always_OpensViewForMapData()
{
// Setup
var mocks = new MockRepository();
- var guiMock = mocks.StrictMock();
+ var documentViewControllerMock = mocks.StrictMock();
var viewResolverMock = mocks.StrictMock();
- guiMock.Expect(g => g.DocumentViewsResolver).Return(viewResolverMock);
+ documentViewControllerMock.Expect(g => g.DocumentViewsResolver).Return(viewResolverMock);
viewResolverMock.Expect(vr => vr.OpenViewForData(Arg.Matches(md => md.IsValid()), Arg.Matches(b => b == false))).Return(true);
mocks.ReplayAll();
- var command = new OpenMapViewCommand
- {
- Gui = guiMock
- };
+ var command = new OpenMapViewCommand(documentViewControllerMock);
// Call
command.Execute();
@@ -49,21 +52,33 @@
[Test]
public void Enabled_Always_ReturnsTrue()
{
+ // Setup
+ var mocks = new MockRepository();
+ var documentViewController = mocks.Stub();
+ mocks.ReplayAll();
+
// Call
- var command = new OpenMapViewCommand();
+ var command = new OpenMapViewCommand(documentViewController);
// Assert
Assert.IsTrue(command.Enabled);
+ mocks.VerifyAll();
}
[Test]
public void Checked_Always_ReturnsFalse()
{
+ // Setup
+ var mocks = new MockRepository();
+ var documentViewController = mocks.Stub();
+ mocks.ReplayAll();
+
// Call
- var command = new OpenMapViewCommand();
+ var command = new OpenMapViewCommand(documentViewController);
// Assert
Assert.IsFalse(command.Checked);
+ mocks.VerifyAll();
}
}
}
\ No newline at end of file
Index: Demo/Ringtoets/test/Demo.Ringtoets.Test/Ribbons/RingtoestDemoProjectRibbonTest.cs
===================================================================
diff -u -r61a6a8a9c4f009fef0e5fe130f167bd09d5573a3 -rf9058d5293ecb785069c5b6b4c554dc6800ee771
--- Demo/Ringtoets/test/Demo.Ringtoets.Test/Ribbons/RingtoestDemoProjectRibbonTest.cs (.../RingtoestDemoProjectRibbonTest.cs) (revision 61a6a8a9c4f009fef0e5fe130f167bd09d5573a3)
+++ Demo/Ringtoets/test/Demo.Ringtoets.Test/Ribbons/RingtoestDemoProjectRibbonTest.cs (.../RingtoestDemoProjectRibbonTest.cs) (revision f9058d5293ecb785069c5b6b4c554dc6800ee771)
@@ -19,37 +19,58 @@
[RequiresSTA]
public void DefaultContructor_CreatesCommands()
{
+ // Setup
+ var mocks = new MockRepository();
+ var projectOwner = mocks.Stub();
+ var documentViewController = mocks.Stub();
+ mocks.ReplayAll();
+
// Call
- var ribbon = new RingtoetsDemoProjectRibbon();
+ var ribbon = new RingtoetsDemoProjectRibbon(projectOwner, documentViewController);
var commands = ribbon.Commands.ToArray();
// Assert
CollectionAssert.IsNotEmpty(commands);
CollectionAssert.AllItemsAreInstancesOfType(commands, typeof(ICommand));
CollectionAssert.AllItemsAreUnique(commands);
+ mocks.VerifyAll();
}
[Test]
[RequiresSTA]
public void DefaultConstructor_Always_CreatesControl()
{
+ // Setup
+ var mocks = new MockRepository();
+ var projectOwner = mocks.Stub();
+ var documentViewController = mocks.Stub();
+ mocks.ReplayAll();
+
// Call
- var ribbon = new RingtoetsDemoProjectRibbon();
+ var ribbon = new RingtoetsDemoProjectRibbon(projectOwner, documentViewController);
// Assert
Assert.IsNotNull(ribbon);
Assert.IsInstanceOf(ribbon.GetRibbonControl());
+ mocks.VerifyAll();
}
[Test]
[RequiresSTA]
public void IsContextualTabVisible_Always_ReturnsFalse()
{
+ // Setup
+ var mocks = new MockRepository();
+ var projectOwnerStub = mocks.Stub();
+ var documentViewController = mocks.Stub();
+ mocks.ReplayAll();
+
// Call
- var ribbon = new RingtoetsDemoProjectRibbon();
+ var ribbon = new RingtoetsDemoProjectRibbon(projectOwnerStub, documentViewController);
// Assert
Assert.IsFalse(ribbon.IsContextualTabVisible(null, null));
+ mocks.VerifyAll();
}
[Test]
@@ -59,20 +80,22 @@
// Setup
var mocks = new MockRepository();
var viewResolver = mocks.StrictMock();
- viewResolver.Expect(vr => vr.OpenViewForData(Arg.Matches(md => md.IsValid()), Arg.Matches(b => b == false))).Return(true);
+ viewResolver.Expect(vr => vr.OpenViewForData(Arg.Matches(md => md.IsValid()),
+ Arg.Matches(b => b == false)))
+ .Return(true);
- var gui = mocks.StrictMock();
- gui.Expect(g => g.DocumentViewsResolver).Return(viewResolver);
-
+ var projectOwner = mocks.Stub();
+ var documentViewController = mocks.Stub();
+ documentViewController.Expect(dvc => dvc.DocumentViewsResolver).Return(viewResolver);
+
mocks.ReplayAll();
- var ribbon = new RingtoetsDemoProjectRibbon();
- ribbon.Commands.OfType().First().Gui = gui;
+ var ribbon = new RingtoetsDemoProjectRibbon(projectOwner, documentViewController);
var button = ribbon.GetRibbonControl().FindName("OpenMapViewButton") as Button;
// Precondition
- Assert.IsNotNull((object) button, "Ribbon should have an open map view button");
+ Assert.IsNotNull(button, "Ribbon should have an open map view button");
// Call
button.RaiseEvent(new RoutedEventArgs(ButtonBase.ClickEvent));