2.7 KiB
Тесты WorkoutSetRepository и CommandLogRepository (слой Src)
Репозитории
Server.WatchBody.Core.Dal.Src.Repository: IWorkoutSetRepository / WorkoutSetRepository, ICommandLogRepository / CommandLogRepository (правила — c-dal; unit-тесты без БД — c-tst, d-tst).
Методы → функции БД
| Репозиторий | Метод | Функция БД |
|---|---|---|
| WorkoutSet | Insert(WorkoutSet) → Guid |
src.workout_set_insert (12 параметров) |
| WorkoutSet | Get(int athleteId, Guid setId) → WorkoutSet? |
src.workout_set_get |
| CommandLog | Insert(CommandLog) → Guid |
src.command_log_insert (7 параметров) |
| CommandLog | Select(int athleteId, Guid workoutId) → IEnumerable |
src.command_log_select |
Update/Delete не существуют: подход правится новой записью source=edit,
журнал команд не редактируется (🛡) — c-dal-2 (набор по функциям БД).
Механика теста (общая)
ConnectionStringTest (d-tst-11); 1 тест = 1 вызов (d-tst-13).
Заготовки (DataTable)
Таблица workout_set_*: id:Guid, workout_id:Guid, athlete_id:int,
exercise_id:Guid?, seq:int, weight_kg:decimal, reps:int, done_at:DateTime,
source:string, in_plan:bool, rpe:int?, knee_pain:int?.
Строки: s1 — seq 1, 50.0×15, voice, rpe NULL.
Таблица command_log_*: id:Guid, workout_id:Guid, t_offset_s:int,
recognized_text:string, semantics:string (jsonb), accepted:bool.
Строки: c1 — 65 с, 'TEST-вес пятьдесят', accepted.
Тесты: Insert (WorkoutSet)
| № | Тип | Условие | Ожидаемый результат |
|---|---|---|---|
| 1 | основной | s1 (rpe/knee_pain/exercise_id null); scalar = Guid s1 | 12 параметров; NULL → DBNull |
Тесты: Get (WorkoutSet)
| № | Тип | Условие | Ожидаемый результат |
|---|---|---|---|
| 1 | основной | таблица [s1] | сущность; Rpe = null |
| 2 | граничный | пустая таблица | null |
Тесты: Insert (CommandLog)
| № | Тип | Условие | Ожидаемый результат |
|---|---|---|---|
| 1 | основной | c1; scalar = Guid c1 | 7 параметров; Semantics как jsonb-строка |
Тесты: Select (CommandLog)
| № | Тип | Условие | Ожидаемый результат |
|---|---|---|---|
| 1 | основной | таблица [c1] | 1 сущность; поля строго по конвертеру |
| 2 | граничный | пустая таблица | пустая коллекция (не null) |