Skip to content

Commit 24a7b7b

Browse files
TD-4790 Write unit tests for tags added on optional competencies in the supervisor view
1 parent 691fbe8 commit 24a7b7b

File tree

2 files changed

+152
-60
lines changed

2 files changed

+152
-60
lines changed

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

Lines changed: 11 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,10 @@
2323

2424
public class SupervisorControllerTests
2525
{
26-
private const int CandidateId = 11;
2726
private const int DelegateUserId = 11;
2827
private const int SelfAssessmentId = 1;
2928
private const int CentreId = 2;
3029
public const int AdminId = 7;
31-
public const int DelegateId = 2;
32-
public const int UserId = 2;
3330
public const string EmailAddress = "email";
3431
private ISupervisorService supervisorService = null!;
3532
private ICommonService commonService = null!;
@@ -156,64 +153,13 @@ public void ExportCandidateAssessment_should_return_file_object_with_file_name_i
156153

157154

158155
[Test]
159-
public void ReviewDelegateSelfAssessment_Should_Return_View_With_Optional_Competency_Is_True()
156+
public void ReviewDelegateSelfAssessment_Should_Return_View_With_Optional_Competency()
160157
{
161158
// Given
162159
int candidateAssessmentId = 1;
163160
int supervisorDelegateId = 2;
164-
var superviseDelegate = SupervisorTestHelper.CreateDefaultSupervisorDelegateDetail();
165-
var delegateSelfAssessment = SupervisorTestHelper.CreateDefaultDelegateSelfAssessment();
166-
var appliedFilterViewModel = new List<AppliedFilterViewModel>();
167-
var competencySummaries = new CompetencySummary();
168-
var search = new SearchSupervisorCompetencyViewModel();
169-
var competencies = new List<Competency>
170-
{
171-
new Competency { CompetencyGroup = "A", Id = 1, CompetencyGroupID = 1,SelfAssessmentStructureId=1, Optional = true },
172-
new Competency { CompetencyGroup = "A", Id = 2, CompetencyGroupID = 1,SelfAssessmentStructureId=1, Optional = false },
173-
};
174-
var expectedCompetencyGroups = competencies.GroupBy(c => c.CompetencyGroup).ToList();
175-
var supervisorSignOffs = new List<SupervisorSignOff>();
176-
var expectedModel = new ReviewSelfAssessmentViewModel()
177-
{
178-
SupervisorDelegateDetail = superviseDelegate,
179-
DelegateSelfAssessment = delegateSelfAssessment,
180-
CompetencyGroups = expectedCompetencyGroups,
181-
IsSupervisorResultsReviewed = delegateSelfAssessment.IsSupervisorResultsReviewed,
182-
SearchViewModel = search,
183-
CandidateAssessmentId = candidateAssessmentId,
184-
ExportToExcelHide = delegateSelfAssessment.SupervisorRoleTitle?.Contains("Assessor") ?? false,
185-
SupervisorSignOffs = supervisorSignOffs,
186-
CompetencySummaries = competencySummaries
187-
};
188-
var loggedInAdmin = UserTestHelper.GetDefaultAdminEntity();
189-
A.CallTo(() => userService.GetAdminById(loggedInAdmin.AdminAccount.Id)).Returns(loggedInAdmin);
190-
191-
A.CallTo(() => supervisorService.GetSupervisorDelegateDetailsById(supervisorDelegateId, AdminId, 0))
192-
.Returns(superviseDelegate);
193-
A.CallTo(() => supervisorService.GetSelfAssessmentByCandidateAssessmentId(candidateAssessmentId, AdminId))
194-
.Returns(delegateSelfAssessment);
195-
A.CallTo(() => selfAssessmentService.GetMostRecentResults(SelfAssessmentId, DelegateUserId))
196-
.Returns(competencies);
197-
198-
// When
199-
var result = controller.ReviewDelegateSelfAssessment(supervisorDelegateId, candidateAssessmentId, SelfAssessmentId);
200-
201-
// Then
202-
result.Should().BeViewResult().ModelAs<ReviewSelfAssessmentViewModel>();
203-
204-
result.Should().BeViewResult()
205-
.WithViewName("ReviewSelfAssessment")
206-
.ModelAs<ReviewSelfAssessmentViewModel>()
207-
.CompetencyGroups?.FirstOrDefault()?.FirstOrDefault()?.Optional.Should().Be(true);
208-
}
209-
[Test]
210-
public void ReviewDelegateSelfAssessment_Should_Return_View_With_Optional_Competency_Is_False()
211-
{
212-
// Given
213-
int candidateAssessmentId = 1;
214-
int supervisorDelegateId = 2;
215-
var superviseDelegate = SupervisorTestHelper.CreateDefaultSupervisorDelegateDetail();
216-
var delegateSelfAssessment = SupervisorTestHelper.CreateDefaultDelegateSelfAssessment();
161+
var superviseDelegate = SupervisorTagTestHelper.CreateDefaultSupervisorDelegateDetail();
162+
var delegateSelfAssessment = SupervisorTagTestHelper.CreateDefaultDelegateSelfAssessment();
217163
var appliedFilterViewModel = new List<AppliedFilterViewModel>();
218164
var competencySummaries = new CompetencySummary();
219165
var search = new SearchSupervisorCompetencyViewModel();
@@ -253,9 +199,14 @@ public void ReviewDelegateSelfAssessment_Should_Return_View_With_Optional_Compet
253199
result.Should().BeViewResult().ModelAs<ReviewSelfAssessmentViewModel>();
254200

255201
result.Should().BeViewResult()
256-
.WithViewName("ReviewSelfAssessment")
257-
.ModelAs<ReviewSelfAssessmentViewModel>()
258-
.CompetencyGroups?.FirstOrDefault()?.FirstOrDefault()?.Optional.Should().Be(false);
202+
.WithViewName("ReviewSelfAssessment")
203+
.ModelAs<ReviewSelfAssessmentViewModel>()
204+
.CompetencyGroups ?.SelectMany(group => group).FirstOrDefault(x => x.Id == 1)?.Optional.Should().Be(true);
205+
result.Should().BeViewResult()
206+
.WithViewName("ReviewSelfAssessment")
207+
.ModelAs<ReviewSelfAssessmentViewModel>()
208+
.CompetencyGroups?.SelectMany(group => group).FirstOrDefault(x => x.Id == 2)?.Optional.Should().Be(false);
259209
}
210+
260211
}
261212
}
Lines changed: 141 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,141 @@
1+
using DigitalLearningSolutions.Data.Models.Supervisor;
2+
using DigitalLearningSolutions.Data.Utilities;
3+
using System;
4+
5+
namespace DigitalLearningSolutions.Web.Tests.TestHelpers
6+
{
7+
public static class SupervisorTagTestHelper
8+
{
9+
private static readonly IClockUtility ClockUtility = new ClockUtility();
10+
11+
public static SupervisorDelegateDetail CreateDefaultSupervisorDelegateDetail(
12+
int id =1,
13+
string supervisorEmail = "[email protected]",
14+
string SupervisorName = "Supervisor",
15+
int? supervisorAdminID = 1,
16+
int centreId = 101,
17+
string delegateEmail = "[email protected]",
18+
int? delegateUserID = 1,
19+
bool addedByDelegate = false,
20+
DateTime? removed = null,
21+
string? firstName = null,
22+
string? lastName = null,
23+
string candidateNumber = "DELEGATE",
24+
string candidateEmail = "[email protected]",
25+
string? jobGroupName =null,
26+
string? customPrompt1 =null,
27+
string? answer1 = null,
28+
string? customPrompt2 = null,
29+
string? answer2 = null,
30+
string? customPrompt3 = null,
31+
string? answer3 = null,
32+
string? customPrompt4 = null,
33+
string? answer4 = null,
34+
string? customPrompt5 = null,
35+
string? answer5 = null,
36+
string? customPrompt6 = null,
37+
string? answer6 = null,
38+
string? supervisorName = null,
39+
int candidateAssessmentCount =0,
40+
Guid? InviteHash =null,
41+
bool delegateIsNominatedSupervisor = false,
42+
bool delegateIsSupervisor = false,
43+
string professionalRegistrationNumber = "string.Empty",
44+
int? delegateID = 0,
45+
bool? active =false
46+
)
47+
{
48+
return new SupervisorDelegateDetail
49+
{
50+
ID = id,
51+
Active = active,
52+
FirstName = firstName,
53+
LastName = lastName,
54+
CentreId = centreId,
55+
CandidateAssessmentCount = candidateAssessmentCount,
56+
CandidateNumber = candidateNumber,
57+
CandidateEmail = candidateEmail,
58+
Answer1 = answer1,
59+
Answer2 = answer2,
60+
Answer3 = answer3,
61+
Answer4 = answer4,
62+
Answer5 = answer5,
63+
Answer6 = answer6,
64+
JobGroupName = jobGroupName,
65+
DelegateEmail = delegateEmail,
66+
DelegateID = delegateID,
67+
DelegateIsNominatedSupervisor= delegateIsNominatedSupervisor,
68+
DelegateIsSupervisor= delegateIsSupervisor,
69+
DelegateUserID = delegateUserID,
70+
SupervisorAdminID = supervisorAdminID,
71+
SupervisorEmail= supervisorEmail,
72+
SupervisorName = supervisorName,
73+
CustomPrompt1 = customPrompt1,
74+
CustomPrompt2 = customPrompt2,
75+
CustomPrompt3 = customPrompt3,
76+
CustomPrompt4 = customPrompt4,
77+
CustomPrompt5 = customPrompt5,
78+
CustomPrompt6 = customPrompt6,
79+
Removed = removed,
80+
InviteHash = InviteHash,
81+
ProfessionalRegistrationNumber = professionalRegistrationNumber,
82+
83+
};
84+
}
85+
86+
public static DelegateSelfAssessment CreateDefaultDelegateSelfAssessment(
87+
int id = 1,
88+
int selfAssessmentID =6,
89+
int delegateUserID =1,
90+
string? roleName =null,
91+
bool supervisorSelfAssessmentReview =false,
92+
bool supervisorResultsReview = false,
93+
string? supervisorRoleTitle = "Assessor",
94+
DateTime? signedOffDate =null,
95+
bool signedOff = false,
96+
DateTime? completeByDate=null,
97+
int launchCount = 0,
98+
DateTime? completedDate =null,
99+
string? professionalGroup = null,
100+
string? questionLabel = null,
101+
string? descriptionLabel = null,
102+
string? reviewerCommentsLabel = null,
103+
string? subGroup = null,
104+
string? roleProfile = null,
105+
int signOffRequested =1,
106+
int resultsVerificationRequests =1,
107+
bool isSupervisorResultsReviewed =false,
108+
bool isAssignedToSupervisor = false,
109+
bool nonReportable = false
110+
)
111+
{
112+
return new DelegateSelfAssessment {
113+
ID = id,
114+
SelfAssessmentID = selfAssessmentID,
115+
DelegateUserID = delegateUserID,
116+
ResultsVerificationRequests = resultsVerificationRequests,
117+
ReviewerCommentsLabel = reviewerCommentsLabel,
118+
SubGroup = subGroup,
119+
RoleProfile = roleProfile,
120+
SignOffRequested = signOffRequested,
121+
SupervisorResultsReview = supervisorResultsReview,
122+
SupervisorSelfAssessmentReview= supervisorSelfAssessmentReview,
123+
SignedOff = signedOff,
124+
CompleteByDate = completeByDate,
125+
LaunchCount = launchCount,
126+
CompletedDate = completedDate,
127+
SignedOffDate = signedOffDate,
128+
ProfessionalGroup = professionalGroup,
129+
QuestionLabel = questionLabel,
130+
DescriptionLabel = descriptionLabel,
131+
IsAssignedToSupervisor = isAssignedToSupervisor,
132+
NonReportable = nonReportable,
133+
IsSupervisorResultsReviewed= isSupervisorResultsReviewed,
134+
RoleName = roleName,
135+
SupervisorRoleTitle = supervisorRoleTitle,
136+
137+
};
138+
}
139+
140+
}
141+
}

0 commit comments

Comments
 (0)