Fisheye: Tag a579d6982ec96896c932625563b3b953173c7565 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Service/Merge/AssessmentSectionProviderService.cs'.
Fisheye: No comparison available. Pass `N' to diff?
Index: Ringtoets/Integration/src/Ringtoets.Integration.Service/Merge/LoadAssessmentSectionService.cs
===================================================================
diff -u
--- Ringtoets/Integration/src/Ringtoets.Integration.Service/Merge/LoadAssessmentSectionService.cs (revision 0)
+++ Ringtoets/Integration/src/Ringtoets.Integration.Service/Merge/LoadAssessmentSectionService.cs (revision a579d6982ec96896c932625563b3b953173c7565)
@@ -0,0 +1,56 @@
+using System;
+using System.Collections.Generic;
+using Core.Common.Base.Storage;
+using log4net;
+using Ringtoets.Integration.Data;
+using Ringtoets.Integration.Service.Exceptions;
+
+namespace Ringtoets.Integration.Service.Merge
+{
+ ///
+ /// Service which provides a from a file.
+ ///
+ public class LoadAssessmentSectionService : IAssessmentSectionProvider
+ {
+ private readonly ILog log = LogManager.GetLogger(typeof(LoadAssessmentSectionService));
+ private readonly IStoreProject storage;
+
+ ///
+ /// Creates a new instance of
+ ///
+ /// Class responsible to storing and loading the application project.
+ /// Thrown when is null.
+ public LoadAssessmentSectionService(IStoreProject projectStorage)
+ {
+ if (projectStorage == null)
+ {
+ throw new ArgumentNullException(nameof(projectStorage));
+ }
+
+ storage = projectStorage;
+ }
+
+ public IEnumerable GetAssessmentSections(string filePath)
+ {
+ RingtoetsProject openedProject;
+ try
+ {
+ openedProject = (RingtoetsProject) storage.LoadProject(filePath);
+ }
+ catch (StorageException e)
+ {
+ string exceptionMessage = e.Message;
+ log.Error(exceptionMessage, e.InnerException);
+
+ throw new AssessmentSectionProviderException(exceptionMessage, e);
+ }
+
+ if (openedProject == null)
+ {
+ throw new AssessmentSectionProviderException();
+ }
+
+ return openedProject.AssessmentSections;
+ }
+ }
+}
\ No newline at end of file
Index: Ringtoets/Integration/src/Ringtoets.Integration.Service/Ringtoets.Integration.Service.csproj
===================================================================
diff -u -rd753b388a8ad3b2daee5ccbf12cb0ae418b05e07 -ra579d6982ec96896c932625563b3b953173c7565
--- Ringtoets/Integration/src/Ringtoets.Integration.Service/Ringtoets.Integration.Service.csproj (.../Ringtoets.Integration.Service.csproj) (revision d753b388a8ad3b2daee5ccbf12cb0ae418b05e07)
+++ Ringtoets/Integration/src/Ringtoets.Integration.Service/Ringtoets.Integration.Service.csproj (.../Ringtoets.Integration.Service.csproj) (revision a579d6982ec96896c932625563b3b953173c7565)
@@ -20,7 +20,7 @@
-
+
Fisheye: Tag a579d6982ec96896c932625563b3b953173c7565 refers to a dead (removed) revision in file `Ringtoets/Integration/test/Ringtoets.Integration.Service.Test/Merge/AssessmentSectionProviderServiceTest.cs'.
Fisheye: No comparison available. Pass `N' to diff?
Index: Ringtoets/Integration/test/Ringtoets.Integration.Service.Test/Merge/LoadAssessmentSectionServiceTest.cs
===================================================================
diff -u
--- Ringtoets/Integration/test/Ringtoets.Integration.Service.Test/Merge/LoadAssessmentSectionServiceTest.cs (revision 0)
+++ Ringtoets/Integration/test/Ringtoets.Integration.Service.Test/Merge/LoadAssessmentSectionServiceTest.cs (revision a579d6982ec96896c932625563b3b953173c7565)
@@ -0,0 +1,146 @@
+using System;
+using System.Collections.Generic;
+using Core.Common.Base.Storage;
+using Core.Common.TestUtil;
+using NUnit.Framework;
+using Rhino.Mocks;
+using Ringtoets.Integration.Data;
+using Ringtoets.Integration.Service.Exceptions;
+using Ringtoets.Integration.Service.Merge;
+
+namespace Ringtoets.Integration.Service.Test.Merge
+{
+ [TestFixture]
+ public class LoadAssessmentSectionServiceTest
+ {
+ [Test]
+ public void Constructor_ProjectStorageNull_ThrowsArgumentNullException()
+ {
+ // Call
+ TestDelegate call = () => new LoadAssessmentSectionService(null);
+
+ // Assert
+ var exception = Assert.Throws(call);
+ Assert.AreEqual("projectStorage", exception.ParamName);
+ }
+
+ [Test]
+ public void Constructor_ExpectedValues()
+ {
+ // Setup
+ var mocks = new MockRepository();
+ var storeProject = mocks.Stub();
+ mocks.ReplayAll();
+
+ // Call
+ var provider = new LoadAssessmentSectionService(storeProject);
+
+ // Assert
+ Assert.IsInstanceOf(provider);
+ mocks.VerifyAll();
+ }
+
+ [Test]
+ public void GetAssessmentSections_Always_SendsFilePathToLoadsProject()
+ {
+ // Setup
+ const string filePath = "Some path";
+
+ var mocks = new MockRepository();
+ var storeProject = mocks.StrictMock();
+ storeProject.Expect(sp => sp.LoadProject(filePath)).Return(new RingtoetsProject());
+ mocks.ReplayAll();
+
+ var provider = new LoadAssessmentSectionService(storeProject);
+
+ // Call
+ provider.GetAssessmentSections(filePath);
+
+ // Assert
+ mocks.VerifyAll();
+ }
+
+ [Test]
+ public void GetAssessmentSections_LoadingProjectSuccesful_ReturnsRingtoetsProject()
+ {
+ // Setup
+ var project = new RingtoetsProject();
+
+ var mocks = new MockRepository();
+ var storeProject = mocks.StrictMock();
+ storeProject.Expect(sp => sp.LoadProject(null))
+ .IgnoreArguments()
+ .Return(project);
+ mocks.ReplayAll();
+
+ var provider = new LoadAssessmentSectionService(storeProject);
+
+ // Call
+ IEnumerable assessmentSections = provider.GetAssessmentSections(string.Empty);
+
+ // Assert
+ Assert.AreSame(project.AssessmentSections, assessmentSections);
+ mocks.VerifyAll();
+ }
+
+ [Test]
+ public void GetAssessmentSections_LoadedProjectNull_ThrowsAssessmentSectionProviderException()
+ {
+ // Setup
+ var mocks = new MockRepository();
+ var storeProject = mocks.StrictMock();
+ storeProject.Expect(sp => sp.LoadProject(null))
+ .IgnoreArguments()
+ .Return(null);
+ mocks.ReplayAll();
+
+ var provider = new LoadAssessmentSectionService(storeProject);
+
+ // Call
+ TestDelegate call = () => provider.GetAssessmentSections(string.Empty);
+
+ // Assert
+ Assert.Throws(call);
+ mocks.VerifyAll();
+ }
+
+ [Test]
+ public void GetAssessmentSections_LoadingProjectThrowsException_ThrowsAssessmentSectionProviderExceptionAndLogsError()
+ {
+ // Setup
+ const string exceptionMessage = "StorageException";
+ var storageException = new StorageException(exceptionMessage);
+
+ var mocks = new MockRepository();
+ var storeProject = mocks.StrictMock();
+ storeProject.Expect(sp => sp.LoadProject(null))
+ .IgnoreArguments()
+ .Throw(storageException);
+ mocks.ReplayAll();
+
+ var provider = new LoadAssessmentSectionService(storeProject);
+
+ AssessmentSectionProviderException exception = null;
+
+ // Call
+ Action call = () =>
+ {
+ try
+ {
+ provider.GetAssessmentSections(string.Empty);
+ }
+ catch (AssessmentSectionProviderException e)
+ {
+ exception = e;
+ }
+ };
+
+ // Assert
+ var expectedLogMessage = new Tuple(exceptionMessage, LogLevelConstant.Error);
+ TestHelper.AssertLogMessageWithLevelIsGenerated(call, expectedLogMessage);
+ Assert.AreEqual(storageException, exception.InnerException);
+ Assert.AreEqual(storageException.Message, exception.Message);
+ mocks.VerifyAll();
+ }
+ }
+}
\ No newline at end of file
Index: Ringtoets/Integration/test/Ringtoets.Integration.Service.Test/Ringtoets.Integration.Service.Test.csproj
===================================================================
diff -u -rd753b388a8ad3b2daee5ccbf12cb0ae418b05e07 -ra579d6982ec96896c932625563b3b953173c7565
--- Ringtoets/Integration/test/Ringtoets.Integration.Service.Test/Ringtoets.Integration.Service.Test.csproj (.../Ringtoets.Integration.Service.Test.csproj) (revision d753b388a8ad3b2daee5ccbf12cb0ae418b05e07)
+++ Ringtoets/Integration/test/Ringtoets.Integration.Service.Test/Ringtoets.Integration.Service.Test.csproj (.../Ringtoets.Integration.Service.Test.csproj) (revision a579d6982ec96896c932625563b3b953173c7565)
@@ -22,7 +22,7 @@
-
+