1.7 KiB
1.7 KiB
Тесты DailyLogRepository (слой Src)
Репозиторий
Server.WatchBody.Core.Dal.Src.Repository: IDailyLogRepository / DailyLogRepository (правила — c-dal; unit-тесты без БД — c-tst, d-tst).
Методы → функции БД
| Метод | Транспорт | Функция БД |
|---|---|---|
Upsert(DailyLog) → Guid |
scalar Guid | src.daily_log_upsert(p_athlete_id, p_id, p_date, p_bp_sys, p_bp_dias, p_weight_kg, p_hr_resting, p_wellbeing) |
Select(DailyLogFilter?) → IEnumerable |
reader | src.daily_log_select(p_athlete_id, p_date_from, p_date_to) |
DailyLogFilter: DateFrom (DateOnly?), DateTo (DateOnly?).
Механика теста (общая)
ConnectionStringTest (d-tst-11); v2-поля (waist_cm, sleep_h) в v1
не передаются и не читаются — конвертер их не ждёт.
Заготовки (DataTable)
Таблица daily_log_*: id:Guid, athlete_id:int, date:DateOnly, bp_sys:int?,
bp_dias:int?, weight_kg:decimal?, hr_resting:int?, waist_cm:decimal?,
sleep_h:decimal?, wellbeing:int?.
Строки: d1 — 2026-10-17, 130/80, 157.5, 60, wellbeing 5.
Тесты: Upsert
| № | Тип | Условие | Ожидаемый результат |
|---|---|---|---|
| 1 | основной | d1; scalar = Guid d1 | 8 параметров |
Тесты: Select
| № | Тип | Условие | Ожидаемый результат |
|---|---|---|---|
| 1 | основной | таблица [d1]; фильтры NULL | 1 сущность; поля строго по конвертеру |
| 2 | граничный | пустая таблица | пустая коллекция (не null) |