mirror of
https://github.com/bia-technologies/yaxunit.git
synced 2024-11-30 08:36:50 +02:00
Мокирование HTTPСервисЗапрос
This commit is contained in:
parent
c705ca5716
commit
077ee79295
@ -379,6 +379,18 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#Если Сервер Тогда
|
||||
// Возвращает мок для HTTPСервисЗапрос.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ОбработкаОбъект.ЮТHTTPСервисЗапрос - Мок
|
||||
Функция HTTPСервисЗапрос() Экспорт
|
||||
|
||||
Возврат Обработки.ЮТHTTPСервисЗапрос.Создать();
|
||||
|
||||
КонецФункции
|
||||
#КонецЕсли
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -71,5 +71,6 @@
|
||||
<commonModules>CommonModule.ЮТФильтрация</commonModules>
|
||||
<commonModules>CommonModule.ЮТЧитатель</commonModules>
|
||||
<commonModules>CommonModule.ЮТЧитательСервер</commonModules>
|
||||
<dataProcessors>DataProcessor.ЮТHTTPСервисЗапрос</dataProcessors>
|
||||
<dataProcessors>DataProcessor.ЮТЮнитТесты</dataProcessors>
|
||||
</mdclass:Configuration>
|
||||
|
@ -0,0 +1,252 @@
|
||||
//©///////////////////////////////////////////////////////////////////////////©//
|
||||
//
|
||||
// Copyright 2021-2023 BIA-Technologies Limited Liability Company
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//
|
||||
//©///////////////////////////////////////////////////////////////////////////©//
|
||||
|
||||
#Если Сервер Тогда
|
||||
|
||||
#Область ОписаниеПеременных
|
||||
|
||||
//@skip-check object-module-export-variable
|
||||
Перем HTTPМетод Экспорт;
|
||||
//@skip-check object-module-export-variable
|
||||
Перем БазовыйURL Экспорт;
|
||||
//@skip-check object-module-export-variable
|
||||
Перем Заголовки Экспорт;
|
||||
//@skip-check object-module-export-variable
|
||||
Перем ОтносительныйURL Экспорт;
|
||||
//@skip-check object-module-export-variable
|
||||
Перем ПараметрыURL Экспорт;
|
||||
//@skip-check object-module-export-variable
|
||||
Перем ПараметрыЗапроса Экспорт;
|
||||
|
||||
Перем Тело;
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ПрограммныйИнтерфейс
|
||||
|
||||
// Возвращает тело как двоичные данные.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ДвоичныеДанные - Тело
|
||||
Функция ПолучитьТелоКакДвоичныеДанные() Экспорт
|
||||
|
||||
ТипТела = ТипЗнч(Тело);
|
||||
|
||||
Если Тело = Неопределено Тогда
|
||||
Возврат ПолучитьДвоичныеДанныеИзBase64Строки("");
|
||||
ИначеЕсли ТипТела = Тип("ДвоичныеДанные") Тогда
|
||||
Возврат Тело;
|
||||
ИначеЕсли ТипТела = Тип("Строка") Тогда
|
||||
Возврат ПолучитьДвоичныеДанныеИзСтроки(Тело);
|
||||
КонецЕсли;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает тело как поток.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Поток - Тело
|
||||
Функция ПолучитьТелоКакПоток() Экспорт
|
||||
|
||||
Возврат ПолучитьТелоКакДвоичныеДанные().ОткрытьПотокДляЧтения();
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает тело как строку.
|
||||
//
|
||||
// Параметры:
|
||||
// Кодировка - КодировкаТекста, Строка - Кодировка
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Строка - Тело
|
||||
Функция ПолучитьТелоКакСтроку(Кодировка = Неопределено) Экспорт
|
||||
|
||||
ТипТела = ТипЗнч(Тело);
|
||||
|
||||
Если Тело = Неопределено Тогда
|
||||
Возврат "";
|
||||
ИначеЕсли ТипТела = Тип("ДвоичныеДанные") Тогда
|
||||
Возврат ПолучитьСтрокуИзДвоичныхДанных(Тело, Кодировка);
|
||||
ИначеЕсли ТипТела = Тип("Строка") Тогда
|
||||
Возврат Тело;
|
||||
КонецЕсли;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Устанавливает тело как двоичные данные.
|
||||
// При получении тела в другом формате происходит конвертация
|
||||
//
|
||||
// Параметры:
|
||||
// Данные - ДвоичныеДанные
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ОбработкаОбъект.ЮТHTTPСервисЗапрос - Мок
|
||||
Функция УстановитьТелоКакДвоичныеДанные(Данные) Экспорт
|
||||
|
||||
Тело = Данные;
|
||||
Возврат ЭтотОбъект;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Устанавливает тело как строку.
|
||||
// При получении тела в другом формате происходит конвертация
|
||||
//
|
||||
// Параметры:
|
||||
// Строка - Строка
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ОбработкаОбъект.ЮТHTTPСервисЗапрос - Мок
|
||||
Функция УстановитьТелоКакСтроку(Строка) Экспорт
|
||||
|
||||
Тело = Строка;
|
||||
Возврат ЭтотОбъект;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Устанавливает тело как строку JSON.
|
||||
// Сериализует переданный объект в строку JSON и сохраняет в тело
|
||||
// При получении тела в другом формате происходит конвертация
|
||||
//
|
||||
// Параметры:
|
||||
// Данные - Произвольный
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ОбработкаОбъект.ЮТHTTPСервисЗапрос - Мок
|
||||
Функция УстановитьТелоКакСтрокуJSON(Данные) Экспорт
|
||||
|
||||
ЗаписьJSON = Новый ЗаписьJSON();
|
||||
ЗаписьJSON.УстановитьСтроку();
|
||||
ЗаписатьJSON(ЗаписьJSON, Данные);
|
||||
|
||||
Тело = ЗаписьJSON.Закрыть();
|
||||
|
||||
Возврат ЭтотОбъект;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Добавляет заголовок.
|
||||
//
|
||||
// Параметры:
|
||||
// ИмяЗаголовка - Строка
|
||||
// Значение - Строка
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ОбработкаОбъект.ЮТHTTPСервисЗапрос - Мок
|
||||
Функция ДобавитьЗаголовок(ИмяЗаголовка, Значение) Экспорт
|
||||
|
||||
Заголовки.Вставить(ИмяЗаголовка, Значение);
|
||||
Возврат ЭтотОбъект;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Добавляет параметр запроса.
|
||||
//
|
||||
// Параметры:
|
||||
// ИмяПараметра - Строка
|
||||
// Значение - Строка
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ОбработкаОбъект.ЮТHTTPСервисЗапрос - Мок
|
||||
Функция ДобавитьПараметрЗапроса(ИмяПараметра, Значение) Экспорт
|
||||
|
||||
ПараметрыЗапроса.Вставить(ИмяПараметра, Значение);
|
||||
Возврат ЭтотОбъект;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Добавляет параметр URL.
|
||||
//
|
||||
// Параметры:
|
||||
// ИмяПараметра - Строка
|
||||
// Значение - Строка
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ОбработкаОбъект.ЮТHTTPСервисЗапрос - Мок
|
||||
Функция ДобавитьПараметрURL(ИмяПараметра, Значение) Экспорт
|
||||
|
||||
ПараметрыURL.Вставить(ИмяПараметра, Значение);
|
||||
Возврат ЭтотОбъект;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Устанавливает HTTP метод
|
||||
//
|
||||
// Параметры:
|
||||
// Значение - Строка - Имя http метода
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ОбработкаОбъект.ЮТHTTPСервисЗапрос - Мок
|
||||
Функция Метод(Значение) Экспорт
|
||||
|
||||
HTTPМетод = Значение;
|
||||
Возврат ЭтотОбъект;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Устанавливает базовый URL.
|
||||
//
|
||||
// Параметры:
|
||||
// Значение - Строка - базовый URL
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ОбработкаОбъект.ЮТHTTPСервисЗапрос - Мок
|
||||
Функция БазовыйURL(Значение) Экспорт
|
||||
|
||||
БазовыйURL = Значение;
|
||||
Возврат ЭтотОбъект;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Устанавливает относительный URL.
|
||||
//
|
||||
// Параметры:
|
||||
// Значение - Строка - относительный URL
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ОбработкаОбъект.ЮТHTTPСервисЗапрос - Мок
|
||||
Функция ОтносительныйURL(Значение) Экспорт
|
||||
|
||||
ОтносительныйURL = Значение;
|
||||
Возврат ЭтотОбъект;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
Процедура Инициализировать()
|
||||
|
||||
HTTPМетод = "GET";
|
||||
БазовыйURL = "";
|
||||
Заголовки = Новый Соответствие();
|
||||
ОтносительныйURL = "";
|
||||
ПараметрыURL = Новый Соответствие();
|
||||
ПараметрыЗапроса = Новый Соответствие();
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область Инициализация
|
||||
|
||||
Инициализировать();
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецЕсли
|
@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:DataProcessor xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="81c2b3c4-8e40-4811-aab0-e7a1371d0c51">
|
||||
<producedTypes>
|
||||
<objectType typeId="5b53c341-183f-4aa0-b3ec-1f355d0f74f5" valueTypeId="26dcab52-beab-4c30-aa64-02887735d56e"/>
|
||||
<managerType typeId="d0cecbc4-c89f-4ef2-ab8d-10bcfd8c514c" valueTypeId="50afe94b-4ccb-4a26-9a80-01121c6fef66"/>
|
||||
</producedTypes>
|
||||
<name>ЮТHTTPСервисЗапрос</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Мок для HTTPСервис запрос</value>
|
||||
</synonym>
|
||||
<useStandardCommands>true</useStandardCommands>
|
||||
</mdclass:DataProcessor>
|
@ -14,10 +14,15 @@
|
||||
<content>CommonModule.ЮТИсполнитель</content>
|
||||
<content>CommonModule.ЮТИсполнительСервер</content>
|
||||
<content>CommonModule.ЮТКонструкторВариантов</content>
|
||||
<content>CommonModule.ЮТКонструкторТестовыхДанных</content>
|
||||
<content>CommonModule.ЮТКонтекст</content>
|
||||
<content>CommonModule.ЮТКонтекстКлиент</content>
|
||||
<content>CommonModule.ЮТКонтекстСервер</content>
|
||||
<content>CommonModule.ЮТКонтекстТеста</content>
|
||||
<content>CommonModule.ЮТЛогирование</content>
|
||||
<content>CommonModule.ЮТЛогированиеВызовСервера</content>
|
||||
<content>CommonModule.ЮТМетаданные</content>
|
||||
<content>CommonModule.ЮТМетаданныеПовтИсп</content>
|
||||
<content>CommonModule.ЮТМетаданныеСервер</content>
|
||||
<content>CommonModule.ЮТОбщий</content>
|
||||
<content>CommonModule.ЮТОбщийВызовСервера</content>
|
||||
@ -31,6 +36,7 @@
|
||||
<content>CommonModule.ЮТСобытия</content>
|
||||
<content>CommonModule.ЮТТестовыеДанные</content>
|
||||
<content>CommonModule.ЮТТестовыеДанныеВызовСервера</content>
|
||||
<content>CommonModule.ЮТТестовыеДанныеСлужебный</content>
|
||||
<content>CommonModule.ЮТТесты</content>
|
||||
<content>CommonModule.ЮТУтверждения</content>
|
||||
<content>CommonModule.ЮТФабрика</content>
|
||||
@ -43,5 +49,7 @@
|
||||
<content>CommonPicture.ЮТУпал</content>
|
||||
<content>CommonPicture.ЮТУспешно</content>
|
||||
<content>CommonPicture.ЮТЭлементыТестов</content>
|
||||
<content>DataProcessor.ЮТHTTPСервисЗапрос</content>
|
||||
<content>DataProcessor.ЮТЮнитТесты</content>
|
||||
<content>CommonTemplate.ЮТОписаниеМетаданных</content>
|
||||
</mdclass:Subsystem>
|
||||
|
@ -0,0 +1,94 @@
|
||||
//©///////////////////////////////////////////////////////////////////////////©//
|
||||
//
|
||||
// Copyright 2021-2023 BIA-Technologies Limited Liability Company
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//
|
||||
//©///////////////////////////////////////////////////////////////////////////©//
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// Экспортные процедуры и функции, предназначенные для использования другими
|
||||
// объектами конфигурации или другими программами
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
#Область СлужебныйПрограммныйИнтерфейс
|
||||
|
||||
Процедура ИсполняемыеСценарии() Экспорт
|
||||
|
||||
ЮТТесты
|
||||
.ДобавитьТест("Конструктор")
|
||||
.ДобавитьТест("УстановитьТело")
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Конструктор() Экспорт
|
||||
|
||||
Запрос = ЮТест.Данные().HTTPСервисЗапрос()
|
||||
.ДобавитьЗаголовок("Заголовок", "Заголовок")
|
||||
.ДобавитьПараметрЗапроса("Параметр1", 1)
|
||||
.ДобавитьПараметрURL("Параметр2", 2)
|
||||
.Метод("GET");
|
||||
|
||||
ЮТест.ОжидаетЧто(Запрос)
|
||||
.Свойство("HTTPМетод").Равно("GET")
|
||||
.Свойство("Заголовки.Заголовок").Равно("Заголовок")
|
||||
.Свойство("ПараметрыЗапроса.Параметр1").Равно(1)
|
||||
.Свойство("ПараметрыURL.Параметр2").Равно(2);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура УстановитьТело() Экспорт
|
||||
|
||||
Описание = "Тело не установлено";
|
||||
|
||||
Запрос = ЮТест.Данные().HTTPСервисЗапрос();
|
||||
ЮТест.ОжидаетЧто(Запрос, Описание)
|
||||
.Метод("ПолучитьТелоКакДвоичныеДанные").НеВыбрасываетИсключение()
|
||||
.Метод("ПолучитьТелоКакПоток").НеВыбрасываетИсключение()
|
||||
.Метод("ПолучитьТелоКакСтроку").НеВыбрасываетИсключение()
|
||||
.Метод("ПолучитьТелоКакСтроку", ЮТОбщий.ЗначениеВМассиве(КодировкаТекста.UTF8)).НеВыбрасываетИсключение();
|
||||
ЮТест.ОжидаетЧто(Запрос.ПолучитьТелоКакСтроку()).Равно("");
|
||||
|
||||
Тело = "Тело";
|
||||
ДвоичныеДанные = ПолучитьДвоичныеДанныеИзСтроки(Тело);
|
||||
|
||||
Описание = "Тело установлено из двоичных данных";
|
||||
Запрос = ЮТест.Данные().HTTPСервисЗапрос()
|
||||
.УстановитьТелоКакДвоичныеДанные(ДвоичныеДанные);
|
||||
|
||||
ЮТест.ОжидаетЧто(Запрос.ПолучитьТелоКакДвоичныеДанные(), Описание + ". Получение двоичных данных").Равно(ДвоичныеДанные);
|
||||
ЮТест.ОжидаетЧто(Запрос.ПолучитьТелоКакСтроку(), Описание + ". Получение строки").Равно(Тело);
|
||||
ЮТест.ОжидаетЧто(Запрос.ПолучитьТелоКакСтроку("UTF-8"), Описание + ". Получение строки UTF-8").Равно(Тело);
|
||||
ЮТест.ОжидаетЧто(Запрос.ПолучитьТелоКакПоток(), Описание + ". Получение потока").ИмеетТип("Поток");
|
||||
|
||||
Описание = "Тело установлено из строки";
|
||||
Запрос = ЮТест.Данные().HTTPСервисЗапрос()
|
||||
.УстановитьТелоКакСтроку(Тело);
|
||||
|
||||
ЮТест.ОжидаетЧто(Запрос.ПолучитьТелоКакДвоичныеДанные(), Описание + ". Получение двоичных данных").Равно(ДвоичныеДанные);
|
||||
ЮТест.ОжидаетЧто(Запрос.ПолучитьТелоКакСтроку(), Описание + ". Получение строки").Равно(Тело);
|
||||
ЮТест.ОжидаетЧто(Запрос.ПолучитьТелоКакСтроку("UTF-8"), Описание + ". Получение строки UTF-8").Равно(Тело);
|
||||
ЮТест.ОжидаетЧто(Запрос.ПолучитьТелоКакПоток(), Описание + ". Получение потока").ИмеетТип("Поток");
|
||||
|
||||
Описание = "Тело установлено из JSON";
|
||||
Запрос = ЮТест.Данные().HTTPСервисЗапрос()
|
||||
.УстановитьТелоКакСтрокуJSON(Новый Массив());
|
||||
ЮТест.ОжидаетЧто(Запрос.ПолучитьТелоКакСтроку(), Описание + ". Получение строки").Равно("[]");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
#КонецОбласти
|
@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="2d597d20-67f3-47c7-96e0-c0e0241f0e9b">
|
||||
<name>Обр_ЮТHTTPСервисЗапрос</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Обр HTTPСервис запрос</value>
|
||||
</synonym>
|
||||
<server>true</server>
|
||||
</mdclass:CommonModule>
|
@ -24,6 +24,7 @@
|
||||
<languageCode>ru</languageCode>
|
||||
</languages>
|
||||
<commonModules>CommonModule.Интеграция</commonModules>
|
||||
<commonModules>CommonModule.Обр_ЮТHTTPСервисЗапрос</commonModules>
|
||||
<commonModules>CommonModule.ОМ_Мокито</commonModules>
|
||||
<commonModules>CommonModule.ОМ_МокитоОбучение</commonModules>
|
||||
<commonModules>CommonModule.ОМ_Общий</commonModules>
|
||||
|
Loading…
Reference in New Issue
Block a user