43 lines
2.5 KiB
Markdown
43 lines
2.5 KiB
Markdown
# Фаза 56. Слои одной пачкой
|
||
|
||
## Зависимости
|
||
|
||
Нет. Запреты уже размазаны по четырём тестовым проектам.
|
||
|
||
## Зачем
|
||
|
||
Инвариант 4 и таблица в [`projects.md`](../../design/01-shell/projects.md) должны ломаться одним красным
|
||
тестом, а не «забыли дописать пятую копию». Content и Protocol сейчас молчат.
|
||
|
||
## Задачи
|
||
|
||
- [ ] Проект `tests/HSchool.Architecture.Tests` в solution, `IsTestProject`, без AppHost и без
|
||
нового NuGet. Ссылки на Protocol, Content, People, Schedule, Ai, Simulation
|
||
- [ ] Тесты ссылок: каждая библиотека из таблицы в [`craft.md`](../../design/10-craft/craft.md) — этап A
|
||
- [ ] Тесты исходников: в `src/HSchool.{Protocol,Content,People,Schedule,Ai,Simulation}` нет
|
||
`DateTime.Now` / `DateTime.UtcNow`
|
||
- [ ] Удалить копипасты `Assembly_DoesNotReference*` и `Sources_DoNotUseWallClock` из People,
|
||
Ai, Schedule, Simulation (остальные факты тех файлов не трогать)
|
||
- [ ] Testing policy в `AGENTS.md`: слои — `HSchool.Architecture.Tests`, не хост
|
||
- [ ] README: школа не «ещё пустая»; потолок create — слоты игрока, не «шесть»
|
||
|
||
## Тесты, без которых фаза не закрыта
|
||
|
||
- [ ] Protocol не ссылается на Arch, ASP.NET, Sockets, Content, Simulation
|
||
- [ ] Content не ссылается на Arch, ASP.NET, Sockets, Protocol, Simulation
|
||
- [ ] People, Schedule, Ai не ссылаются на Arch, ASP.NET, Sockets
|
||
- [ ] Simulation не ссылается на ASP.NET и Sockets (Arch — можно)
|
||
- [ ] Исходники шести библиотек выше не содержат `DateTime.Now` / `DateTime.UtcNow`
|
||
- [ ] В People/Ai/Schedule/Simulation.Tests больше нет этих двух фактов
|
||
|
||
## Критерий готовности
|
||
|
||
- `dotnet test tests/HSchool.Architecture.Tests` проходит
|
||
- Добавить `using System.Net.Http` в `HSchool.Content` — слой красный
|
||
- Старые проекты тестов без этих фактов по-прежнему собираются
|
||
|
||
## Стоп
|
||
|
||
Не подключать NetArchTest. Не гонять AppHost. Не резать `SchoolWorker`. Не ссылаться на
|
||
`HSchool.Server`. Не бампить протокол, не трогать сейв.
|