module4.md 6.1 KB

Модуль № 4: Осуществление интеграции программных модулей

Текст задания

Для проверки данных от клиентов разработайте приложение, которое позволит провести валидацию на корректность данных. Результат проверки необходимо фиксировать в документе ТестКейс.docx.

Сначала заполните в документе ТестКейс.docx столбец "Действие" и "Ожидаемый результат" используя предоставленный текстовый редактор. Добавьте закладки в столбец "Результат". Необходимо провести валидацию ФИО клиента на вхождение запрещенных символов. Проверьте два любых критерия.

Для эмуляции отправки данных от клиента Вам необходимо запустить приложение TransferSimulator.exe. Методы эмулятора описаны в файле api_info.pdf.

Я написал простенький эмулятор на питоне server.py. Возвращается ФИО в которое случайным образом добавляется "мусор".

Макет формы представлен на рисунке.

При нажатии на кнопку "Получить данные" данные загружаются с эмулятора и отображаются на форме.

После нажатия на кнопку "Отправить результат теста" происходит проверка данных по заполненному шаблону, и результат проверки отображается на форме и в соответствующей строке таблицы в столбце "Результат".

Важно: Разрабатывать API Вам не нужно. Используйте предоставленный API.

Необходимые приложения (находятся в каталоге data этого репозитория): api_info.pdf,TransferSimulator.exe, ТестКейс.docx, Требования к разработке.pdf, Настройка ПК для эмулятора.pdf

Решение

Задание, ИМХО, написано криво. Своими словами: Вы должны написать оконное приложение с двумя кнопками (скрин есть выше). При клике на кнопку "Получить данные" вы должны получить данные из АПИ (http сервер прилагается) и показать полученные данные в окне (справа от кнопки). При клике на кнопку "Отправить результаты теста" Вы должны вызвать свой метод проверки и результат проверки вывести справа от кнопки. Потом руками переписать полученные данные в приложенный файл ТестКейс.docx.

  1. Получение данных из АПИ

    Для "разбора" json-строки (которую возвращает сервер) используется библиотека Newtonsoft.json, которую нужно установить из NuGet

    // обработчик клика на кнопку
    private void GetFIOFromApi(object sender, RoutedEventArgs e)
    {
        HttpClient client = new HttpClient();
    
        // получение "тела" ответа от АПИ 
        var body = client.GetStringAsync("http://localhost:4444").Result;
    
        // разбор полученной JSON-строки в объект
        JObject jObject = JObject.Parse(body);
    
        // из объекта получаем значение по ключу
        FullNameTextButton.Text = JObject["value"].ToString();
    }
    
  2. Проверка валидности ФИО

    Вариантов может быть несколько: либо создать массив запрещённых символов и перебрать их в цикле сравнив с ФИО из предыдущего пункта, либо написать регулярку (что на мой взгляд правильнее)

    Ниже пример проверки с выводом на консоль, Вам нужно выводить в текстовое поле вашего оконного приложения.

    Console.Write(jObject["value"].ToString());
    
    if (Regex.IsMatch(jObject["value"].ToString(), @"^[А-Яа-яЁё]+\s+[А-Яа-яЁё]+\s+[А-Яа-яЁё]+$"))
        Console.WriteLine(": Успешно");
    else     
        Console.WriteLine(": Не успешно");
    

Пример заполнения ТестКейс.docx

Действие Ожидаемый результат Результат (Успешно/Не успешно)
Колесников Евгений Иванович Успешно Успешно
Кропинов! Андрей Михайлович Не успешно Не успешно
Сергеев# Иван Сергеевич Не успешно Успешно
  1. В колонке "Действие" пишете ФИО, полученное от АПИ
  2. В Колонке "Ожидаемый результат" пишете то что должно получиться
  3. В колонке "Результат" пишете результат проверки вашим методом

В идеале "Ожидаемый результат" и "Результат" должны совпадать