修复实验排课
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
using Jiaowu.Api.Infrastructure.Persistence;
|
||||
using Jiaowu.Api.Infrastructure.Experiments;
|
||||
using Jiaowu.Api.Infrastructure.Exams;
|
||||
using Jiaowu.Api.Infrastructure.Persistence;
|
||||
using Jiaowu.Api.Infrastructure.Teaching;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||
@@ -176,6 +177,64 @@ public sealed class MySqlMigrationTests
|
||||
StringComparison.OrdinalIgnoreCase);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void MySql_centralized_experiment_conflict_queries_are_translatable()
|
||||
{
|
||||
using var db = new AppDbContext(CreateMySqlOptions());
|
||||
var firstId =
|
||||
Guid.Parse("11111111-1111-1111-1111-111111111111");
|
||||
var secondId =
|
||||
Guid.Parse("22222222-2222-2222-2222-222222222222");
|
||||
Guid[] relatedIds = [firstId, secondId];
|
||||
|
||||
var teacherTaskSql = CentralizedExperimentConflictQuery
|
||||
.TaskIdsForTeachers(db, relatedIds)
|
||||
.ToQueryString();
|
||||
var classTaskSql = CentralizedExperimentConflictQuery
|
||||
.TaskIdsForClasses(db, relatedIds)
|
||||
.ToQueryString();
|
||||
var scheduleSql = CentralizedExperimentConflictQuery
|
||||
.ScheduleEntries(
|
||||
db,
|
||||
relatedIds,
|
||||
firstId,
|
||||
1,
|
||||
2,
|
||||
1,
|
||||
2)
|
||||
.ToQueryString();
|
||||
var experimentSql = CentralizedExperimentConflictQuery
|
||||
.ExperimentSessions(
|
||||
db,
|
||||
relatedIds,
|
||||
new DateOnly(2026, 8, 1),
|
||||
1,
|
||||
2)
|
||||
.ToQueryString();
|
||||
|
||||
Assert.Contains(
|
||||
"TeachingTaskTeachers",
|
||||
teacherTaskSql,
|
||||
StringComparison.OrdinalIgnoreCase);
|
||||
Assert.Contains(
|
||||
"TeachingTaskClasses",
|
||||
classTaskSql,
|
||||
StringComparison.OrdinalIgnoreCase);
|
||||
Assert.Contains(
|
||||
"ScheduleEntries",
|
||||
scheduleSql,
|
||||
StringComparison.OrdinalIgnoreCase);
|
||||
Assert.Contains(
|
||||
"ExperimentSessions",
|
||||
experimentSql,
|
||||
StringComparison.OrdinalIgnoreCase);
|
||||
Assert.Contains(" IN (", scheduleSql, StringComparison.OrdinalIgnoreCase);
|
||||
Assert.Contains(
|
||||
" IN (",
|
||||
experimentSql,
|
||||
StringComparison.OrdinalIgnoreCase);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void MySql_index_names_fit_the_server_identifier_limit()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user