1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2024-11-24 08:52:18 +02:00

Тесты над YAXUnit

This commit is contained in:
Anton 2024-02-07 19:31:10 +03:00
parent 44c6a529ff
commit 9e27f8eafa
5 changed files with 348 additions and 6 deletions

View File

@ -1,3 +1,3 @@
Manifest-Version: 1.0
Runtime-Version: 8.3.18
Base-Project: OPI_Conf
Runtime-Version: 8.3.15
Base-Project: OpenIntegrations

View File

@ -72,6 +72,20 @@
КонецФункции
// Удалить Webhook.
//
// Параметры:
// Токен - Строка - Токен
//
// Возвращаемое значение:
// ДвоичныеДанные, Неопределено, Произвольный - Ответ сервера Telegram
Функция УдалитьWebhook(Знач Токен) Экспорт
Ответ = OPI_Инструменты.Get("api.telegram.org/bot" + Токен + "/deleteWebHook");
Возврат Ответ;
КонецФункции
// Обработать данные, полученные на Webhook.
//
// Параметры:

View File

@ -0,0 +1,318 @@
//Набор тестов для YAxUnit
//@skip-check undefined-variable
#Область СлужебныйПрограммныйИнтерфейс
Процедура ИсполняемыеСценарии() Экспорт
ЮТТесты
.ДобавитьТестовыйНабор("Телеграм")
.ДобавитьСерверныйТест("Телеграм_ПолучитьИнформациюБота" , "Получить информацию бота")
.ДобавитьСерверныйТест("Телеграм_ПолучитьОбновления" , "Получить обновления")
.ДобавитьСерверныйТест("Телеграм_УстановитьWebhook" , "Установить Webhook")
.ДобавитьСерверныйТест("Телеграм_УдалитьWebhook" , "Удалить Webhook")
.ДобавитьСерверныйТест("Телеграм_ОтправитьТекстовоеСообщение" , "Отправить текстовое сообщение")
.ДобавитьСерверныйТест("Телеграм_ОтправитьКартинку" , "Отправить картинку")
.ДобавитьСерверныйТест("Телеграм_ОтправитьВидео" , "Отправить видео")
.ДобавитьСерверныйТест("Телеграм_ОтправитьАудио" , "Отправить аудио")
.ДобавитьСерверныйТест("Телеграм_ОтправитьДокумент" , "Отправить документ")
.ДобавитьСерверныйТест("Телеграм_ОтправитьГифку" , "Отправить гифку");
КонецПроцедуры
#Область Тесты
#Область Telegram
Процедура Телеграм_ПолучитьИнформациюБота() Экспорт
Токен = ПолучитьПараметр("Телеграм_Токен");
Результат = OPI_Telegram.ПолучитьИнформациюБота(Токен);
ЮТест.ОжидаетЧто(Результат)
.ИмеетТип("Соответствие")
.Заполнено()
.Свойство("ok").Равно(Истина)
.Свойство("result.username").Заполнено();
КонецПроцедуры
Процедура Телеграм_ПолучитьОбновления() Экспорт
Токен = ПолучитьПараметр("Телеграм_Токен");
Результат = OPI_Telegram.ПолучитьОбновления(Токен);
OPI_Telegram.УдалитьWebhook(Токен);
ЮТест.ОжидаетЧто(Результат)
.ИмеетТип("Соответствие")
.Заполнено()
.Свойство("ok").Равно(Истина)
.Свойство("result").ИмеетТип(Тип("Массив"));
КонецПроцедуры
Процедура Телеграм_УстановитьWebhook() Экспорт
Токен = ПолучитьПараметр("Телеграм_Токен");
URL = ПолучитьПараметр("Телеграм_URL");
Результат = OPI_Telegram.УстановитьWebhook(Токен, URL);
ЮТест.ОжидаетЧто(Результат)
.ИмеетТип("Соответствие")
.Заполнено()
.Свойство("ok").Равно(Истина)
.Свойство("result").Равно(Истина)
.Свойство("description").Равно("Webhook was set");
КонецПроцедуры
Процедура Телеграм_УдалитьWebhook() Экспорт
Токен = ПолучитьПараметр("Телеграм_Токен");
Результат = OPI_Telegram.УдалитьWebhook(Токен);
ЮТест.ОжидаетЧто(Результат)
.ИмеетТип("Соответствие")
.Заполнено()
.Свойство("ok").Равно(Истина)
.Свойство("result").Равно(Истина)
.Свойство("description").Равно("Webhook was deleted");
КонецПроцедуры
Процедура Телеграм_ОтправитьТекстовоеСообщение() Экспорт
Токен = ПолучитьПараметр("Телеграм_Токен");
IDЧата = ПолучитьПараметр("Телеграм_Чат");
IDКанала = ПолучитьПараметр("Телеграм_Канал");
Текст = "Сообщение из автоматического теста";
МассивРезультатов = Новый Массив;
МассивРезультатов.Добавить(OPI_Telegram.ОтправитьТекстовоеСообщение(Токен, IDЧата, Текст));
МассивРезультатов.Добавить(OPI_Telegram.ОтправитьТекстовоеСообщение(Токен, IDКанала, Текст));
Для Каждого Результат Из МассивРезультатов Цикл
ЮТест.ОжидаетЧто(Результат)
.ИмеетТип("Соответствие")
.Заполнено()
.Свойство("ok").Равно(Истина)
.Свойство("result.text").Равно(Текст);
КонецЦикла;
КонецПроцедуры
Процедура Телеграм_ОтправитьКартинку() Экспорт
Токен = ПолучитьПараметр("Телеграм_Токен");
IDЧата = ПолучитьПараметр("Телеграм_Чат");
IDКанала = ПолучитьПараметр("Телеграм_Канал");
Текст = "Сообщение из автоматического теста";
Картинка = ПолучитьДвоичные("Картинка");
ИВФ = ПолучитьИмяВременногоФайла("png");
Картинка.Записать(ИВФ);
МассивРезультатов = Новый Массив;
МассивРезультатов.Добавить(OPI_Telegram.ОтправитьКартинку(Токен, IDЧата , Текст, Картинка));
МассивРезультатов.Добавить(OPI_Telegram.ОтправитьКартинку(Токен, IDКанала, Текст, Картинка));
МассивРезультатов.Добавить(OPI_Telegram.ОтправитьКартинку(Токен, IDЧата , Текст, ИВФ));
МассивРезультатов.Добавить(OPI_Telegram.ОтправитьКартинку(Токен, IDКанала, Текст, ИВФ));
Для Каждого Результат Из МассивРезультатов Цикл
ЮТест.ОжидаетЧто(Результат)
.ИмеетТип("Соответствие")
.Заполнено()
.Свойство("ok").Равно(Истина)
.Свойство("result.caption").Равно(Текст)
.Свойство("result.photo").ИмеетТип(Тип("Массив"));
КонецЦикла;
УдалитьФайлы(ИВФ);
КонецПроцедуры
Процедура Телеграм_ОтправитьВидео() Экспорт
Токен = ПолучитьПараметр("Телеграм_Токен");
IDЧата = ПолучитьПараметр("Телеграм_Чат");
IDКанала = ПолучитьПараметр("Телеграм_Канал");
Текст = "Сообщение из автоматического теста";
Картинка = ПолучитьДвоичные("Видео");
ИВФ = ПолучитьИмяВременногоФайла("mp4");
Картинка.Записать(ИВФ);
МассивРезультатов = Новый Массив;
МассивРезультатов.Добавить(OPI_Telegram.ОтправитьВидео(Токен, IDЧата , Текст, Картинка));
МассивРезультатов.Добавить(OPI_Telegram.ОтправитьВидео(Токен, IDКанала, Текст, Картинка));
МассивРезультатов.Добавить(OPI_Telegram.ОтправитьВидео(Токен, IDЧата , Текст, ИВФ));
МассивРезультатов.Добавить(OPI_Telegram.ОтправитьВидео(Токен, IDКанала, Текст, ИВФ));
Для Каждого Результат Из МассивРезультатов Цикл
//@skip-warning
ЮТест.ОжидаетЧто(Результат)
.ИмеетТип("Соответствие")
.Заполнено()
.Свойство("ok").Равно(Истина)
.Свойство("result.caption").Равно(Текст)
.Свойство("result.video.mime_type").Равно("video/mp4");
КонецЦикла;
УдалитьФайлы(ИВФ);
КонецПроцедуры
Процедура Телеграм_ОтправитьАудио() Экспорт
Токен = ПолучитьПараметр("Телеграм_Токен");
IDЧата = ПолучитьПараметр("Телеграм_Чат");
IDКанала = ПолучитьПараметр("Телеграм_Канал");
Текст = "Сообщение из автоматического теста";
Аудио = ПолучитьДвоичные("Аудио");
ИВФ = ПолучитьИмяВременногоФайла("mp3");
Аудио.Записать(ИВФ);
МассивРезультатов = Новый Массив;
МассивРезультатов.Добавить(OPI_Telegram.ОтправитьАудио(Токен, IDЧата , Текст, Аудио));
МассивРезультатов.Добавить(OPI_Telegram.ОтправитьАудио(Токен, IDКанала, Текст, Аудио));
МассивРезультатов.Добавить(OPI_Telegram.ОтправитьАудио(Токен, IDЧата , Текст, ИВФ));
МассивРезультатов.Добавить(OPI_Telegram.ОтправитьАудио(Токен, IDКанала, Текст, ИВФ));
Для Каждого Результат Из МассивРезультатов Цикл
ЮТест.ОжидаетЧто(Результат)
.ИмеетТип("Соответствие")
.Заполнено()
.Свойство("ok").Равно(Истина)
.Свойство("result.caption").Равно(Текст)
.Свойство("result.audio.mime_type").Равно("audio/mpeg");
КонецЦикла;
УдалитьФайлы(ИВФ);
КонецПроцедуры
Процедура Телеграм_ОтправитьДокумент() Экспорт
Токен = ПолучитьПараметр("Телеграм_Токен");
IDЧата = ПолучитьПараметр("Телеграм_Чат");
IDКанала = ПолучитьПараметр("Телеграм_Канал");
Текст = "Сообщение из автоматического теста";
Документ = ПолучитьДвоичные("Документ");
ИВФ = ПолучитьИмяВременногоФайла("docx");
Документ.Записать(ИВФ);
МассивРезультатов = Новый Массив;
МассивРезультатов.Добавить(OPI_Telegram.ОтправитьДокумент(Токен, IDЧата , Текст, Документ));
МассивРезультатов.Добавить(OPI_Telegram.ОтправитьДокумент(Токен, IDКанала, Текст, Документ));
МассивРезультатов.Добавить(OPI_Telegram.ОтправитьДокумент(Токен, IDЧата , Текст, ИВФ));
МассивРезультатов.Добавить(OPI_Telegram.ОтправитьДокумент(Токен, IDКанала, Текст, ИВФ));
Для Каждого Результат Из МассивРезультатов Цикл
ЮТест.ОжидаетЧто(Результат)
.ИмеетТип("Соответствие")
.Заполнено()
.Свойство("ok").Равно(Истина)
.Свойство("result.caption").Равно(Текст)
.Свойство("result.document").ИмеетТип("Соответствие").Заполнено();
КонецЦикла;
УдалитьФайлы(ИВФ);
КонецПроцедуры
Процедура Телеграм_ОтправитьГифку() Экспорт
Токен = ПолучитьПараметр("Телеграм_Токен");
IDЧата = ПолучитьПараметр("Телеграм_Чат");
IDКанала = ПолучитьПараметр("Телеграм_Канал");
Текст = "Сообщение из автоматического теста";
Гифка = ПолучитьДвоичные("Гифка");
ИВФ = ПолучитьИмяВременногоФайла("gif");
Гифка.Записать(ИВФ);
МассивРезультатов = Новый Массив;
МассивРезультатов.Добавить(OPI_Telegram.ОтправитьГифку(Токен, IDЧата , Текст, Гифка));
МассивРезультатов.Добавить(OPI_Telegram.ОтправитьГифку(Токен, IDКанала, Текст, Гифка));
МассивРезультатов.Добавить(OPI_Telegram.ОтправитьГифку(Токен, IDЧата , Текст, ИВФ));
МассивРезультатов.Добавить(OPI_Telegram.ОтправитьГифку(Токен, IDКанала, Текст, ИВФ));
Для Каждого Результат Из МассивРезультатов Цикл
ЮТест.ОжидаетЧто(Результат)
.ИмеетТип("Соответствие")
.Заполнено()
.Свойство("ok").Равно(Истина)
.Свойство("result.caption").Равно(Текст)
.Свойство("result.document").ИмеетТип("Соответствие").Заполнено()
.Свойство("result.animation.mime_type").Равно("video/mp4");
КонецЦикла;
УдалитьФайлы(ИВФ);
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
Функция ПолучитьПараметр(Параметр)
ИмяСправочника = "ЮТПараметры";
ИмяРеквизита = "Значение";
Возврат ПолучитьЗначение(Параметр, ИмяСправочника, ИмяРеквизита);
КонецФункции
Функция ПолучитьДвоичные(Имя)
ИмяСправочника = "ЮТФайлы";
ИмяРеквизита = "Значение";
Возврат ПолучитьЗначение(Имя, ИмяСправочника, ИмяРеквизита);
КонецФункции
Функция ПолучитьЗначение(Параметр, ИмяСправочника, ИмяРеквизита)
ЭлементСпр = Справочники[ИмяСправочника].НайтиПоНаименованию(Параметр);
Значение = ЭлементСпр[ИмяРеквизита];
Если ТипЗнч(Значение) = Тип("ХранилищеЗначения") Тогда
Значение = Значение.Получить();
КонецЕсли;
Возврат Значение;
КонецФункции
Процедура ЗаписатьПараметр(Параметр, Значение)
ИмяСправочника = "ЮТПараметры";
ИмяРеквизита = "Значение";
ЭлементСпр = Справочники[ИмяСправочника].НайтиПоНаименованию(Параметр);
ОбъектСпр = ЭлементСпр.ПолучитьОбъект();
ОбъектСпр[ИмяРеквизита] = Значение;
ОбъектСпр.Записать();
КонецПроцедуры
#КонецОбласти

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="ca6868b2-8987-4ae3-9d97-50a8becc72df">
<name>YAX_Тесты</name>
<synonym>
<key>ru</key>
<value>Тесты для YaxUnit (ОПИ)</value>
</synonym>
<server>true</server>
<externalConnection>true</externalConnection>
<clientOrdinaryApplication>true</clientOrdinaryApplication>
</mdclass:CommonModule>

View File

@ -9,7 +9,6 @@
<extension xsi:type="mdclassExtension:ConfigurationExtension">
<defaultRunMode>Checked</defaultRunMode>
<usePurposes>Checked</usePurposes>
<defaultLanguage>Checked</defaultLanguage>
<interfaceCompatibilityMode>Checked</interfaceCompatibilityMode>
</extension>
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="12689443-2950-4e3b-b313-9a692b6acac7"/>
@ -28,7 +27,6 @@
<scriptVariant>Russian</scriptVariant>
<vendor>Bayselonarrend</vendor>
<version>1.1.0</version>
<defaultLanguage>Language.Русский</defaultLanguage>
<detailedInformation>
<key>ru</key>
<value>Открытый пакет интеграций - набор библиотек для интеграции с некоторыми популярными API для 1C:Enterprise. Он состоит из общих модулей, каждый из которых отвечает за свой API, а также нескольких модулей-инструментов, общих для всех.</value>
@ -41,11 +39,11 @@
<key>ru</key>
<value>https://github.com/Bayselonarrend/OpenIntegrations</value>
</configurationInformationAddress>
<languages uuid="0e858b44-34f3-4d20-986d-13290bb5ba5a" extendedConfigurationObject="6baf84ae-5c74-4fe2-8467-219a78580fe7">
<compatibilityMode>8.3.15</compatibilityMode>
<languages uuid="0e858b44-34f3-4d20-986d-13290bb5ba5a">
<name>Русский</name>
<objectBelonging>Adopted</objectBelonging>
<extension xsi:type="mdclassExtension:LanguageExtension">
<extendedConfigurationObject>Checked</extendedConfigurationObject>
<languageCode>Checked</languageCode>
</extension>
<languageCode>ru</languageCode>
@ -59,4 +57,5 @@
<commonModules>CommonModule.OPI_Криптография</commonModules>
<commonModules>CommonModule.OPI_YandexID</commonModules>
<commonModules>CommonModule.OPI_YandexDisk</commonModules>
<commonModules>CommonModule.YAX_Тесты</commonModules>
</mdclass:Configuration>