Index: Ringtoets/Integration/src/Ringtoets.Integration.Service/Merge/AssessmentSectionProviderService.cs
===================================================================
diff -u -rf940039cf98be19f0e419fbb22dd4d17777c89ed -r14739dcebfe29602d6141e045315e9e44269f4b0
--- Ringtoets/Integration/src/Ringtoets.Integration.Service/Merge/AssessmentSectionProviderService.cs (.../AssessmentSectionProviderService.cs) (revision f940039cf98be19f0e419fbb22dd4d17777c89ed)
+++ Ringtoets/Integration/src/Ringtoets.Integration.Service/Merge/AssessmentSectionProviderService.cs (.../AssessmentSectionProviderService.cs) (revision 14739dcebfe29602d6141e045315e9e44269f4b0)
@@ -45,7 +45,12 @@
throw new AssessmentSectionProviderException(exceptionMessage, e);
}
- return openedProject?.AssessmentSections;
+ if (openedProject == null)
+ {
+ throw new AssessmentSectionProviderException();
+ }
+
+ return openedProject.AssessmentSections;
}
}
}
\ No newline at end of file
Index: Ringtoets/Integration/src/Ringtoets.Integration.Service/Merge/IAssessmentSectionProvider.cs
===================================================================
diff -u -r29d71fc2b326ae60c281103380b4babe1b881f87 -r14739dcebfe29602d6141e045315e9e44269f4b0
--- Ringtoets/Integration/src/Ringtoets.Integration.Service/Merge/IAssessmentSectionProvider.cs (.../IAssessmentSectionProvider.cs) (revision 29d71fc2b326ae60c281103380b4babe1b881f87)
+++ Ringtoets/Integration/src/Ringtoets.Integration.Service/Merge/IAssessmentSectionProvider.cs (.../IAssessmentSectionProvider.cs) (revision 14739dcebfe29602d6141e045315e9e44269f4b0)
@@ -21,6 +21,7 @@
using System.Collections.Generic;
using Ringtoets.Integration.Data;
+using Ringtoets.Integration.Service.Exceptions;
namespace Ringtoets.Integration.Service.Merge
{
@@ -34,6 +35,8 @@
///
/// The file path to read the assessment sections from.
/// A collection of .
+ /// Thrown if something went wrong
+ /// when providing the assessment sections.
IEnumerable GetAssessmentSections(string filePath);
}
}
\ No newline at end of file
Index: Ringtoets/Integration/test/Ringtoets.Integration.Service.Test/Merge/AssessmentSectionProviderServiceTest.cs
===================================================================
diff -u -rf940039cf98be19f0e419fbb22dd4d17777c89ed -r14739dcebfe29602d6141e045315e9e44269f4b0
--- Ringtoets/Integration/test/Ringtoets.Integration.Service.Test/Merge/AssessmentSectionProviderServiceTest.cs (.../AssessmentSectionProviderServiceTest.cs) (revision f940039cf98be19f0e419fbb22dd4d17777c89ed)
+++ Ringtoets/Integration/test/Ringtoets.Integration.Service.Test/Merge/AssessmentSectionProviderServiceTest.cs (.../AssessmentSectionProviderServiceTest.cs) (revision 14739dcebfe29602d6141e045315e9e44269f4b0)
@@ -37,63 +37,85 @@
// Assert
Assert.IsInstanceOf(provider);
+ mocks.VerifyAll();
}
[Test]
- public void GetAssessmentSections_LoadingProjectSuccesful_ReturnsRingtoetsProject()
+ 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 AssessmentSectionProviderService(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(filePath)).Return(project);
+ storeProject.Expect(sp => sp.LoadProject(null))
+ .IgnoreArguments()
+ .Return(project);
mocks.ReplayAll();
var provider = new AssessmentSectionProviderService(storeProject);
// Call
- IEnumerable assessmentSections = provider.GetAssessmentSections(filePath);
+ IEnumerable assessmentSections = provider.GetAssessmentSections(string.Empty);
// Assert
Assert.AreSame(project.AssessmentSections, assessmentSections);
mocks.VerifyAll();
}
[Test]
- public void GetAssessmentSections_LoadedProjectNull_ReturnsNull()
+ public void GetAssessmentSections_LoadedProjectNull_ThrowsAssessmentSectionProviderException()
{
// Setup
- const string filePath = "Some path";
-
var mocks = new MockRepository();
var storeProject = mocks.StrictMock();
- storeProject.Expect(sp => sp.LoadProject(filePath)).Return(null);
+ storeProject.Expect(sp => sp.LoadProject(null))
+ .IgnoreArguments()
+ .Return(null);
mocks.ReplayAll();
var provider = new AssessmentSectionProviderService(storeProject);
// Call
- IEnumerable assessmentSections = provider.GetAssessmentSections(filePath);
+ TestDelegate call = () => provider.GetAssessmentSections(string.Empty);
// Assert
- Assert.IsNull(assessmentSections);
+ Assert.Throws(call);
mocks.VerifyAll();
}
[Test]
public void GetAssessmentSections_LoadingProjectThrowsException_ThrowsAssessmentSectionProviderExceptionAndLogsError()
{
// Setup
- const string filePath = "Some path";
const string exceptionMessage = "StorageException";
-
var storageException = new StorageException(exceptionMessage);
var mocks = new MockRepository();
var storeProject = mocks.StrictMock();
- storeProject.Expect(sp => sp.LoadProject(filePath)).Throw(storageException);
+ storeProject.Expect(sp => sp.LoadProject(null))
+ .IgnoreArguments()
+ .Throw(storageException);
mocks.ReplayAll();
var provider = new AssessmentSectionProviderService(storeProject);
@@ -105,7 +127,7 @@
{
try
{
- provider.GetAssessmentSections(filePath);
+ provider.GetAssessmentSections(string.Empty);
}
catch (AssessmentSectionProviderException e)
{