修复实验排课
This commit is contained in:
@@ -138,6 +138,47 @@ public sealed class ExperimentsControllerTests
|
||||
Assert.Empty(fixture.Db.ExperimentBookings);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task CentralizedSession_RejectsRelatedPublishedTimetableConflict()
|
||||
{
|
||||
await using var fixture = await ExperimentFixture.CreateAsync();
|
||||
var manager = fixture.Controller(fixture.ManagerScope);
|
||||
await manager.CreateProject(
|
||||
fixture.ProjectRequest(ExperimentArrangementMode.Centralized),
|
||||
CancellationToken.None);
|
||||
var project = await fixture.Db.ExperimentProjects.SingleAsync();
|
||||
fixture.Db.SchedulePlans.Add(new SchedulePlan
|
||||
{
|
||||
AcademicTermId = fixture.Term.Id,
|
||||
Name = "正式课表",
|
||||
Version = "V1",
|
||||
Status = SchedulePlanStatus.Published,
|
||||
Entries =
|
||||
[
|
||||
new ScheduleEntry
|
||||
{
|
||||
TeachingTaskId = fixture.Task.Id,
|
||||
ClassroomId = fixture.SecondClassroom.Id,
|
||||
DayOfWeek = 1,
|
||||
StartPeriod = 1,
|
||||
PeriodCount = 2,
|
||||
StartWeek = 1,
|
||||
EndWeek = 18,
|
||||
WeekPattern = WeekPattern.All
|
||||
}
|
||||
]
|
||||
});
|
||||
await fixture.Db.SaveChangesAsync();
|
||||
|
||||
var result = await manager.CreateSession(
|
||||
project.Id,
|
||||
fixture.SessionRequest(1, 2),
|
||||
CancellationToken.None);
|
||||
|
||||
Assert.IsType<ConflictObjectResult>(result);
|
||||
Assert.Empty(fixture.Db.ExperimentSessions);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task StudentTimetable_IncludesCentralizedAndBookedSelfScheduledSessions()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user