VEU.WathBody/1-docs/4-modules/m01-server-db/repository_tests/DailyLogRepository.md

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)