Index: Ringtoets/Integration/test/Ringtoets.Integration.Plugin.Test/Merge/AssessmentSectionProviderTest.cs =================================================================== diff -u -r61dc09c91989d5a593858f8939530e7e929ecbf8 -r2ac63d31605f35e43d3d786173bfbae4c1b46c45 --- Ringtoets/Integration/test/Ringtoets.Integration.Plugin.Test/Merge/AssessmentSectionProviderTest.cs (.../AssessmentSectionProviderTest.cs) (revision 61dc09c91989d5a593858f8939530e7e929ecbf8) +++ Ringtoets/Integration/test/Ringtoets.Integration.Plugin.Test/Merge/AssessmentSectionProviderTest.cs (.../AssessmentSectionProviderTest.cs) (revision 2ac63d31605f35e43d3d786173bfbae4c1b46c45) @@ -19,22 +19,116 @@ // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Windows.Forms; +using Core.Common.TestUtil; +using NUnit.Extensions.Forms; using NUnit.Framework; +using Rhino.Mocks; +using Ringtoets.Integration.Data; using Ringtoets.Integration.Plugin.Merge; namespace Ringtoets.Integration.Plugin.Test.Merge { [TestFixture] - public class AssessmentSectionProviderTest + public class AssessmentSectionProviderTest : NUnitFormTest { + private readonly string testDataPath = TestHelper.GetTestDataPath(TestDataPath.Ringtoets.Integration.Plugin, nameof(AssessmentSectionProvider)); + [Test] public void Constructor_ExpectedValues() { - // Call - var provider = new AssessmentSectionProvider(); + // Setup + var mocks = new MockRepository(); + var viewParent = mocks.Stub(); + mocks.ReplayAll(); + // Call + var provider = new AssessmentSectionProvider(viewParent); + // Assert Assert.IsInstanceOf(provider); + mocks.VerifyAll(); } + + [Test] + public void Constructor_ViewParentNull_ThrowsArgumentNullException() + { + // Call + TestDelegate call = () => new AssessmentSectionProvider(null); + + // Assert + var exception = Assert.Throws(call); + Assert.AreEqual("viewParent", exception.ParamName); + } + + [Test] + public void GetAssessmentSections_FilePathNull_ThrowsArgumentNullException() + { + // Setup + var mocks = new MockRepository(); + var viewParent = mocks.Stub(); + mocks.ReplayAll(); + + var provider = new AssessmentSectionProvider(viewParent); + + // Call + TestDelegate call = () => provider.GetAssessmentSections(null); + + // Assert + var exception = Assert.Throws(call); + Assert.AreEqual("filePath", exception.ParamName); + mocks.VerifyAll(); + } + + [Test] + public void GivenGetAssessmentSections_WhenAssessmentSectionFromActivityNull_ThenThrowsAssessmentSectionProviderException() + { + // Setup + var mocks = new MockRepository(); + var viewParent = mocks.Stub(); + mocks.ReplayAll(); + + var provider = new AssessmentSectionProvider(viewParent); + + DialogBoxHandler = (name, wnd) => + { + // Expect an activity dialog which is automatically closed + }; + + // Call + TestDelegate call = () => provider.GetAssessmentSections("filePath"); + + // Assert + Assert.Throws(call); + mocks.VerifyAll(); + } + + [Test] + public void GetAssessmentSections_ValidFilePath_ReturnsAssessmentSections() + { + // Setup + var mocks = new MockRepository(); + var viewParent = mocks.Stub(); + mocks.ReplayAll(); + + var provider = new AssessmentSectionProvider(viewParent); + string filePath = Path.Combine(testDataPath, "project.rtd"); + + DialogBoxHandler = (name, wnd) => + { + // Expect an activity dialog which is automatically closed + }; + + // Call + IEnumerable assessmentSections = provider.GetAssessmentSections(filePath); + + // Assert + Assert.AreEqual(1, assessmentSections.Count()); + mocks.VerifyAll(); + } } } \ No newline at end of file