69 lines
2.4 KiB
C#
69 lines
2.4 KiB
C#
using LehrerApp.Core.Models;
|
||
using LehrerApp.Core.Services;
|
||
using LehrerApp.Desktop.ViewModels.Groups;
|
||
using Xunit;
|
||
|
||
namespace LehrerApp.Desktop.Tests;
|
||
|
||
public sealed class CompetencyOverviewViewModelTests
|
||
{
|
||
[Fact]
|
||
public void Initialize_ZeigtAbdeckungGruppenmittelUndVorausgewaehltesSchuelerprofil()
|
||
{
|
||
var subjectId = Guid.NewGuid();
|
||
var group = new LearningGroup { SubjectId = subjectId, GradeLevel = 8 };
|
||
var student = new Student { FirstName = "Ada", LastName = "Lovelace" };
|
||
var units = new FakeUnits();
|
||
units.Add(new Unit
|
||
{
|
||
GroupId = group.Id, Status = UnitStatus.Completed, Competencies = ["K1"],
|
||
});
|
||
var exam = new Exam
|
||
{
|
||
GroupId = group.Id,
|
||
Status = ExamStatus.Graded,
|
||
Tasks = [new ExamTask { MaxPoints = 10, CompetencyCodes = ["K1"] }],
|
||
};
|
||
var results = new FakeResults();
|
||
results.Add(new ExamResult { ExamId = exam.Id, StudentId = student.Id, Points = [5] });
|
||
var catalog = new FakeCompetencyDomains();
|
||
catalog.Add(new CompetencyDomain
|
||
{
|
||
SubjectId = subjectId,
|
||
GradeLevel = 8,
|
||
Name = "Bereich",
|
||
Items = [new CompetencyItem { Code = "K1", Description = "Kompetenz" }],
|
||
});
|
||
var vm = new CompetencyOverviewTabViewModel(units, new FakeExams([exam]), results,
|
||
catalog, new FakeStudents([student]), new CompetencyAnalysisService());
|
||
|
||
vm.Initialize(group);
|
||
|
||
var row = Assert.Single(vm.Rows);
|
||
Assert.Equal("1× behandelt", row.InstructionCoverage);
|
||
Assert.Equal("1× geprüft", row.ExamCoverage);
|
||
Assert.Contains("50 %", row.GroupResult);
|
||
Assert.Contains("50 %", row.StudentResult);
|
||
Assert.Equal("Wiederholungsbedarf", row.Recommendation);
|
||
Assert.Equal(student.Id, vm.SelectedStudent?.Id);
|
||
}
|
||
|
||
[Fact]
|
||
public void ReviewThreshold_Aendern_AktualisiertHinweis()
|
||
{
|
||
var item = new CompetencyAnalysisItem
|
||
{
|
||
DomainName = "Bereich",
|
||
DomainCode = "B",
|
||
Code = "K1",
|
||
Description = "Kompetenz",
|
||
GroupScore = new CompetencyScore(5, 10, 1, 1),
|
||
};
|
||
var row = new CompetencyOverviewRow(item, null, 60);
|
||
|
||
row.SetThreshold(40);
|
||
|
||
Assert.Equal("Stand solide", row.Recommendation);
|
||
}
|
||
}
|