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) {