修正实验室选择
This commit is contained in:
1 parent
57372cf615
commit
90877ae428
3 files changed
+110
-42
No files matched your search
@@ -45,24 +45,28 @@ public sealed class ExperimentsControllerTests
|
||||
|
||||
var pasted = fixture.BatchProjectRequest(ExperimentArrangementMode.SelfScheduled) with
|
||||
{
|
||||
Names = ["实验一", "实验二"]
|
||||
Names = ["实验一", "实验二"],
|
||||
ProjectCount = 2
|
||||
};
|
||||
Assert.IsType<CreatedResult>(await controller.CreateProjects(pasted, CancellationToken.None));
|
||||
Assert.Equal(["实验一", "实验二"], await fixture.Db.ExperimentProjects
|
||||
.OrderBy(x => x.TeachingTask!.TaskNumber)
|
||||
Assert.Equal(["实验一", "实验二", "实验一", "实验二"], await fixture.Db.ExperimentProjects
|
||||
.OrderBy(x => x.TeachingTask!.TaskNumber).ThenBy(x => x.Code)
|
||||
.Select(x => x.Name)
|
||||
.ToListAsync());
|
||||
Assert.Equal(["LAB-BATCH-01", "LAB-BATCH-02"], await fixture.Db.ExperimentProjects
|
||||
.Select(x => x.Code).Distinct().OrderBy(x => x).ToListAsync());
|
||||
|
||||
fixture.Db.ExperimentProjects.RemoveRange(fixture.Db.ExperimentProjects);
|
||||
await fixture.Db.SaveChangesAsync();
|
||||
var sequential = fixture.BatchProjectRequest(ExperimentArrangementMode.SelfScheduled) with
|
||||
{
|
||||
Name = "数据库实验",
|
||||
GenerateSequentialNames = true
|
||||
GenerateSequentialNames = true,
|
||||
ProjectCount = 3
|
||||
};
|
||||
Assert.IsType<CreatedResult>(await controller.CreateProjects(sequential, CancellationToken.None));
|
||||
Assert.Equal(["数据库实验 01", "数据库实验 02"], await fixture.Db.ExperimentProjects
|
||||
.OrderBy(x => x.TeachingTask!.TaskNumber)
|
||||
Assert.Equal(["数据库实验 01", "数据库实验 02", "数据库实验 03", "数据库实验 01", "数据库实验 02", "数据库实验 03"], await fixture.Db.ExperimentProjects
|
||||
.OrderBy(x => x.TeachingTask!.TaskNumber).ThenBy(x => x.Code)
|
||||
.Select(x => x.Name)
|
||||
.ToListAsync());
|
||||
}
|
||||
@@ -254,6 +258,23 @@ public sealed class ExperimentsControllerTests
|
||||
await fixture.Controller(fixture.StudentScope).Book(session.Id, CancellationToken.None));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task SelfScheduledSession_AllowsAnyEnabledTeachingVenue()
|
||||
{
|
||||
await using var fixture = await ExperimentFixture.CreateAsync();
|
||||
fixture.Classroom.TeachingVenueNature = TeachingVenueNature.GeneralClassroom;
|
||||
await fixture.Db.SaveChangesAsync();
|
||||
var manager = fixture.Controller(fixture.ManagerScope);
|
||||
|
||||
await manager.CreateProject(
|
||||
fixture.ProjectRequest(ExperimentArrangementMode.SelfScheduled),
|
||||
CancellationToken.None);
|
||||
var project = await fixture.Db.ExperimentProjects.SingleAsync();
|
||||
|
||||
Assert.IsType<CreatedResult>(await manager.CreateSession(
|
||||
project.Id, fixture.SessionRequest(1, 2), CancellationToken.None));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task BoundInstructor_CanCancelOwnSession()
|
||||
{
|
||||
|
||||
Reference in new issue
Block a user