using System; using System.Drawing; using Core.Common.Controls.Swf.TreeViewControls; using Core.Common.Gui; using Core.Common.Gui.ContextMenu; using Core.Common.TestUtil; using NUnit.Framework; using Rhino.Mocks; using Ringtoets.Common.Forms.NodePresenters; using Ringtoets.Piping.Data; using Ringtoets.Piping.Forms.NodePresenters; using PipingFormsResources = Ringtoets.Piping.Forms.Properties.Resources; using CoreCommonGuiResources = Core.Common.Gui.Properties.Resources; namespace Ringtoets.Piping.Forms.Test.NodePresenters { [TestFixture] public class PipingSurfaceLineNodePresenterTest { private MockRepository mockRepository; [SetUp] public void SetUp() { mockRepository = new MockRepository(); } [Test] public void Constructor_NoMenuBuilderProvider_ArgumentNullException() { // Call TestDelegate test = () => new PipingCalculationContextNodePresenter(null); // Assert var message = Assert.Throws(test).Message; StringAssert.StartsWith(CoreCommonGuiResources.NodePresenter_ContextMenuBuilderProvider_required, message); StringAssert.EndsWith("contextMenuBuilderProvider", message); } [Test] public void Constructor_WithParamsSet_NewInstance() { // Setup var contextMenuBuilderProviderMock = mockRepository.StrictMock(); mockRepository.ReplayAll(); // Call var nodePresenter = new PipingSurfaceLineNodePresenter(contextMenuBuilderProviderMock); // Assert Assert.IsInstanceOf>(nodePresenter); mockRepository.VerifyAll(); } [Test] public void UpdateNode_NodeWithData_InitializeNode() { // Setup var parentNodeMock = mockRepository.StrictMock(); var dataNodeMock = mockRepository.Stub(); var contextMenuBuilderProviderMock = mockRepository.StrictMock(); mockRepository.ReplayAll(); dataNodeMock.ForegroundColor = Color.AliceBlue; const string name = ""; var surfaceLine = new RingtoetsPipingSurfaceLine { Name = name }; var nodePresenter = new PipingSurfaceLineNodePresenter(contextMenuBuilderProviderMock); // Call nodePresenter.UpdateNode(parentNodeMock, dataNodeMock, surfaceLine); // Assert Assert.AreEqual(name, dataNodeMock.Text); Assert.AreEqual(Color.FromKnownColor(KnownColor.ControlText), dataNodeMock.ForegroundColor); TestHelper.AssertImagesAreEqual(PipingFormsResources.PipingSurfaceLineIcon, dataNodeMock.Image); mockRepository.VerifyAll(); } [Test] public void GetContextMenu_Always_CallsContextMenuBuilderMethods() { // Setup var contextMenuBuilderProviderMock = mockRepository.StrictMock(); var menuBuilderMock = mockRepository.StrictMock(); var nodeMock = mockRepository.StrictMock(); menuBuilderMock.Expect(mb => mb.AddPropertiesItem()).Return(menuBuilderMock); menuBuilderMock.Expect(mb => mb.Build()).Return(null); contextMenuBuilderProviderMock.Expect(cmp => cmp.Get(nodeMock)).Return(menuBuilderMock); mockRepository.ReplayAll(); var ringtoetsPipingSurfaceLine = new RingtoetsPipingSurfaceLine(); var nodePresenter = new PipingSurfaceLineNodePresenter(contextMenuBuilderProviderMock); // Call nodePresenter.GetContextMenu(nodeMock, ringtoetsPipingSurfaceLine); // Assert mockRepository.VerifyAll(); } } }