Index: Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/NodePresenters/PipingOutputNodePresenterTest.cs =================================================================== diff -u -ra950714ad9510756331d862aa35695fa0b2ed03b -r78aece3188a23a908e7c0a47e53e5facd1c7edb5 --- Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/NodePresenters/PipingOutputNodePresenterTest.cs (.../PipingOutputNodePresenterTest.cs) (revision a950714ad9510756331d862aa35695fa0b2ed03b) +++ Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/NodePresenters/PipingOutputNodePresenterTest.cs (.../PipingOutputNodePresenterTest.cs) (revision 78aece3188a23a908e7c0a47e53e5facd1c7edb5) @@ -5,10 +5,11 @@ using Core.Common.Utils.Collections; using NUnit.Framework; using Rhino.Mocks; - +using Ringtoets.Piping.Calculation.TestUtil; using Ringtoets.Piping.Data; using Ringtoets.Piping.Forms.NodePresenters; +using Ringtoets.Piping.Forms.PresentationObjects; using Ringtoets.Piping.Forms.Test.Helper; using WtiFormsResources = Ringtoets.Piping.Forms.Properties.Resources; @@ -53,280 +54,130 @@ } [Test] - public void GetChildNodeObjects_Always_ReturnNoChildNodes() + public void GetContextMenu_Always_ReturnsNull() { // Setup var mocks = new MockRepository(); var nodeMock = mocks.StrictMock(); - mocks.ReplayAll(); - - var nodePresenter = new PipingOutputNodePresenter(); - - var output = PipingOutputCreator.Create(); - - // Call - var children = nodePresenter.GetChildNodeObjects(output, nodeMock); - - // Assert - Assert.AreEqual(0, children.Count()); - mocks.VerifyAll(); // Expect no calls on tree node - } - - [Test] - public void CanRenameNode_Always_ReturnFalse() - { - // Setup - var mocks = new MockRepository(); - var nodeMock = mocks.StrictMock(); - mocks.ReplayAll(); - - var nodePresenter = new PipingOutputNodePresenter(); - - // Call - var renameAllowed = nodePresenter.CanRenameNode(nodeMock); - - // Assert - Assert.IsFalse(renameAllowed); - mocks.VerifyAll(); // Expect no calls on tree node - } - - [Test] - public void CanRenameNodeTo_Always_ReturnFalse() - { - // Setup - var mocks = new MockRepository(); - var nodeMock = mocks.StrictMock(); - mocks.ReplayAll(); - - var nodePresenter = new PipingOutputNodePresenter(); - - // Call - var renameAllowed = nodePresenter.CanRenameNodeTo(nodeMock, ""); - - // Assert - Assert.IsFalse(renameAllowed); - mocks.VerifyAll(); // Expect no calls on tree node - } - - [Test] - public void OnNodeRenamed_Always_ThrowInvalidOperationException() - { - // Setup - var mocks = new MockRepository(); - var nodeMock = mocks.StrictMock(); - mocks.ReplayAll(); - - var nodePresenter = new PipingOutputNodePresenter(); - - // Call - TestDelegate call = () => { nodePresenter.OnNodeRenamed(nodeMock, ""); }; - - // Assert - var exception = Assert.Throws(call); - var expectedMessage = string.Format("Cannot rename tree node of type {0}.", nodePresenter.GetType().Name); - Assert.AreEqual(expectedMessage, exception.Message); - mocks.VerifyAll(); // Expect no calls on tree node - } - - [Test] - public void OnNodeChecked_Always_DoNothing() - { - // Setup - var mocks = new MockRepository(); - var nodeMock = mocks.StrictMock(); - mocks.ReplayAll(); - - var nodePresenter = new PipingOutputNodePresenter(); - - // Call - nodePresenter.OnNodeChecked(nodeMock); - - // Assert - mocks.VerifyAll(); // Expect no calls on tree node - } - - [Test] - public void CanDrag_Always_ReturnNone() - { - // Setup - var mocks = new MockRepository(); var dataMock = mocks.StrictMock(); mocks.ReplayAll(); var nodePresenter = new PipingOutputNodePresenter(); // Call - DragOperations dragAllowed = nodePresenter.CanDrag(dataMock); + ContextMenuStrip contextMenu = nodePresenter.GetContextMenu(nodeMock, dataMock); // Assert - Assert.AreEqual(DragOperations.None, dragAllowed); - mocks.VerifyAll(); - } - - [Test] - public void CanDrop_Always_ReturnNone() - { - // Setup - var mocks = new MockRepository(); - var dataMock = mocks.StrictMock(); - var sourceMock = mocks.StrictMock(); - var targetMock = mocks.StrictMock(); - mocks.ReplayAll(); - - var nodePresenter = new PipingOutputNodePresenter(); - - // Call - DragOperations dropAllowed = nodePresenter.CanDrop(dataMock, sourceMock, targetMock, DragOperations.Move); - - // Assert - Assert.AreEqual(DragOperations.None, dropAllowed); - mocks.VerifyAll(); // Expect no calls on mocks. - } - - [Test] - public void CanInsert_Always_ReturnFalse() - { - // Setup - var mocks = new MockRepository(); - var dataMock = mocks.StrictMock(); - var sourceMock = mocks.StrictMock(); - var targetMock = mocks.StrictMock(); - mocks.ReplayAll(); - - var nodePresenter = new PipingOutputNodePresenter(); - - // Call - bool insertionAllowed = nodePresenter.CanInsert(dataMock, sourceMock, targetMock); - - // Assert - Assert.IsFalse(insertionAllowed); + Assert.IsNull(contextMenu); mocks.VerifyAll(); // Expect no calls on arguments } [Test] - public void OnDragDrop_Always_DoNothing() + public void CanRemove_NotPipingOutput_ThrowsInvalidCastException() { // Setup var mocks = new MockRepository(); var dataMock = mocks.StrictMock(); - var sourceParentNodeMock = mocks.StrictMock(); - var targetParentNodeDataMock = mocks.StrictMock(); mocks.ReplayAll(); var nodePresenter = new PipingOutputNodePresenter(); // Call - nodePresenter.OnDragDrop(dataMock, sourceParentNodeMock, targetParentNodeDataMock, DragOperations.Move, 2); + TestDelegate test = () => nodePresenter.CanRemove(null, dataMock); // Assert + Assert.Throws(test); mocks.VerifyAll(); // Expect no calls on arguments } [Test] - public void OnNodeSelected_Always_DoNothing() + public void CanRemove_PipingOutput_ReturnsTrue() { // Setup var mocks = new MockRepository(); - var dataMock = mocks.StrictMock(); mocks.ReplayAll(); var nodePresenter = new PipingOutputNodePresenter(); // Call - nodePresenter.OnNodeSelected(dataMock); + var result = nodePresenter.CanRemove(null, new TestPipingOutput()); // Assert + Assert.IsTrue(result); mocks.VerifyAll(); // Expect no calls on arguments } [Test] - public void GetContextMenu_Always_ReturnsNull() + public void RemoveNodeData_NullObject_ThrowsNullReferenceException() { // Setup - var mocks = new MockRepository(); - var nodeMock = mocks.StrictMock(); - var dataMock = mocks.StrictMock(); - mocks.ReplayAll(); - var nodePresenter = new PipingOutputNodePresenter(); // Call - ContextMenuStrip contextMenu = nodePresenter.GetContextMenu(nodeMock, dataMock); + TestDelegate removeAction = () => nodePresenter.RemoveNodeData(null, null); // Assert - Assert.IsNull(contextMenu); - mocks.VerifyAll(); // Expect no calls on arguments + Assert.Throws(removeAction); } [Test] - public void OnPropertyChange_Always_DoNothing() + public void RemoveNodeData_Object_ThrowsInvalidCastException() { // Setup - var mocks = new MockRepository(); - var dataMock = mocks.StrictMock(); - var nodeMock = mocks.StrictMock(); - var eventArgsMock = mocks.StrictMock(""); - mocks.ReplayAll(); - var nodePresenter = new PipingOutputNodePresenter(); // Call - nodePresenter.OnPropertyChanged(dataMock, nodeMock, eventArgsMock); + TestDelegate removeAction = () => nodePresenter.RemoveNodeData(null, new object()); // Assert - mocks.VerifyAll(); // Expect no calls on arguments + Assert.Throws(removeAction); } [Test] - public void OnCollectionChange_Always_DoNothing() + public void RemoveNodeData_NullParent_ThrowsNullReferenceException() { // Setup - var mocks = new MockRepository(); - var dataMock = mocks.StrictMock(); - var eventArgsMock = mocks.StrictMock(); - mocks.ReplayAll(); - var nodePresenter = new PipingOutputNodePresenter(); // Call - nodePresenter.OnCollectionChanged(dataMock, eventArgsMock); + TestDelegate removeAction = () => nodePresenter.RemoveNodeData(null, new TestPipingOutput()); // Assert - mocks.VerifyAll(); // Expect no calls on arguments + Assert.Throws(removeAction); } [Test] - public void CanRemove_Always_ReturnFalse() + public void RemoveNodeData_WithParentNotContainingPipingData_ThrowsNullReferenceException() { // Setup - var mocks = new MockRepository(); - var dataMock = mocks.StrictMock(); - var nodeMock = mocks.StrictMock(); - mocks.ReplayAll(); - var nodePresenter = new PipingOutputNodePresenter(); // Call - bool removalAllowed = nodePresenter.CanRemove(dataMock, nodeMock); + TestDelegate removeAction = () => nodePresenter.RemoveNodeData(new PipingCalculationInputs(), new TestPipingOutput()); // Assert - Assert.IsFalse(removalAllowed); - mocks.VerifyAll(); // Expect no calls on arguments + Assert.Throws(removeAction); } [Test] - public void RemoveNodeData_Always_ThrowsInvalidOperationException() + public void RemoveNodeData_WithParentContainingOutput_OutputCleared() { // Setup var nodePresenter = new PipingOutputNodePresenter(); + var pipingCalculationInputs = new PipingCalculationInputs + { + PipingData = new PipingData + { + Output = new TestPipingOutput() + } + }; + // Call - TestDelegate removeAction = () => nodePresenter.RemoveNodeData(null, null); + nodePresenter.RemoveNodeData(pipingCalculationInputs, new TestPipingOutput()); // Assert - var exception = Assert.Throws(removeAction); - var expectedMessage = string.Format("Cannot delete node of type {0}.", nodePresenter.GetType().Name); - Assert.AreEqual(expectedMessage, exception.Message); + Assert.IsNull(pipingCalculationInputs.PipingData.Output); } } } \ No newline at end of file