На старте машина представляется ботом туристической компании Just Tour
1
... и рассказывает о проблемах, в решении которых она может помочь
1
...после этого бот побуждает пользователя продолжить диалог
1
Если пользователь уже общался с ботом и представлялся, на старте машина обращается по имени
2
Если пользователь из любой точки диалога задает вопрос, цель которого узнать погоду
3
Запрос погоды из стейта /Name
3
Запрос погоды из стейта /Menu
3
Запрос погоды из стейта /Wheather
3
Запрос погоды из стейта /Trip
3
бот проверяет, что в запросе присутствуют указания на город/страну
7
бот проверяет, что в запросе присутствуют указания на дату
7
бот проверяет, что в запросе присутствуют указания на город/страну и дату
7
бот проверяет, что в предыдущем диалоге присутствуют указания на город (Москва)
6
бот проверяет, что в предыдущем диалоге присутствуют указания на дату (1 января)
4
бот проверяет, что в предыдущем диалоге присутствуют указания на город (Анкара) и дату (2 июля)
5
Недостающие параметры уточняются ботом в последующем диалоге с пользователем
4
После получения всех параметров бот отправляет данные в третью систему и выдает пользователю прогноз погоды в нужном городе или нужной стране на указанную дату (история)
6
После получения результатов:
Если температура воздуха низкая, задается вопрос, действительно ли он планирует поездку в страну с холодным климатом
4
Если температура воздуха высокая, задается вопрос, действительно ли он планирует поездку в страну с жарким климатом
5
Если температура воздуха средняя, задается вопрос, действительно ли он планирует поездку в страну с умеренным климатом
6
Если пользователь отвечает утвердительно, бот предлагает оформить тур в страну, которой человек интересовался
4
Если пользователь отвечает утвердительно, бот предлагает продолжить оформление уже начатой заявки
5
При продолжении с начатой заявкой названные пользователем параметры заявки спрашивать не надо
5
Если пользователь отвечает отрицательно, бот предлагает узнать погоду в другой стране или городе
6
Если пользователь в запросе изменяет параметры прогноза (например, "а в сочи?" выводится погода для новых данных
6
Если пользователь в запросе изменяет параметры прогноза (например, "а 1 января?" выводится погода для новых данных
6
Если пользователь хочет оформить тур:
из диалога о погоде: сразу переходим к заполнению заявки
4
иначе: бот спрашивает, в какой город/страну пользователю хочется отправиться
1
Если пользователь не определился со страной, бот начинает заполнение заявки, объявив, что с подбором поможет менеджер
2
Для заполнения заявки бот выясняет у пользователя:
5
количество людей в поездке
5
количество детей в поездке
5
желаемую звездность отеля
5
номер телефона для связи
2
комментарий для менеджера в свободной форме
5
Заявка не отправляется без имени пользователя
4
Заявка не отправляется без телефона пользователя
2
Пользователь уже начал оформлять заявку и выбрал место для отдыха, но потом уточнил погоду в другом городе. Бот уточняет: "Продолжим оформлять тур в [первое место] или начнем новую заявку в [второе место]?"
8
Заполнение заявки и проверка ее отправки на почту компании
Повтор кейсов id = 4, 5, 6, 7, 8 из файла test.xml, но теперь с использованием тега <mockData> при обращении к внешнему http ресурсу (метеосайт).
test_mock.xml кейсы: 4, 5, 6, 7, 8