Skip to content

Commit 1180c43

Browse files
Merge branch 'Release-2024.32' into Develop/Features/TD-3918-RequestSupportTicketController-refactor(Controller-Service-Repositorypattern)
2 parents a5d9895 + 2e722eb commit 1180c43

19 files changed

+290
-169
lines changed

DigitalLearningSolutions.Web.Tests/Controllers/Register/RegisterInternalAdminControllerTests.cs

Lines changed: 11 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,8 @@
44
using System.Collections.Generic;
55
using System.Data;
66
using System.Threading.Tasks;
7-
using DigitalLearningSolutions.Data.DataServices;
8-
using DigitalLearningSolutions.Data.DataServices.UserDataService;
97
using DigitalLearningSolutions.Data.Models.Register;
10-
using DigitalLearningSolutions.Data.Models.User;
8+
using DigitalLearningSolutions.Data.Models.User;
119
using DigitalLearningSolutions.Web.Controllers.Register;
1210
using DigitalLearningSolutions.Web.Services;
1311
using DigitalLearningSolutions.Web.Tests.ControllerHelpers;
@@ -31,7 +29,6 @@ public class RegisterInternalAdminControllerTests
3129
private const string DefaultCentreSpecificEmail = "[email protected]";
3230
private const int DefaultUserId = 2;
3331
private const int DefaultDelegateId = 5;
34-
private ICentresDataService centresDataService = null!;
3532
private ICentresService centresService = null!;
3633
private IConfiguration config = null!;
3734
private RegisterInternalAdminController controller = null!;
@@ -41,15 +38,12 @@ public class RegisterInternalAdminControllerTests
4138
private IRegisterAdminService registerAdminService = null!;
4239
private IRegistrationService registrationService = null!;
4340
private HttpRequest request = null!;
44-
private IUserDataService userDataService = null!;
4541
private IUserService userService = null!;
4642

4743
[SetUp]
4844
public void Setup()
4945
{
50-
centresDataService = A.Fake<ICentresDataService>();
5146
centresService = A.Fake<ICentresService>();
52-
userDataService = A.Fake<IUserDataService>();
5347
userService = A.Fake<IUserService>();
5448
registrationService = A.Fake<IRegistrationService>();
5549
delegateApprovalsService = A.Fake<IDelegateApprovalsService>();
@@ -59,9 +53,7 @@ public void Setup()
5953
config = A.Fake<IConfiguration>();
6054
request = A.Fake<HttpRequest>();
6155
controller = new RegisterInternalAdminController(
62-
centresDataService,
6356
centresService,
64-
userDataService,
6557
userService,
6658
registrationService,
6759
delegateApprovalsService,
@@ -91,13 +83,13 @@ public void IndexGet_with_no_centreId_param_shows_notfound_error()
9183
public void IndexGet_with_invalid_centreId_param_shows_notfound_error()
9284
{
9385
// Given
94-
A.CallTo(() => centresDataService.GetCentreName(DefaultCentreId)).Returns(null);
86+
A.CallTo(() => centresService.GetCentreName(DefaultCentreId)).Returns(null);
9587

9688
// When
9789
var result = controller.Index(DefaultCentreId);
9890

9991
// Then
100-
A.CallTo(() => centresDataService.GetCentreName(DefaultCentreId)).MustHaveHappenedOnceExactly();
92+
A.CallTo(() => centresService.GetCentreName(DefaultCentreId)).MustHaveHappenedOnceExactly();
10193

10294
result.Should().BeNotFoundResult();
10395
}
@@ -106,7 +98,7 @@ public void IndexGet_with_invalid_centreId_param_shows_notfound_error()
10698
public void IndexGet_with_not_allowed_admin_registration_returns_access_denied()
10799
{
108100
// Given
109-
A.CallTo(() => centresDataService.GetCentreName(DefaultCentreId)).Returns("Some centre");
101+
A.CallTo(() => centresService.GetCentreName(DefaultCentreId)).Returns("Some centre");
110102
A.CallTo(() => registerAdminService.IsRegisterAdminAllowed(DefaultCentreId, DefaultUserId)).Returns(false);
111103

112104
// When
@@ -124,7 +116,7 @@ public void IndexGet_with_not_allowed_admin_registration_returns_access_denied()
124116
public void IndexGet_with_allowed_admin_registration_returns_view_model()
125117
{
126118
// Given
127-
A.CallTo(() => centresDataService.GetCentreName(DefaultCentreId)).Returns("Some centre");
119+
A.CallTo(() => centresService.GetCentreName(DefaultCentreId)).Returns("Some centre");
128120
A.CallTo(() => registerAdminService.IsRegisterAdminAllowed(DefaultCentreId, DefaultUserId)).Returns(true);
129121

130122
// When
@@ -206,7 +198,7 @@ bool isDelegateApproved
206198
centreSpecificEmail
207199
)
208200
).MustHaveHappenedOnceExactly();
209-
A.CallTo(() => userDataService.GetDelegateAccountsByUserId(DefaultUserId)).MustHaveHappenedOnceExactly();
201+
A.CallTo(() => userService.GetDelegateAccountsByUserId(DefaultUserId)).MustHaveHappenedOnceExactly();
210202

211203
if (hasDelegateAccount)
212204
{
@@ -243,7 +235,7 @@ bool isDelegateApproved
243235
).MustHaveHappenedOnceExactly();
244236
A.CallTo(() => delegateApprovalsService.ApproveDelegate(A<int>._, A<int>._)).MustNotHaveHappened();
245237
A.CallTo(
246-
() => userDataService.SetCentreEmail(
238+
() => userService.SetCentreEmail(
247239
A<int>._,
248240
A<int>._,
249241
A<string?>._,
@@ -353,9 +345,9 @@ bool isDelegateApproved
353345
if (centreSpecificEmail != null)
354346
{
355347
A.CallTo(
356-
() => userDataService.CentreSpecificEmailIsInUseAtCentre(centreSpecificEmail, DefaultCentreId)
348+
() => userService.CentreSpecificEmailIsInUseAtCentre(centreSpecificEmail, DefaultCentreId)
357349
).Returns(false);
358-
A.CallTo(() => userDataService.GetCentreEmail(DefaultUserId, DefaultCentreId)).Returns(null);
350+
A.CallTo(() => userService.GetCentreEmail(DefaultUserId, DefaultCentreId)).Returns(null);
359351
}
360352

361353
A.CallTo(() => registerAdminService.IsRegisterAdminAllowed(DefaultCentreId, DefaultUserId)).Returns(true);
@@ -383,7 +375,7 @@ bool isDelegateApproved
383375
centreId: DefaultCentreId,
384376
approved: isDelegateApproved
385377
);
386-
A.CallTo(() => userDataService.GetDelegateAccountsByUserId(DefaultUserId)).Returns(
378+
A.CallTo(() => userService.GetDelegateAccountsByUserId(DefaultUserId)).Returns(
387379
hasDelegateAccount ? new List<DelegateAccount> { delegateAccount } : new List<DelegateAccount>()
388380
);
389381

@@ -398,7 +390,7 @@ bool isDelegateApproved
398390
).Returns(("candidate", true, true));
399391

400392
A.CallTo(
401-
() => userDataService.SetCentreEmail(
393+
() => userService.SetCentreEmail(
402394
DefaultUserId,
403395
DefaultCentreId,
404396
centreSpecificEmail,

DigitalLearningSolutions.Web.Tests/Controllers/SuperAdmin/CentresControllerTests.cs

Lines changed: 22 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
using DigitalLearningSolutions.Data.DataServices;
2-
using DigitalLearningSolutions.Data.DataServices.SelfAssessmentDataService;
3-
using DigitalLearningSolutions.Data.Models;
1+
using DigitalLearningSolutions.Data.Models;
42
using DigitalLearningSolutions.Data.Models.Centres;
53
using DigitalLearningSolutions.Data.Models.SuperAdmin;
64
using DigitalLearningSolutions.Web.Controllers.SuperAdmin.Centres;
@@ -22,13 +20,12 @@ namespace DigitalLearningSolutions.Web.Tests.Controllers.SuperAdmin
2220
public class CentresControllerTests
2321
{
2422
private const int CenterId = 374;
25-
private readonly ICentresDataService centresDataService = A.Fake<ICentresDataService>();
2623
private readonly ICentreApplicationsService centreApplicationsService = A.Fake<ICentreApplicationsService>();
2724
private readonly ICentresService centresService = A.Fake<ICentresService>();
2825
private readonly ISearchSortFilterPaginateService searchSortFilterPaginateService = A.Fake<ISearchSortFilterPaginateService>();
29-
private readonly IRegionDataService regionDataService = A.Fake<IRegionDataService>();
30-
private readonly IContractTypesDataService contractTypesDataService = A.Fake<IContractTypesDataService>();
31-
private readonly ICourseDataService courseDataService = A.Fake<ICourseDataService>();
26+
private readonly IRegionService regionService = A.Fake<IRegionService>();
27+
private readonly IContractTypesService contractTypesService = A.Fake<IContractTypesService>();
28+
private readonly ICourseService courseService = A.Fake<ICourseService>();
3229
private readonly ICentresDownloadFileService centresDownloadFileService = A.Fake<ICentresDownloadFileService>();
3330
private readonly ICentreSelfAssessmentsService centreSelfAssessmentsService = A.Fake<ICentreSelfAssessmentsService>();
3431
private CentresController controller = null!;
@@ -40,17 +37,16 @@ public void Setup()
4037
centresService,
4138
centreApplicationsService,
4239
searchSortFilterPaginateService,
43-
regionDataService,
44-
centresDataService,
45-
contractTypesDataService,
46-
courseDataService,
40+
regionService,
41+
contractTypesService,
42+
courseService,
4743
centresDownloadFileService,
4844
centreSelfAssessmentsService
4945
)
5046
.WithDefaultContext()
5147
.WithMockUser(true);
5248

53-
A.CallTo(() => centresDataService.UpdateCentreDetailsForSuperAdmin(
49+
A.CallTo(() => centresService.UpdateCentreDetailsForSuperAdmin(
5450
A<int>._,
5551
A<string>._,
5652
A<int>._,
@@ -64,15 +60,15 @@ public void Setup()
6460
[TearDown]
6561
public void Cleanup()
6662
{
67-
Fake.ClearRecordedCalls(centresDataService);
63+
Fake.ClearRecordedCalls(centresService);
6864
}
6965

7066
[Test]
7167
public void EditCentreDetails_updates_centre_and_redirects_with_successful_save()
7268
{
7369
// Given
7470
IEnumerable<(int, string)> centresList = new List<(int, string)> { (374, "##HEE Demo Centre1##") };
75-
A.CallTo(() => centresDataService.GetAllCentres(false)).Returns(centresList);
71+
A.CallTo(() => centresService.GetAllCentres(false)).Returns(centresList);
7672
var model = new EditCentreDetailsSuperAdminViewModel
7773
{
7874
CentreId = 374,
@@ -91,7 +87,7 @@ public void EditCentreDetails_updates_centre_and_redirects_with_successful_save(
9187

9288
// Then
9389
result.Should().BeRedirectToActionResult().WithActionName("ManageCentre");
94-
A.CallTo(() => centresDataService.UpdateCentreDetailsForSuperAdmin(
90+
A.CallTo(() => centresService.UpdateCentreDetailsForSuperAdmin(
9591
model.CentreId,
9692
model.CentreName,
9793
model.CentreTypeId,
@@ -107,7 +103,7 @@ public void EditCentreDetails_results_DuplicateCentre_error()
107103
{
108104
// Given
109105
IEnumerable<(int, string)> centresList = new List<(int, string)> { (374, "##HEE Demo Centre##"), (610, "Alternative Futures Group") };
110-
A.CallTo(() => centresDataService.GetAllCentres(false)).Returns(centresList);
106+
A.CallTo(() => centresService.GetAllCentres(false)).Returns(centresList);
111107
var model = new EditCentreDetailsSuperAdminViewModel
112108
{
113109
CentreId = 374,
@@ -131,7 +127,7 @@ public void EditCentreDetails_results_DuplicateCentre_error()
131127
centreNameErrors.Should().Contain(error => error.ErrorMessage ==
132128
"The centre name you have entered already exists, please enter a different centre name");
133129

134-
A.CallTo(() => centresDataService.UpdateCentreDetailsForSuperAdmin(
130+
A.CallTo(() => centresService.UpdateCentreDetailsForSuperAdmin(
135131
model.CentreId,
136132
model.CentreName,
137133
model.CentreTypeId,
@@ -166,7 +162,7 @@ public void AddCentre_adds_centre_and_redirects_with_successful_save()
166162

167163
// Then
168164
result.Should().BeRedirectToActionResult().WithActionName("ManageCentre");
169-
A.CallTo(() => centresDataService.AddCentreForSuperAdmin(
165+
A.CallTo(() => centresService.AddCentreForSuperAdmin(
170166
model.CentreName,
171167
model.ContactFirstName,
172168
model.ContactLastName,
@@ -186,7 +182,7 @@ public void AddCentre_results_DuplicateCentre_error()
186182
{
187183
// Given
188184
IEnumerable<(int, string)> centresList = new List<(int, string)> { (374, "##HEE Demo Centre##") };
189-
A.CallTo(() => centresDataService.GetAllCentres(false)).Returns(centresList);
185+
A.CallTo(() => centresService.GetAllCentres(false)).Returns(centresList);
190186
var model = new AddCentreSuperAdminViewModel
191187
{
192188
CentreName = "##HEE Demo Centre##",
@@ -214,7 +210,7 @@ public void AddCentre_results_DuplicateCentre_error()
214210
centreNameErrors.Should().Contain(error => error.ErrorMessage ==
215211
"The centre name you have entered already exists, please enter a different centre name");
216212

217-
A.CallTo(() => centresDataService.AddCentreForSuperAdmin(
213+
A.CallTo(() => centresService.AddCentreForSuperAdmin(
218214
model.CentreName,
219215
model.ContactFirstName,
220216
model.ContactLastName,
@@ -242,7 +238,7 @@ public void CentreRoleLimits_route_loads_existing_role_limits_with_derived_flags
242238
RoleLimitTrainers = 30, // set
243239
};
244240

245-
A.CallTo(() => centresDataService.GetRoleLimitsForCentre(
241+
A.CallTo(() => centresService.GetRoleLimitsForCentre(
246242
A<int>._
247243
)).Returns(roleLimits);
248244

@@ -266,7 +262,7 @@ public void CentreRoleLimits_route_loads_existing_role_limits_with_derived_flags
266262

267263
// Then
268264

269-
A.CallTo(() => centresDataService.GetRoleLimitsForCentre(374)).MustHaveHappenedOnceExactly();
265+
A.CallTo(() => centresService.GetRoleLimitsForCentre(374)).MustHaveHappenedOnceExactly();
270266
result.Should().BeViewResult("CentreRoleLimits").ModelAs<CentreRoleLimitsViewModel>().Should().BeEquivalentTo(expectedVm);
271267
}
272268

@@ -294,7 +290,7 @@ public void EditCentreRoleLimits_updates_centre_role_limits_and_redirects_with_s
294290

295291
// Then
296292
A.CallTo(
297-
() => centresDataService.UpdateCentreRoleLimits(
293+
() => centresService.UpdateCentreRoleLimits(
298294
model.CentreId,
299295
model.RoleLimitCmsAdministrators,
300296
model.RoleLimitCmsManagers,
@@ -331,7 +327,7 @@ public void EditCentreRoleLimits_default_role_limit_value_to_negative_if_not_set
331327

332328
// Then
333329
A.CallTo(
334-
() => centresDataService.UpdateCentreRoleLimits(
330+
() => centresService.UpdateCentreRoleLimits(
335331
model.CentreId,
336332
model.RoleLimitCmsAdministrators,
337333
-1,
@@ -357,7 +353,7 @@ public void Get_with_centreId_shows_EditContractInfo_page()
357353
const int contractReviewDay = 28;
358354
const int contractReviewMonth = 8;
359355
const int contractReviewYear = 2023;
360-
A.CallTo(() => centresDataService.GetContractInfo(CenterId)).Returns(CentreContractAdminUsageTestHelper.GetDefaultEditContractInfo(CenterId));
356+
A.CallTo(() => centresService.GetContractInfo(CenterId)).Returns(CentreContractAdminUsageTestHelper.GetDefaultEditContractInfo(CenterId));
361357

362358
// When
363359
var result = controller.EditContractInfo(centreId, 28, 8, 2023, 10024, 10024, 100024);
@@ -399,7 +395,7 @@ public void Edit_ContractInfo_redirects_with_successful_save()
399395

400396
// When
401397
var result = controller.EditContractInfo(model, DateTime.UtcNow.Day, DateTime.UtcNow.Month, DateTime.UtcNow.Year);
402-
A.CallTo(() => centresDataService.UpdateContractTypeandCenter(model.CentreId,
398+
A.CallTo(() => centresService.UpdateContractTypeandCenter(model.CentreId,
403399
model.ContractTypeID,
404400
model.DelegateUploadSpace,
405401
model.ServerSpaceBytesInc,

DigitalLearningSolutions.Web.Tests/ServiceFilter/VerifyAdminUserCanAccessAdminUserTests.cs

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
namespace DigitalLearningSolutions.Web.Tests.ServiceFilter
22
{
3-
using System.Collections.Generic;
4-
using DigitalLearningSolutions.Data.DataServices.UserDataService;
3+
using System.Collections.Generic;
54
using DigitalLearningSolutions.Web.Controllers;
65
using DigitalLearningSolutions.Web.ServiceFilter;
76
using DigitalLearningSolutions.Web.Services;
@@ -19,7 +18,7 @@
1918

2019
internal class VerifyAdminUserCanAccessAdminUserTests
2120
{
22-
private readonly IUserDataService userDataService = A.Fake<IUserDataService>();
21+
private readonly IUserService userService = A.Fake<IUserService>();
2322
private ActionExecutingContext context = null!;
2423
private const int AdminId = 2;
2524

@@ -45,11 +44,11 @@ public void Returns_NotFound_if_service_returns_null()
4544
{
4645
// Given
4746
context.RouteData.Values["adminId"] = AdminId;
48-
A.CallTo(() => userDataService.GetAdminUserById(AdminId))
47+
A.CallTo(() => userService.GetAdminUserById(AdminId))
4948
.Returns(null);
5049

5150
// When
52-
new VerifyAdminUserCanAccessAdminUser(userDataService).OnActionExecuting(context);
51+
new VerifyAdminUserCanAccessAdminUser(userService).OnActionExecuting(context);
5352

5453
// Then
5554
context.Result.Should().BeStatusCodeResult().WithStatusCode(410);
@@ -60,11 +59,11 @@ public void Returns_AccessDenied_if_service_returns_admin_user_at_different_cent
6059
{
6160
// Given
6261
context.RouteData.Values["adminId"] = AdminId;
63-
A.CallTo(() => userDataService.GetAdminUserById(AdminId))
62+
A.CallTo(() => userService.GetAdminUserById(AdminId))
6463
.Returns(UserTestHelper.GetDefaultAdminUser(centreId: 100));
6564

6665
// When
67-
new VerifyAdminUserCanAccessAdminUser(userDataService).OnActionExecuting(context);
66+
new VerifyAdminUserCanAccessAdminUser(userService).OnActionExecuting(context);
6867

6968
// Then
7069
context.Result.Should().BeRedirectToActionResult().WithControllerName("LearningSolutions")
@@ -76,11 +75,11 @@ public void Does_not_return_any_redirect_page_if_service_returns_admin_user_at_s
7675
{
7776
// Given
7877
context.RouteData.Values["adminId"] = AdminId;
79-
A.CallTo(() => userDataService.GetAdminUserById(AdminId))
78+
A.CallTo(() => userService.GetAdminUserById(AdminId))
8079
.Returns(UserTestHelper.GetDefaultAdminUser(centreId: 101));
8180

8281
// When
83-
new VerifyAdminUserCanAccessAdminUser(userDataService).OnActionExecuting(context);
82+
new VerifyAdminUserCanAccessAdminUser(userService).OnActionExecuting(context);
8483

8584
// Then
8685
context.Result.Should().BeNull();

0 commit comments

Comments
 (0)