Kompetenzen fast fertig
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
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);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user