Прежде чем проводить исследования на биоматериалах, нужно провести верификацию на наличие необходимых функций в коде.
Вам предстоит задача - разработать интеграционный тест для выполнения верификации программного обеспечения анализатора.
Для этого разработайте АПИ сервер анализатора, который содержит конечные точки (endpoints), и возвращает определенные ответы. Затем напишите интеграционный тест, который будет обращаться к этому АПИ, отправлять на него запросы и получать ответы, в зависимости от содержания запроса.
Логика работы анализатора:
Есть два анализатора Biorad и Ledetect с пересекающимся набором услуг (т.е. есть услуги, которые можно выполнить на обоих анализаторах, но есть и такие, которые можно выполнить только на одном)
Коды и названия услуг и поддержка анализатором:
| Код | Название | Доступные анализаторы |
|---|---|---|
| 619 | TSH | Ledetect, Biorad |
| 311 | Амилаза | Ledetect |
| 548 | Альбумин | Biorad |
| 258 | Креатинин | Biorad, Ledetect |
| 176 | Билирубин общий | Biorad |
| 501 | Гепатит В | Ledetect |
| 543 | Гепатит С | Ledetect, Biorad |
| 229 | СПИД | Ledetect |
| 415 | Кальций общий | Ledetect |
| 323 | Глюкоза | Ledetect |
| 855 | Ковид IgM | Biorad |
| 346 | Общий белок | Ledetect |
| 836 | Железо | Biorad |
АПИ анализатора
Отправка заказа:
/api/analyzer/{{name}}, где {{name}} - название анализатораФормат данных:
{
"patient": 1, // id клиента
"services": [ // массив услуг
{ "serviceCode": 619 }, // код услуги
{ "serviceCode": 258 },
]
}
возможные ответы:
| Код ответа | Тело ответа (body) | Комментарий |
|---|---|---|
200 |
заказ принят | |
404 |
$"Analyzer with name '{name}' not found" | Не найден анализатор с указанным именем |
400 |
"Analyzer is busy" | Анализатор занят |
400 |
"Analyzer can not do this order. May be order contains services which analyzer does not support." | На анализатор отправлена услуга, которую анализатор не может выполнить (услуги нет в списке поддерживаемых) |
Проверка статуса заказа
/api/analyzer/{{name}}возможные ответы (код и ответ в body):
| Код ответа | Тело ответа (body) | Комментарий |
|---|---|---|
200 |
{"patient": 1, "services": [ { "сode": 619, "result": "" }, { "code": 258, "result": "" } ]} |
заказ готов |
200 |
{"progress":50} | Заказ обрабатывается (прогресс в процентах) |
400 |
"Analyzer is not working." | анализатор не выполняет никакой запрос |
404 |
$"Analyzer with name '{name}' not found" | Не найден анализатор с указанным именем |
Разработайте тестовые сценарии и unit-тесты для тестрования АПИ, реализованного в первой задаче