Skip to content

Commit fc4c3ca

Browse files
Merge branch 'Release-2024.32' into Develop/Features/TD-3916-UsersController-refactor(Controller-Service-Repositorypattern)
2 parents c59cba8 + 25bffe8 commit fc4c3ca

File tree

13 files changed

+228
-185
lines changed

13 files changed

+228
-185
lines changed

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

Lines changed: 23 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
namespace DigitalLearningSolutions.Web.Tests.Controllers.SuperAdmin
22
{
3-
using DigitalLearningSolutions.Data.DataServices;
4-
using DigitalLearningSolutions.Data.DataServices.UserDataService;
53
using DigitalLearningSolutions.Data.Models.SearchSortFilterPaginate;
6-
using DigitalLearningSolutions.Data.Models.User;
4+
using DigitalLearningSolutions.Data.Models.User;
75
using DigitalLearningSolutions.Web.Controllers.SuperAdmin.Administrators;
86
using DigitalLearningSolutions.Web.Services;
97
using DigitalLearningSolutions.Web.Tests.ControllerHelpers;
@@ -19,46 +17,43 @@
1917
public class AdminAccountsControllerTests
2018
{
2119
private AdminAccountsController administratorsController = null!;
22-
private IUserDataService userDataService = null!;
2320
private IAdminDownloadFileService adminDownloadFileService = null!;
2421
private ISearchSortFilterPaginateService searchSortFilterPaginateService = null!;
25-
private ICentresDataService centresDataService = null!;
26-
private ICourseCategoriesDataService courseCategoriesDataService = null!;
22+
private ICentresService centresService = null!;
23+
private ICourseCategoriesService courseCategoriesService = null!;
2724
private IUserService userService = null!;
2825
private ICentreContractAdminUsageService centreContractAdminUsageService = null!;
29-
private INotificationPreferencesDataService notificationPreferencesDataService = null!;
30-
private INotificationDataService notificationDataService = null!;
26+
private INotificationPreferencesService notificationPreferencesService = null!;
27+
private INotificationService notificationService = null!;
3128
const string CookieName = "AdminFilter";
3229
private HttpRequest httpRequest = null!;
3330
private HttpResponse httpResponse = null!;
3431

3532
[SetUp]
3633
public void Setup()
3734
{
38-
userDataService = A.Fake <IUserDataService>();
39-
centresDataService = A.Fake <ICentresDataService>();
40-
searchSortFilterPaginateService = A.Fake <ISearchSortFilterPaginateService>();
41-
adminDownloadFileService = A.Fake <IAdminDownloadFileService>();
42-
courseCategoriesDataService = A.Fake<ICourseCategoriesDataService>();
35+
centresService = A.Fake<ICentresService>();
36+
searchSortFilterPaginateService = A.Fake<ISearchSortFilterPaginateService>();
37+
adminDownloadFileService = A.Fake<IAdminDownloadFileService>();
38+
courseCategoriesService = A.Fake<ICourseCategoriesService>();
4339
userService = A.Fake<IUserService>();
4440
centreContractAdminUsageService = A.Fake<ICentreContractAdminUsageService>();
45-
notificationPreferencesDataService = A.Fake<INotificationPreferencesDataService>();
46-
notificationDataService = A.Fake<INotificationDataService>();
41+
notificationPreferencesService = A.Fake<INotificationPreferencesService>();
42+
notificationService = A.Fake<INotificationService>();
4743

48-
httpRequest = A.Fake<HttpRequest>();
44+
httpRequest = A.Fake<HttpRequest>();
4945
httpResponse = A.Fake<HttpResponse>();
5046
const string cookieValue = "Role|IsCentreAdmin|true";
5147

5248
administratorsController = new AdminAccountsController(
53-
userDataService,
54-
centresDataService,
49+
centresService,
5550
searchSortFilterPaginateService,
5651
adminDownloadFileService,
57-
courseCategoriesDataService,
52+
courseCategoriesService,
5853
userService,
5954
centreContractAdminUsageService,
60-
notificationPreferencesDataService,
61-
notificationDataService
55+
notificationPreferencesService,
56+
notificationService
6257
)
6358
.WithMockHttpContext(httpRequest, CookieName, cookieValue, httpResponse)
6459
.WithMockUser(true)
@@ -71,23 +66,23 @@ public void Index_calls_expected_methods_and_returns_view()
7166
{
7267
// Given
7368
var loggedInAdmin = UserTestHelper.GetDefaultAdminEntity();
74-
A.CallTo(() => userDataService.GetAdminById(loggedInAdmin.AdminAccount.Id)).Returns(loggedInAdmin);
69+
A.CallTo(() => userService.GetAdminById(loggedInAdmin.AdminAccount.Id)).Returns(loggedInAdmin);
7570

7671
// When
7772
var result = administratorsController.Index();
7873

7974
// Then
8075
using (new AssertionScope())
8176
{
82-
A.CallTo(() => userDataService.GetAllAdmins(A<string>._, A<int>._, A<int>._, A<int>._, A<string>._, A<string>._, A<int>._, A<int>._)).MustHaveHappened();
83-
A.CallTo(() => centresDataService.GetAllCentres(false)).MustHaveHappened();
77+
A.CallTo(() => userService.GetAllAdmins(A<string>._, A<int>._, A<int>._, A<int>._, A<string>._, A<string>._, A<int>._, A<int>._)).MustHaveHappened();
78+
A.CallTo(() => centresService.GetAllCentres(false)).MustHaveHappened();
8479
A.CallTo(
8580
() => searchSortFilterPaginateService.SearchFilterSortAndPaginate(
8681
A<IEnumerable<AdminEntity>>._,
8782
A<SearchSortFilterAndPaginateOptions>._
8883
)
8984
).MustHaveHappened();
90-
85+
9186
result.Should().BeViewResult().WithDefaultViewName();
9287
}
9388
}
@@ -98,16 +93,16 @@ public void EditCentre_calls_expected_methods_and_returns_view()
9893
int adminId = 1;
9994
var loggedInAdmin = UserTestHelper.GetDefaultAdminEntity();
10095

101-
A.CallTo(() => userDataService.GetAdminById(loggedInAdmin.AdminAccount.Id)).Returns(loggedInAdmin);
96+
A.CallTo(() => userService.GetAdminById(loggedInAdmin.AdminAccount.Id)).Returns(loggedInAdmin);
10297

10398
// When
10499
var result = administratorsController.EditCentre(adminId);
105100

106101
//Then
107102
using (new AssertionScope())
108103
{
109-
A.CallTo(() => userDataService.GetAdminUserById(adminId)).MustHaveHappened();
110-
A.CallTo(() => centresDataService.GetAllCentres(true)).MustHaveHappened();
104+
A.CallTo(() => userService.GetAdminUserById(adminId)).MustHaveHappened();
105+
A.CallTo(() => centresService.GetAllCentres(true)).MustHaveHappened();
111106
result.Should().BeViewResult().WithDefaultViewName();
112107
}
113108
}

DigitalLearningSolutions.Web.Tests/Controllers/SupervisorController/SupervisorControllerTests.cs

Lines changed: 10 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
namespace DigitalLearningSolutions.Web.Tests.Controllers.Support
22
{
3-
using DigitalLearningSolutions.Data.DataServices;
4-
using DigitalLearningSolutions.Data.DataServices.SelfAssessmentDataService;
5-
using DigitalLearningSolutions.Data.DataServices.UserDataService;
6-
using DigitalLearningSolutions.Data.Services;
3+
74
using DigitalLearningSolutions.Data.Utilities;
85
using DigitalLearningSolutions.Web.Controllers.SupervisorController;
96
using DigitalLearningSolutions.Web.Services;
@@ -21,21 +18,19 @@ public class SupervisorControllerTests
2118
private IFrameworkNotificationService frameworkNotificationService = null!;
2219
private ISelfAssessmentService selfAssessmentService = null!;
2320
private IFrameworkService frameworkService = null!;
24-
private IConfigDataService configDataService = null!;
21+
private IConfigService configService = null!;
2522
private ICentreRegistrationPromptsService centreRegistrationPromptsService = null!;
26-
private IUserDataService userDataService = null!;
23+
private IUserService userService = null!;
2724
private ILogger<SupervisorController> logger = null!;
2825
private IConfiguration config = null!;
2926
private ISearchSortFilterPaginateService searchSortFilterPaginateService = null!;
3027
private IMultiPageFormService multiPageFormService = null!;
3128
private IRegistrationService registrationService = null!;
32-
private ICentresDataService centresDataService = null!;
33-
private IUserService userService = null!;
29+
private ICentresService centresService = null!;
3430
private IEmailGenerationService emailGenerationService = null!;
3531
private IEmailService emailService = null!;
3632
private IClockUtility clockUtility = null!;
3733
private ICandidateAssessmentDownloadFileService candidateAssessmentDownloadFileService = null!;
38-
private ISelfAssessmentDataService selfAssessmentDataService = null!;
3934

4035
[SetUp]
4136
public void Setup()
@@ -45,21 +40,19 @@ public void Setup()
4540
frameworkNotificationService = A.Fake<IFrameworkNotificationService>();
4641
selfAssessmentService = A.Fake<ISelfAssessmentService>();
4742
frameworkService = A.Fake<IFrameworkService>();
48-
configDataService = A.Fake<IConfigDataService>();
43+
configService = A.Fake<IConfigService>();
4944
centreRegistrationPromptsService = A.Fake<ICentreRegistrationPromptsService>();
50-
userDataService = A.Fake<IUserDataService>();
45+
userService = A.Fake<IUserService>();
5146
logger = A.Fake<ILogger<SupervisorController>>();
5247
config = A.Fake<IConfiguration>();
5348
searchSortFilterPaginateService = A.Fake<ISearchSortFilterPaginateService>();
5449
multiPageFormService = A.Fake<IMultiPageFormService>();
5550
registrationService = A.Fake<IRegistrationService>();
56-
centresDataService = A.Fake<ICentresDataService>();
57-
userService = A.Fake<IUserService>();
51+
centresService = A.Fake<ICentresService>();
5852
emailGenerationService = A.Fake<IEmailGenerationService>();
5953
emailService = A.Fake<IEmailService>();
6054
clockUtility = A.Fake<IClockUtility>();
6155
candidateAssessmentDownloadFileService = A.Fake<ICandidateAssessmentDownloadFileService>();
62-
selfAssessmentDataService = A.Fake<ISelfAssessmentDataService>();
6356

6457
A.CallTo(() => candidateAssessmentDownloadFileService.GetCandidateAssessmentDownloadFileForCentre(A<int>._, A<int>._, A<bool>._))
6558
.Returns(new byte[] { });
@@ -76,20 +69,18 @@ public void ExportCandidateAssessment_should_return_file_object_with_file_name_i
7669
frameworkNotificationService,
7770
selfAssessmentService,
7871
frameworkService,
79-
configDataService,
72+
configService,
8073
centreRegistrationPromptsService,
81-
userDataService,
74+
userService,
8275
logger,
8376
config,
8477
searchSortFilterPaginateService,
8578
multiPageFormService,
8679
registrationService,
87-
centresDataService,
88-
userService,
80+
centresService,
8981
emailGenerationService,
9082
emailService,
9183
candidateAssessmentDownloadFileService,
92-
selfAssessmentDataService,
9384
clockUtility
9485
);
9586
string expectedFileName = $"{((selfAssessmentName.Length > 30) ? selfAssessmentName.Substring(0, 30) : selfAssessmentName)} - {delegateName} - {clockUtility.UtcNow:yyyy-MM-dd}.xlsx";

DigitalLearningSolutions.Web.Tests/Controllers/TrackingSystem/Centre/Administrator/AdministratorControllerTests.cs

Lines changed: 16 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
namespace DigitalLearningSolutions.Web.Tests.Controllers.TrackingSystem.Centre.Administrator
22
{
33
using System.Collections.Generic;
4-
using DigitalLearningSolutions.Data.DataServices;
5-
using DigitalLearningSolutions.Data.DataServices.UserDataService;
64
using DigitalLearningSolutions.Data.Models.SearchSortFilterPaginate;
7-
using DigitalLearningSolutions.Data.Models.User;
5+
using DigitalLearningSolutions.Data.Models.User;
86
using DigitalLearningSolutions.Web.Controllers.TrackingSystem.Centre.Administrator;
97
using DigitalLearningSolutions.Web.Services;
108
using DigitalLearningSolutions.Web.Tests.ControllerHelpers;
@@ -22,21 +20,19 @@ public class AdministratorControllerTests
2220
{
2321
private AdministratorController administratorController = null!;
2422
private ICentreContractAdminUsageService centreContractAdminUsageService = null!;
25-
private ICourseCategoriesDataService courseCategoriesDataService = null!;
23+
private ICourseCategoriesService courseCategoriesService = null!;
2624
const string CookieName = "AdminFilter";
2725
private HttpRequest httpRequest = null!;
2826
private HttpResponse httpResponse = null!;
2927
private ISearchSortFilterPaginateService searchSortFilterPaginateService = null!;
30-
private IUserDataService userDataService = null!;
3128
private IUserService userService = null!;
3229
private IEmailService emailService = null!;
3330
private IEmailGenerationService emailGenerationService = null!;
3431

3532
[SetUp]
3633
public void Setup()
3734
{
38-
courseCategoriesDataService = A.Fake<ICourseCategoriesDataService>();
39-
userDataService = A.Fake<IUserDataService>();
35+
courseCategoriesService = A.Fake<ICourseCategoriesService>();
4036
centreContractAdminUsageService = A.Fake<ICentreContractAdminUsageService>();
4137
userService = A.Fake<IUserService>();
4238
searchSortFilterPaginateService = A.Fake<ISearchSortFilterPaginateService>();
@@ -48,8 +44,7 @@ public void Setup()
4844
const string cookieValue = "Role|IsCentreAdmin|true";
4945

5046
administratorController = new AdministratorController(
51-
userDataService,
52-
courseCategoriesDataService,
47+
courseCategoriesService,
5348
centreContractAdminUsageService,
5449
userService,
5550
searchSortFilterPaginateService,
@@ -71,8 +66,8 @@ public void Index_calls_expected_methods_and_returns_view()
7166
// Then
7267
using (new AssertionScope())
7368
{
74-
A.CallTo(() => userDataService.GetAdminsByCentreId(A<int>._)).MustHaveHappened();
75-
A.CallTo(() => courseCategoriesDataService.GetCategoriesForCentreAndCentrallyManagedCourses(A<int>._))
69+
A.CallTo(() => userService.GetAdminsByCentreId(A<int>._)).MustHaveHappened();
70+
A.CallTo(() => courseCategoriesService.GetCategoriesForCentreAndCentrallyManagedCourses(A<int>._))
7671
.MustHaveHappened();
7772
A.CallTo(
7873
() => searchSortFilterPaginateService.SearchFilterSortAndPaginate(
@@ -98,7 +93,7 @@ public void UnlockAccount_unlocks_account_and_returns_to_page()
9893
// Given
9994
var adminAccount = UserTestHelper.GetDefaultAdminAccount();
10095
A.CallTo(() => userService.ResetFailedLoginCountByUserId(A<int>._)).DoesNothing();
101-
A.CallTo(() => userDataService.GetUserIdByAdminId(adminAccount.Id)).Returns(adminAccount.UserId);
96+
A.CallTo(() => userService.GetUserIdByAdminId(adminAccount.Id)).Returns(adminAccount.UserId);
10297

10398
// When
10499
var result = administratorController.UnlockAccount(adminAccount.Id);
@@ -116,7 +111,7 @@ public void DeactivateOrDeleteAdmin_returns_not_found_when_trying_to_access_page
116111
{
117112
// Given
118113
var adminUser = UserTestHelper.GetDefaultAdminUser();
119-
A.CallTo(() => userDataService.GetAdminUserById(adminUser.Id)).Returns(adminUser);
114+
A.CallTo(() => userService.GetAdminUserById(adminUser.Id)).Returns(adminUser);
120115

121116
// When
122117
var result = administratorController.DeactivateOrDeleteAdmin(
@@ -136,8 +131,8 @@ public void DeactivateOrDeleteAdmin_does_not_deactivate_admin_user_without_confi
136131
var admin = UserTestHelper.GetDefaultAdminEntity(8);
137132
var loggedInAdmin = UserTestHelper.GetDefaultAdminEntity();
138133

139-
A.CallTo(() => userDataService.GetAdminById(admin.AdminAccount.Id)).Returns(admin);
140-
A.CallTo(() => userDataService.GetAdminById(loggedInAdmin.AdminAccount.Id)).Returns(loggedInAdmin);
134+
A.CallTo(() => userService.GetAdminById(admin.AdminAccount.Id)).Returns(admin);
135+
A.CallTo(() => userService.GetAdminById(loggedInAdmin.AdminAccount.Id)).Returns(loggedInAdmin);
141136

142137
var deactivateViewModel =
143138
Builder<DeactivateAdminViewModel>.CreateNew().With(vm => vm.Confirm = false).Build();
@@ -156,7 +151,7 @@ public void DeactivateOrDeleteAdmin_does_not_deactivate_admin_user_without_confi
156151
administratorController.ModelState[nameof(DeactivateAdminViewModel.Confirm)]?.Errors[0].ErrorMessage
157152
.Should()
158153
.BeEquivalentTo(expectedErrorMessage);
159-
A.CallTo(() => userDataService.DeactivateAdmin(admin.AdminAccount.Id)).MustNotHaveHappened();
154+
A.CallTo(() => userService.DeactivateAdmin(admin.AdminAccount.Id)).MustNotHaveHappened();
160155
}
161156
}
162157

@@ -167,8 +162,8 @@ public void DeactivateOrDeleteAdmin_deactivates_admin_user_with_confirmation()
167162
var admin = UserTestHelper.GetDefaultAdminEntity(8);
168163
var loggedInAdmin = UserTestHelper.GetDefaultAdminEntity();
169164

170-
A.CallTo(() => userDataService.GetAdminById(admin.AdminAccount.Id)).Returns(admin);
171-
A.CallTo(() => userDataService.GetAdminById(loggedInAdmin.AdminAccount.Id)).Returns(loggedInAdmin);
165+
A.CallTo(() => userService.GetAdminById(admin.AdminAccount.Id)).Returns(admin);
166+
A.CallTo(() => userService.GetAdminById(loggedInAdmin.AdminAccount.Id)).Returns(loggedInAdmin);
172167

173168
A.CallTo(() => userService.DeactivateOrDeleteAdmin(admin.AdminAccount.Id)).DoesNothing();
174169
var deactivateViewModel =
@@ -190,8 +185,8 @@ public void DeactivateOrDeleteAdmin_submit_returns_not_found_when_trying_to_deac
190185
{
191186
// Given
192187
var adminUser = UserTestHelper.GetDefaultAdminUser();
193-
A.CallTo(() => userDataService.GetAdminUserById(adminUser.Id)).Returns(adminUser);
194-
A.CallTo(() => userDataService.DeactivateAdmin(adminUser.Id)).DoesNothing();
188+
A.CallTo(() => userService.GetAdminUserById(adminUser.Id)).Returns(adminUser);
189+
A.CallTo(() => userService.DeactivateAdmin(adminUser.Id)).DoesNothing();
195190
var deactivateViewModel =
196191
Builder<DeactivateAdminViewModel>.CreateNew().With(vm => vm.Confirm = true).Build();
197192

@@ -201,7 +196,7 @@ public void DeactivateOrDeleteAdmin_submit_returns_not_found_when_trying_to_deac
201196
// Then
202197
using (new AssertionScope())
203198
{
204-
A.CallTo(() => userDataService.DeactivateAdmin(adminUser.Id)).MustNotHaveHappened();
199+
A.CallTo(() => userService.DeactivateAdmin(adminUser.Id)).MustNotHaveHappened();
205200
result.Should().BeStatusCodeResult().WithStatusCode(410);
206201
}
207202
}

0 commit comments

Comments
 (0)