Skip to content

Commit edfca62

Browse files
authored
Merge pull request #2889 from TechnologyEnhancedLearning/Develop/feature/TD-4791-unit-tests-filter-added-on-optional-competencies-learner-view
TD-4791-Unit tests added for filter on optional competencies in the learner view.
2 parents dea1766 + f88475b commit edfca62

File tree

1 file changed

+96
-0
lines changed

1 file changed

+96
-0
lines changed

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

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -774,5 +774,101 @@ public void ManageOptionalCompetencies_Should_Return_View_With_Flag()
774774

775775
result.Should().BeViewResult().ModelAs<ManageOptionalCompetenciesViewModel>().CompetencyGroups?.ToList()[0].ToList()[1].CompetencyFlags.Count().Should().Be(0);
776776
}
777+
778+
779+
[Test]
780+
public void SelfAssessmentOverview_Should_Return_View_With_All_Competencies()
781+
{
782+
// Given
783+
var selfAssessment = SelfAssessmentTestHelper.CreateDefaultSelfAssessment();
784+
var appliedFilterViewModel = new List<AppliedFilterViewModel>();
785+
var competencies = new List<Competency>
786+
{
787+
new Competency { CompetencyGroup = "A", Id = 1, CompetencyGroupID = 1,SelfAssessmentStructureId=1, Optional = true },
788+
new Competency { CompetencyGroup = "A", Id = 2, CompetencyGroupID = 1,SelfAssessmentStructureId=2, Optional = false },
789+
new Competency { CompetencyGroup = "A", Id = 3, CompetencyGroupID = 1,SelfAssessmentStructureId=3, Optional = false },
790+
};
791+
var supervisorSignOffs = new List<SupervisorSignOff>();
792+
var expectedModel = new SelfAssessmentOverviewViewModel
793+
{
794+
SelfAssessment = selfAssessment,
795+
CompetencyGroups = competencies.GroupBy(competency => competency.CompetencyGroup),
796+
PreviousCompetencyNumber = 3,
797+
SupervisorSignOffs = supervisorSignOffs,
798+
SearchViewModel = new SearchSelfAssessmentOverviewViewModel("", SelfAssessmentId, selfAssessment.Vocabulary!, false, false, appliedFilterViewModel),
799+
AllQuestionsVerifiedOrNotRequired = true
800+
};
801+
A.CallTo(() => selfAssessmentService.GetSelfAssessmentForCandidateById(DelegateUserId, SelfAssessmentId))
802+
.Returns(selfAssessment);
803+
A.CallTo(() => selfAssessmentService.GetMostRecentResults(selfAssessment.Id, DelegateUserId))
804+
.Returns(competencies);
805+
806+
// When
807+
var result = controller.SelfAssessmentOverview(SelfAssessmentId, selfAssessment.Vocabulary!);
808+
809+
// Then
810+
result.Should().BeViewResult()
811+
.WithViewName("SelfAssessments/SelfAssessmentOverview")
812+
.Model.Should().BeEquivalentTo(expectedModel);
813+
814+
result.Should().BeViewResult().ModelAs<SelfAssessmentOverviewViewModel>().CompetencyGroups.ToList()[0].Count().Should().Be(3);
815+
}
816+
817+
[Test]
818+
public void SelfAssessmentOverview_Should_Return_View_With_Optional_Filter_Applied()
819+
{
820+
// Given
821+
var selfAssessment = SelfAssessmentTestHelper.CreateDefaultSelfAssessment();
822+
var appliedFilterViewModel = new List<AppliedFilterViewModel>
823+
{
824+
new AppliedFilterViewModel{DisplayText = "Optional", FilterCategory = null!, FilterValue ="-4", TagClass = ""},
825+
};
826+
var search = new SearchSelfAssessmentOverviewViewModel
827+
{
828+
AppliedFilters = appliedFilterViewModel,
829+
SelfAssessmentId = SelfAssessmentId,
830+
Vocabulary = selfAssessment.Vocabulary!,
831+
SearchText = "",
832+
CompetencyFlags = null!,
833+
834+
};
835+
var competencies = new List<Competency>
836+
{
837+
new Competency { CompetencyGroup = "A", Id = 1, CompetencyGroupID = 1,SelfAssessmentStructureId=1, Optional = true },
838+
new Competency { CompetencyGroup = "A", Id = 2, CompetencyGroupID = 1,SelfAssessmentStructureId=2, Optional = false },
839+
new Competency { CompetencyGroup = "A", Id = 3, CompetencyGroupID = 1,SelfAssessmentStructureId=3, Optional = false },
840+
};
841+
var optionalCompetencies = new List<Competency>
842+
{
843+
new Competency { CompetencyGroup = "A", Id = 1, CompetencyGroupID = 1,SelfAssessmentStructureId=1, Optional = true },
844+
};
845+
var supervisorSignOffs = new List<SupervisorSignOff>();
846+
var expectedModel = new SelfAssessmentOverviewViewModel
847+
{
848+
SelfAssessment = selfAssessment,
849+
CompetencyGroups = optionalCompetencies.GroupBy(competency => competency.CompetencyGroup),
850+
PreviousCompetencyNumber = 1,
851+
SupervisorSignOffs = supervisorSignOffs,
852+
SearchViewModel = search,
853+
AllQuestionsVerifiedOrNotRequired = true,
854+
NumberOfOptionalCompetencies = 1,
855+
};
856+
A.CallTo(() => selfAssessmentService.GetSelfAssessmentForCandidateById(DelegateUserId, SelfAssessmentId))
857+
.Returns(selfAssessment);
858+
A.CallTo(() => selfAssessmentService.GetMostRecentResults(selfAssessment.Id, DelegateUserId))
859+
.Returns(competencies);
860+
A.CallTo(() => selfAssessmentService.GetCandidateAssessmentOptionalCompetencies(selfAssessment.Id, DelegateUserId))
861+
.Returns(optionalCompetencies);
862+
863+
// When
864+
var result = controller.SelfAssessmentOverview(SelfAssessmentId, selfAssessment.Vocabulary!, searchModel: search);
865+
866+
// Then
867+
result.Should().BeViewResult()
868+
.WithViewName("SelfAssessments/SelfAssessmentOverview")
869+
.Model.Should().BeEquivalentTo(expectedModel);
870+
871+
result.Should().BeViewResult().ModelAs<SelfAssessmentOverviewViewModel>().CompetencyGroups.ToList()[0].Count().Should().Be(1);
872+
}
777873
}
778874
}

0 commit comments

Comments
 (0)