Skip to content

Commit de21044

Browse files
authored
Merge pull request #2887 from TechnologyEnhancedLearning/Develop/feature/TD-4789-unit-tests-tags-added-on-optional-competencies-learner-view
TD-4789-Unit tests added for ManageOptionalCompetencies with flags and SelfAssessmentOverview with optional competencies
2 parents c95e20d + c4cf94d commit de21044

File tree

1 file changed

+85
-3
lines changed

1 file changed

+85
-3
lines changed

DigitalLearningSolutions.Web.Tests/Controllers/LearningPortal/SelfAssessmentTests.cs

Lines changed: 85 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@
55
using System.Collections.ObjectModel;
66
using System.Linq;
77
using DigitalLearningSolutions.Data.Models.SelfAssessments;
8-
using DigitalLearningSolutions.Data.Models.Supervisor;
9-
using DigitalLearningSolutions.Data.Models.User;
108
using DigitalLearningSolutions.Web.Tests.TestHelpers;
119
using DigitalLearningSolutions.Web.ViewModels.Common.SearchablePage;
1210
using DigitalLearningSolutions.Web.ViewModels.LearningPortal.Current;
@@ -274,7 +272,7 @@ public void SelfAssessmentCompetency_Post_Redirects_To_Next_Question()
274272
[Test]
275273
public void SelfAssessmentCompetency_Post_without_self_assessment_should_return_403()
276274
{
277-
var assessmentQuestion = new List<AssessmentQuestion>();
275+
var assessmentQuestion = new List<AssessmentQuestion>();
278276
// Given
279277
A.CallTo(() => selfAssessmentService.GetSelfAssessmentForCandidateById(DelegateUserId, SelfAssessmentId))
280278
.Returns(null);
@@ -423,6 +421,44 @@ public void SelfAssessmentOverview_Should_Return_View()
423421
.Model.Should().BeEquivalentTo(expectedModel);
424422
}
425423

424+
[Test]
425+
public void SelfAssessmentOverview_Should_Return_View_With_Optional_Competency()
426+
{
427+
// Given
428+
var selfAssessment = SelfAssessmentTestHelper.CreateDefaultSelfAssessment();
429+
var appliedFilterViewModel = new List<AppliedFilterViewModel>();
430+
var competencies = new List<Competency>
431+
{
432+
new Competency { CompetencyGroup = "A", Id = 1, CompetencyGroupID = 1,SelfAssessmentStructureId=1, Optional = true },
433+
new Competency { CompetencyGroup = "A", Id = 2, CompetencyGroupID = 1,SelfAssessmentStructureId=1, Optional = false },
434+
};
435+
var supervisorSignOffs = new List<SupervisorSignOff>();
436+
var expectedModel = new SelfAssessmentOverviewViewModel
437+
{
438+
SelfAssessment = selfAssessment,
439+
CompetencyGroups = competencies.GroupBy(competency => competency.CompetencyGroup),
440+
PreviousCompetencyNumber = 2,
441+
SupervisorSignOffs = supervisorSignOffs,
442+
SearchViewModel = new SearchSelfAssessmentOverviewViewModel("", SelfAssessmentId, selfAssessment.Vocabulary!, false, false, appliedFilterViewModel),
443+
AllQuestionsVerifiedOrNotRequired = true
444+
};
445+
A.CallTo(() => selfAssessmentService.GetSelfAssessmentForCandidateById(DelegateUserId, SelfAssessmentId))
446+
.Returns(selfAssessment);
447+
A.CallTo(() => selfAssessmentService.GetMostRecentResults(selfAssessment.Id, DelegateUserId))
448+
.Returns(competencies);
449+
450+
// When
451+
var result = controller.SelfAssessmentOverview(SelfAssessmentId, selfAssessment.Vocabulary!);
452+
453+
// Then
454+
result.Should().BeViewResult()
455+
.WithViewName("SelfAssessments/SelfAssessmentOverview")
456+
.Model.Should().BeEquivalentTo(expectedModel);
457+
458+
result.Should().BeViewResult().ModelAs<SelfAssessmentOverviewViewModel>().CompetencyGroups.ToList()[0].ToList()[0].Optional.Should().Be(true);
459+
result.Should().BeViewResult().ModelAs<SelfAssessmentOverviewViewModel>().CompetencyGroups.ToList()[0].ToList()[1].Optional.Should().Be(false);
460+
}
461+
426462
[Test]
427463
public void SelfAssessmentOverview_action_should_update_last_accessed()
428464
{
@@ -692,5 +728,51 @@ public void WithdrawSupervisorSignOffRequest_calls_remove_sign_off_and_defaults_
692728
.BeRedirectToActionResult()
693729
.WithActionName("SelfAssessmentOverview");
694730
}
731+
732+
[Test]
733+
public void ManageOptionalCompetencies_Should_Return_View_With_Flag()
734+
{
735+
// Given
736+
var selfAssessment = SelfAssessmentTestHelper.CreateDefaultSelfAssessment();
737+
var appliedFilterViewModel = new List<AppliedFilterViewModel>();
738+
var CompetencyFlags = new List<Data.Models.Frameworks.CompetencyFlag> { new Data.Models.Frameworks.CompetencyFlag { CompetencyId = 1, FlagId = 1, FlagGroup = "Purple", FlagName = "Supernumerary", FlagTagClass = "nhsuk-tag--purple", FrameworkId = 1, Selected = true }, };
739+
740+
var optionalCompetencies = new List<Competency>
741+
{
742+
new Competency { CompetencyGroup = "A", Id = 1, CompetencyGroupID = 1,SelfAssessmentStructureId=1, Optional = true },
743+
new Competency { CompetencyGroup = "A", Id = 2, CompetencyGroupID = 1,SelfAssessmentStructureId=1, Optional = true },
744+
};
745+
var competencyIds = optionalCompetencies.Select(c => c.Id).ToArray();
746+
var includedSelfAssessmentStructureIds = new List<int> { 1, 2 };
747+
748+
A.CallTo(() => selfAssessmentService.GetSelfAssessmentForCandidateById(DelegateUserId, SelfAssessmentId))
749+
.Returns(selfAssessment);
750+
A.CallTo(() => selfAssessmentService.GetCandidateAssessmentOptionalCompetencies(selfAssessment.Id, DelegateUserId))
751+
.Returns(optionalCompetencies);
752+
A.CallTo(() => frameworkService.GetSelectedCompetencyFlagsByCompetecyIds(A<int[]>.That.Matches(ids => ids.Length == 2 && ids[0] == 1 && ids[1] == 2)))
753+
.Returns(CompetencyFlags);
754+
A.CallTo(() => selfAssessmentService.GetCandidateAssessmentIncludedSelfAssessmentStructureIds(selfAssessment.Id, DelegateUserId))
755+
.Returns(includedSelfAssessmentStructureIds);
756+
757+
var model = new ManageOptionalCompetenciesViewModel
758+
{
759+
SelfAssessment = selfAssessment,
760+
CompetencyGroups = optionalCompetencies.GroupBy(competency => competency.CompetencyGroup),
761+
IncludedSelfAssessmentStructureIds = includedSelfAssessmentStructureIds
762+
};
763+
764+
// When
765+
var result = controller.ManageOptionalCompetencies(SelfAssessmentId);
766+
767+
// Then
768+
result.Should().BeViewResult()
769+
.WithViewName("SelfAssessments/ManageOptionalCompetencies")
770+
.Model.Should().BeEquivalentTo(model);
771+
772+
result.Should().BeViewResult().ModelAs<ManageOptionalCompetenciesViewModel>().CompetencyGroups?.ToList()[0].ToList()[0].CompetencyFlags.Count().Should().Be(1);
773+
result.Should().BeViewResult().ModelAs<ManageOptionalCompetenciesViewModel>().CompetencyGroups?.ToList()[0].ToList()[0].CompetencyFlags.ToList()[0].FlagName.Should().Be("Supernumerary");
774+
775+
result.Should().BeViewResult().ModelAs<ManageOptionalCompetenciesViewModel>().CompetencyGroups?.ToList()[0].ToList()[1].CompetencyFlags.Count().Should().Be(0);
776+
}
695777
}
696778
}

0 commit comments

Comments
 (0)