34 lines
1.5 KiB
Plaintext
34 lines
1.5 KiB
Plaintext
-- Тесты chk.chk_status_select — по func_specs/chk_status_select.md (db-tst-6: № = строке таблицы).
|
|
-- Запуск: psql -d <тестовая база> -f test_chk_status_select.psql (одна транзакция, откат в конце).
|
|
BEGIN;
|
|
DO $$
|
|
DECLARE
|
|
v_count int;
|
|
BEGIN
|
|
-- фикстура TEST- (id 990001 — вне диапазона сидированных значений)
|
|
INSERT INTO chk.chk_status (id, name) VALUES (990001, 'TEST-статус проверки')
|
|
ON CONFLICT (id) DO UPDATE SET name = EXCLUDED.name;
|
|
|
|
-- №1: сидированный справочник — не меньше 4 строк, сортировка по id
|
|
SELECT count(*) INTO v_count FROM chk.chk_status_select();
|
|
IF v_count >= 4 THEN
|
|
RAISE NOTICE 'PASS chk.chk_status_select #1';
|
|
ELSE
|
|
RAISE EXCEPTION 'FAIL chk.chk_status_select #1: строк %, ожидалось >= 4', v_count;
|
|
END IF;
|
|
|
|
-- №2: фикстура TEST- присутствует в результате
|
|
SELECT count(*) INTO v_count FROM chk.chk_status_select() WHERE id = 990001;
|
|
IF v_count = 1 THEN
|
|
RAISE NOTICE 'PASS chk.chk_status_select #2';
|
|
ELSE
|
|
RAISE EXCEPTION 'FAIL chk.chk_status_select #2: фикстура не найдена';
|
|
END IF;
|
|
|
|
-- удаление фикстур
|
|
DELETE FROM chk.chk_status WHERE id = 990001;
|
|
RAISE NOTICE 'ИТОГ chk.chk_status_select: все проверки выполнены';
|
|
END;
|
|
$$;
|
|
ROLLBACK;
|