diff --git a/src/Jiaowu.Api/Infrastructure/Exams/ExamArrangementService.cs b/src/Jiaowu.Api/Infrastructure/Exams/ExamArrangementService.cs index 9075af5..ceba576 100644 --- a/src/Jiaowu.Api/Infrastructure/Exams/ExamArrangementService.cs +++ b/src/Jiaowu.Api/Infrastructure/Exams/ExamArrangementService.cs @@ -26,6 +26,9 @@ public sealed class ExamArrangementService(AppDbContext db) .Include(x => x.Sessions) .ThenInclude(x => x.TeachingTask) .ThenInclude(x => x!.Teachers) + .Include(x => x.Sessions) + .ThenInclude(x => x.TeachingTask) + .ThenInclude(x => x!.Course) .FirstOrDefaultAsync(x => x.Id == planId, cancellationToken); if (plan is null) diff --git a/src/Jiaowu.Api/Infrastructure/Exams/MakeupExamArrangementService.cs b/src/Jiaowu.Api/Infrastructure/Exams/MakeupExamArrangementService.cs index 5dd7275..ee64af7 100644 --- a/src/Jiaowu.Api/Infrastructure/Exams/MakeupExamArrangementService.cs +++ b/src/Jiaowu.Api/Infrastructure/Exams/MakeupExamArrangementService.cs @@ -26,6 +26,9 @@ public sealed class MakeupExamArrangementService(AppDbContext db) .Include(x => x.Sessions) .ThenInclude(x => x.TeachingTask) .ThenInclude(x => x!.Teachers) + .Include(x => x.Sessions) + .ThenInclude(x => x.TeachingTask) + .ThenInclude(x => x!.Course) .FirstOrDefaultAsync(x => x.Id == planId, cancellationToken); if (plan is null) diff --git a/tests/Jiaowu.Api.Tests/ExamArrangementServiceTests.cs b/tests/Jiaowu.Api.Tests/ExamArrangementServiceTests.cs index 71120e6..5339b02 100644 --- a/tests/Jiaowu.Api.Tests/ExamArrangementServiceTests.cs +++ b/tests/Jiaowu.Api.Tests/ExamArrangementServiceTests.cs @@ -31,6 +31,7 @@ public sealed class ExamArrangementServiceTests plan.Sessions.Add(untouched); db.ExamPlans.Add(plan); await db.SaveChangesAsync(); + db.ChangeTracker.Clear(); var result = await new ExamArrangementService(db).ArrangeAsync( plan.Id, @@ -39,11 +40,14 @@ public sealed class ExamArrangementServiceTests assignInvigilators: false, CancellationToken.None); + var persistedSelected = await db.ExamSessions.FindAsync(selected.Id); + var persistedUntouched = await db.ExamSessions.FindAsync(untouched.Id); Assert.True(result.Success); - Assert.NotNull(selected.ClassroomId); - Assert.Null(untouched.ClassroomId); - Assert.Empty(selected.Invigilators); + Assert.NotNull(persistedSelected!.ClassroomId); + Assert.Null(persistedUntouched!.ClassroomId); + Assert.Empty(persistedSelected.Invigilators); Assert.Contains("1个场次处理完成", result.Message); + Assert.Contains("程序设计", result.Message); } [Fact] @@ -69,6 +73,7 @@ public sealed class ExamArrangementServiceTests plan.Sessions.Add(untouched); db.MakeupExamPlans.Add(plan); await db.SaveChangesAsync(); + db.ChangeTracker.Clear(); var result = await new MakeupExamArrangementService(db).ArrangeAsync( plan.Id, @@ -77,11 +82,14 @@ public sealed class ExamArrangementServiceTests assignInvigilators: false, CancellationToken.None); + var persistedSelected = await db.MakeupExamSessions.FindAsync(selected.Id); + var persistedUntouched = await db.MakeupExamSessions.FindAsync(untouched.Id); Assert.True(result.Success); - Assert.NotNull(selected.ClassroomId); - Assert.Null(untouched.ClassroomId); - Assert.Empty(selected.Invigilators); + Assert.NotNull(persistedSelected!.ClassroomId); + Assert.Null(persistedUntouched!.ClassroomId); + Assert.Empty(persistedSelected.Invigilators); Assert.Contains("1个场次处理完成", result.Message); + Assert.Contains("程序设计", result.Message); } private static ExamSession NewExamSession(Guid planId, Guid taskId) => new()