Skip to content

Commit 9b7f13e

Browse files
authored
Merge pull request #2680 from TechnologyEnhancedLearning/Develop/Features/TD-3903-RegisterAdminController-refactor(Controller-Service-Repositorypattern)
TD-3903 register admin controller refactor(controller service repository pattern)
2 parents 89903c5 + 8b50e50 commit 9b7f13e

File tree

8 files changed

+91
-81
lines changed

8 files changed

+91
-81
lines changed

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

Lines changed: 16 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
namespace DigitalLearningSolutions.Web.Tests.Controllers.Register
22
{
33
using System.Collections.Generic;
4-
using DigitalLearningSolutions.Data.DataServices;
5-
using DigitalLearningSolutions.Data.DataServices.UserDataService;
64
using DigitalLearningSolutions.Data.Models.Register;
75
using DigitalLearningSolutions.Data.Models.User;
86
using DigitalLearningSolutions.Web.Controllers.Register;
@@ -26,38 +24,32 @@ public class RegisterAdminControllerTests
2624
private const string DefaultPRN = "PRN1234";
2725
private const string DefaultPrimaryEmail = "[email protected]";
2826
private const string DefaultCentreSpecificEmail = "[email protected]";
29-
private ICentresDataService centresDataService = null!;
3027
private ICentresService centresService = null!;
3128
private IConfiguration config = null!;
3229
private RegisterAdminController controller = null!;
3330
private ICryptoService cryptoService = null!;
3431
private IEmailVerificationService emailVerificationService = null!;
35-
private IJobGroupsDataService jobGroupsDataService = null!;
32+
private IJobGroupsService jobGroupsService = null!;
3633
private IRegisterAdminService registerAdminService = null!;
3734
private IRegistrationService registrationService = null!;
38-
private IUserDataService userDataService = null!;
3935
private IUserService userService = null!;
4036

4137
[SetUp]
4238
public void Setup()
4339
{
44-
centresDataService = A.Fake<ICentresDataService>();
4540
centresService = A.Fake<ICentresService>();
4641
cryptoService = A.Fake<ICryptoService>();
47-
jobGroupsDataService = A.Fake<IJobGroupsDataService>();
42+
jobGroupsService = A.Fake<IJobGroupsService>();
4843
registrationService = A.Fake<IRegistrationService>();
49-
userDataService = A.Fake<IUserDataService>();
5044
registerAdminService = A.Fake<IRegisterAdminService>();
5145
emailVerificationService = A.Fake<IEmailVerificationService>();
5246
userService = A.Fake<IUserService>();
5347
config = A.Fake<IConfiguration>();
5448
controller = new RegisterAdminController(
55-
centresDataService,
5649
centresService,
5750
cryptoService,
58-
jobGroupsDataService,
51+
jobGroupsService,
5952
registrationService,
60-
userDataService,
6153
registerAdminService,
6254
emailVerificationService,
6355
userService,
@@ -81,28 +73,28 @@ public void IndexGet_with_no_centreId_param_shows_notfound_error()
8173
public void IndexGet_with_invalid_centreId_param_shows_notfound_error()
8274
{
8375
// Given
84-
A.CallTo(() => centresDataService.GetCentreName(DefaultCentreId)).Returns(null);
76+
A.CallTo(() => centresService.GetCentreName(DefaultCentreId)).Returns(null);
8577

8678
// When
8779
var result = controller.Index(DefaultCentreId);
8880

8981
// Then
90-
A.CallTo(() => centresDataService.GetCentreName(DefaultCentreId)).MustHaveHappenedOnceExactly();
82+
A.CallTo(() => centresService.GetCentreName(DefaultCentreId)).MustHaveHappenedOnceExactly();
9183
result.Should().BeNotFoundResult();
9284
}
9385

9486
[Test]
9587
public void IndexGet_with_not_allowed_admin_registration_returns_access_denied()
9688
{
9789
// Given
98-
A.CallTo(() => centresDataService.GetCentreName(DefaultCentreId)).Returns("Some centre");
90+
A.CallTo(() => centresService.GetCentreName(DefaultCentreId)).Returns("Some centre");
9991
A.CallTo(() => registerAdminService.IsRegisterAdminAllowed(DefaultCentreId, null)).Returns(false);
10092

10193
// When
10294
var result = controller.Index(DefaultCentreId);
10395

10496
// Then
105-
A.CallTo(() => centresDataService.GetCentreName(DefaultCentreId)).MustHaveHappenedOnceExactly();
97+
A.CallTo(() => centresService.GetCentreName(DefaultCentreId)).MustHaveHappenedOnceExactly();
10698
A.CallTo(() => registerAdminService.IsRegisterAdminAllowed(DefaultCentreId, null))
10799
.MustHaveHappenedOnceExactly();
108100
result.Should().BeRedirectToActionResult().WithControllerName("LearningSolutions")
@@ -113,14 +105,14 @@ public void IndexGet_with_not_allowed_admin_registration_returns_access_denied()
113105
public void IndexGet_with_allowed_admin_registration_sets_data_correctly()
114106
{
115107
// Given
116-
A.CallTo(() => centresDataService.GetCentreName(DefaultCentreId)).Returns("Some centre");
108+
A.CallTo(() => centresService.GetCentreName(DefaultCentreId)).Returns("Some centre");
117109
A.CallTo(() => registerAdminService.IsRegisterAdminAllowed(DefaultCentreId, null)).Returns(true);
118110

119111
// When
120112
var result = controller.Index(DefaultCentreId);
121113

122114
// Then
123-
A.CallTo(() => centresDataService.GetCentreName(DefaultCentreId)).MustHaveHappenedOnceExactly();
115+
A.CallTo(() => centresService.GetCentreName(DefaultCentreId)).MustHaveHappenedOnceExactly();
124116
A.CallTo(() => registerAdminService.IsRegisterAdminAllowed(DefaultCentreId, null))
125117
.MustHaveHappenedOnceExactly();
126118
var data = controller.TempData.Peek<RegistrationData>()!;
@@ -133,12 +125,10 @@ public void IndexGet_with_logged_in_user_redirects_to_RegisterInternalAdmin()
133125
{
134126
// Given
135127
var controllerWithLoggedInUser = new RegisterAdminController(
136-
centresDataService,
137128
centresService,
138129
cryptoService,
139-
jobGroupsDataService,
130+
jobGroupsService,
140131
registrationService,
141-
userDataService,
142132
registerAdminService,
143133
emailVerificationService,
144134
userService,
@@ -190,8 +180,8 @@ string userEmail
190180
};
191181
var data = new RegistrationData { Centre = DefaultCentreId, PrimaryEmail = userEmail };
192182
controller.TempData.Set(data);
193-
A.CallTo(() => centresDataService.GetCentreName(DefaultCentreId)).Returns("My centre");
194-
A.CallTo(() => centresDataService.GetCentreAutoRegisterValues(DefaultCentreId))
183+
A.CallTo(() => centresService.GetCentreName(DefaultCentreId)).Returns("My centre");
184+
A.CallTo(() => centresService.GetCentreAutoRegisterValues(DefaultCentreId))
195185
.Returns((autoRegistered, autoRegisterManagerEmail));
196186

197187
// When
@@ -211,9 +201,9 @@ public void SummaryPost_with_email_already_in_use_fails_validation()
211201
};
212202
var data = new RegistrationData { Centre = DefaultCentreId, PrimaryEmail = DefaultPrimaryEmail };
213203
controller.TempData.Set(data);
214-
A.CallTo(() => centresDataService.GetCentreAutoRegisterValues(DefaultCentreId))
204+
A.CallTo(() => centresService.GetCentreAutoRegisterValues(DefaultCentreId))
215205
.Returns((false, DefaultPrimaryEmail));
216-
A.CallTo(() => userDataService.GetAdminUserByEmailAddress(DefaultPrimaryEmail)).Returns(new AdminUser());
206+
A.CallTo(() => userService.GetAdminUserByEmailAddress(DefaultPrimaryEmail)).Returns(new AdminUser());
217207

218208
// When
219209
var result = controller.Summary(model);
@@ -366,7 +356,7 @@ int adminId
366356
A.CallTo(() => registerAdminService.IsRegisterAdminAllowed(DefaultCentreId, null)).Returns(true);
367357
if (centreSpecificEmail != null)
368358
{
369-
A.CallTo(() => userDataService.GetAdminUserByEmailAddress(centreSpecificEmail)).Returns(null);
359+
A.CallTo(() => userService.GetAdminUserByEmailAddress(centreSpecificEmail)).Returns(null);
370360
}
371361

372362
A.CallTo(
@@ -386,7 +376,7 @@ int adminId
386376
.DoesNothing();
387377

388378
A.CallTo(
389-
() => userDataService.GetUserIdByAdminId(adminId)
379+
() => userService.GetUserIdByAdminId(adminId)
390380
)
391381
.Returns(userId);
392382
A.CallTo(

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ public class RegisterControllerTests
3838
private HttpRequest request = null!;
3939
private ISupervisorDelegateService supervisorDelegateService = null!;
4040
private IUserDataService userDataService = null!;
41+
private IUserService userService = null!;
4142
private ISupervisorService supervisorService = null!;
4243

4344
[SetUp]
@@ -48,6 +49,7 @@ public void Setup()
4849
jobGroupsDataService = A.Fake<IJobGroupsDataService>();
4950
registrationService = A.Fake<IRegistrationService>();
5051
userDataService = A.Fake<IUserDataService>();
52+
userService = A.Fake<IUserService>();
5153
promptsService = A.Fake<PromptsService>();
5254
featureManager = A.Fake<IFeatureManager>();
5355
supervisorDelegateService = A.Fake<ISupervisorDelegateService>();
@@ -63,6 +65,7 @@ public void Setup()
6365
featureManager,
6466
supervisorDelegateService,
6567
userDataService,
68+
userService,
6669
supervisorService
6770
)
6871
.WithDefaultContext()
@@ -161,6 +164,7 @@ public void IndexGet_while_logged_in_redirects_to_register_at_new_centre_journey
161164
featureManager,
162165
supervisorDelegateService,
163166
userDataService,
167+
userService,
164168
supervisorService
165169
).WithDefaultContext().WithMockUser(true);
166170

@@ -235,6 +239,7 @@ public void Start_while_logged_in_redirects_to_register_at_new_centre_journey()
235239
featureManager,
236240
supervisorDelegateService,
237241
userDataService,
242+
userService,
238243
supervisorService
239244
).WithDefaultContext().WithMockUser(true);
240245

DigitalLearningSolutions.Web.Tests/Helpers/RegistrationEmailValidatorTests.cs

Lines changed: 19 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
namespace DigitalLearningSolutions.Web.Tests.Helpers
22
{
33
using System.Linq;
4-
using DigitalLearningSolutions.Data.DataServices.UserDataService;
5-
using DigitalLearningSolutions.Data.Models.User;
64
using DigitalLearningSolutions.Web.Helpers;
75
using DigitalLearningSolutions.Web.Services;
86
using FakeItEasy;
@@ -21,14 +19,12 @@ public class RegistrationEmailValidatorTests
2119
private const string DefaultFieldName = "FieldName";
2220

2321
private static ModelStateDictionary modelState = null!;
24-
private IUserDataService userDataService = null!;
2522
private IUserService userService = null!;
2623
private ICentresService centresService = null!;
2724

2825
[SetUp]
2926
public void Setup()
3027
{
31-
userDataService = A.Fake<IUserDataService>();
3228
userService = A.Fake<IUserService>();
3329
centresService = A.Fake<ICentresService>();
3430
modelState = new ModelStateDictionary();
@@ -38,14 +34,14 @@ public void Setup()
3834
public void ValidatePrimaryEmailIfNecessary_adds_error_message_when_primary_email_is_in_use()
3935
{
4036
// Given
41-
A.CallTo(() => userDataService.PrimaryEmailIsInUse(DefaultPrimaryEmail)).Returns(true);
37+
A.CallTo(() => userService.PrimaryEmailIsInUse(DefaultPrimaryEmail)).Returns(true);
4238

4339
// When
4440
RegistrationEmailValidator.ValidatePrimaryEmailIfNecessary(
4541
DefaultPrimaryEmail,
4642
DefaultFieldName,
4743
modelState,
48-
userDataService,
44+
userService,
4945
DefaultErrorMessage
5046
);
5147

@@ -57,14 +53,14 @@ public void ValidatePrimaryEmailIfNecessary_adds_error_message_when_primary_emai
5753
public void ValidatePrimaryEmailIfNecessary_does_not_add_error_message_when_primary_email_is_not_in_use()
5854
{
5955
// Given
60-
A.CallTo(() => userDataService.PrimaryEmailIsInUse(DefaultPrimaryEmail)).Returns(false);
56+
A.CallTo(() => userService.PrimaryEmailIsInUse(DefaultPrimaryEmail)).Returns(false);
6157

6258
// When
6359
RegistrationEmailValidator.ValidatePrimaryEmailIfNecessary(
6460
DefaultPrimaryEmail,
6561
DefaultFieldName,
6662
modelState,
67-
userDataService,
63+
userService,
6864
DefaultErrorMessage
6965
);
7066

@@ -80,7 +76,7 @@ public void ValidatePrimaryEmailIfNecessary_does_not_add_error_message_when_emai
8076
null,
8177
DefaultFieldName,
8278
modelState,
83-
userDataService,
79+
userService,
8480
DefaultErrorMessage
8581
);
8682

@@ -94,14 +90,14 @@ public void ValidatePrimaryEmailIfNecessary_does_not_add_another_error_message_w
9490
// Given
9591
modelState.AddModelError(DefaultFieldName, DefaultErrorMessage);
9692

97-
A.CallTo(() => userDataService.PrimaryEmailIsInUse(DefaultPrimaryEmail)).Returns(true);
93+
A.CallTo(() => userService.PrimaryEmailIsInUse(DefaultPrimaryEmail)).Returns(true);
9894

9995
// When
10096
RegistrationEmailValidator.ValidatePrimaryEmailIfNecessary(
10197
DefaultPrimaryEmail,
10298
DefaultFieldName,
10399
modelState,
104-
userDataService,
100+
userService,
105101
"different error"
106102
);
107103

@@ -115,7 +111,7 @@ public void ValidateCentreEmailIfNecessary_adds_error_message_when_centre_email_
115111
{
116112
// Given
117113
A.CallTo(
118-
() => userDataService.CentreSpecificEmailIsInUseAtCentre(DefaultCentreSpecificEmail, DefaultCentreId)
114+
() => userService.CentreSpecificEmailIsInUseAtCentre(DefaultCentreSpecificEmail, DefaultCentreId)
119115
).Returns(true);
120116

121117
// When
@@ -124,7 +120,7 @@ public void ValidateCentreEmailIfNecessary_adds_error_message_when_centre_email_
124120
DefaultCentreId,
125121
DefaultFieldName,
126122
modelState,
127-
userDataService
123+
userService
128124
);
129125

130126
// Then
@@ -137,7 +133,7 @@ public void
137133
{
138134
// Given
139135
A.CallTo(
140-
() => userDataService.CentreSpecificEmailIsInUseAtCentre(DefaultCentreSpecificEmail, DefaultCentreId)
136+
() => userService.CentreSpecificEmailIsInUseAtCentre(DefaultCentreSpecificEmail, DefaultCentreId)
141137
).Returns(false);
142138

143139
// When
@@ -146,7 +142,7 @@ public void
146142
DefaultCentreId,
147143
DefaultFieldName,
148144
modelState,
149-
userDataService
145+
userService
150146
);
151147

152148
// Then
@@ -162,7 +158,7 @@ public void ValidateCentreEmailIfNecessary_does_not_add_error_message_when_email
162158
DefaultCentreId,
163159
DefaultFieldName,
164160
modelState,
165-
userDataService
161+
userService
166162
);
167163

168164
// Then
@@ -176,7 +172,7 @@ public void ValidateCentreEmailIfNecessary_does_not_add_another_error_message_wh
176172
modelState.AddModelError(DefaultFieldName, DefaultErrorMessage);
177173

178174
A.CallTo(
179-
() => userDataService.CentreSpecificEmailIsInUseAtCentre(DefaultCentreSpecificEmail, DefaultCentreId)
175+
() => userService.CentreSpecificEmailIsInUseAtCentre(DefaultCentreSpecificEmail, DefaultCentreId)
180176
).Returns(true);
181177

182178
// When
@@ -185,7 +181,7 @@ public void ValidateCentreEmailIfNecessary_does_not_add_another_error_message_wh
185181
DefaultCentreId,
186182
DefaultFieldName,
187183
modelState,
188-
userDataService
184+
userService
189185
);
190186

191187
// Then
@@ -205,12 +201,12 @@ public void
205201
null,
206202
DefaultFieldName,
207203
modelState,
208-
userDataService
204+
userService
209205
);
210206

211207
// Then
212208
A.CallTo(
213-
() => userDataService.CentreSpecificEmailIsInUseAtCentre(
209+
() => userService.CentreSpecificEmailIsInUseAtCentre(
214210
A<string>._,
215211
A<int>._
216212
)
@@ -251,7 +247,7 @@ public void
251247
{
252248
// Given
253249
A.CallTo(
254-
() => userDataService.CentreSpecificEmailIsInUseAtCentreByOtherUser(
250+
() => userService.CentreSpecificEmailIsInUseAtCentreByOtherUser(
255251
DefaultCentreSpecificEmail,
256252
DefaultCentreId,
257253
DefaultUserId
@@ -297,7 +293,7 @@ public void
297293
modelState.AddModelError(DefaultFieldName, DefaultErrorMessage);
298294

299295
A.CallTo(
300-
() => userDataService.CentreSpecificEmailIsInUseAtCentreByOtherUser(
296+
() => userService.CentreSpecificEmailIsInUseAtCentreByOtherUser(
301297
DefaultCentreSpecificEmail,
302298
DefaultCentreId,
303299
DefaultUserId
@@ -337,7 +333,7 @@ public void
337333

338334
// Then
339335
A.CallTo(
340-
() => userDataService.CentreSpecificEmailIsInUseAtCentreByOtherUser(
336+
() => userService.CentreSpecificEmailIsInUseAtCentreByOtherUser(
341337
A<string>._,
342338
A<int>._,
343339
A<int>._

0 commit comments

Comments
 (0)