1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2024-12-25 02:42:28 +02:00

YAX: тесты Telegram и Yandex Disk

This commit is contained in:
Anton 2024-02-08 18:44:39 +03:00
parent 174f9448fa
commit 22ffc3c4d2
8 changed files with 392 additions and 7 deletions

View File

@ -1,6 +1,6 @@
// MIT License
// Copyright (c) 2024 Anton Tsitavets
// Copyright (c) 2023 Anton Tsitavets
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal

View File

@ -21,6 +21,9 @@
// SOFTWARE.
// https://github.com/Bayselonarrend/OpenIntegrations
// BSLLS:Typo-off
#Область ПрограммныйИнтерфейс
#Область ДанныеИНастройка
@ -823,4 +826,6 @@
КонецФункции
#КонецОбласти
#КонецОбласти
// BSLLS:Typo-on

View File

@ -24,6 +24,8 @@
// Если в не знаете с чего начать, то стоит найти метод ПолучитьСтандартныеПараметры()
// и почитать комментарии
// BSLLS:Typo-off
#Область ПрограммныйИнтерфейс
#Область ДанныеИНастройка
@ -593,4 +595,6 @@
// BSLLS:LatinAndCyrillicSymbolInWord-on
#КонецОбласти
#КонецОбласти
// BSLLS:Typo-on

View File

@ -1,3 +1,27 @@
// MIT License
// Copyright (c) 2023 Anton Tsitavets
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
// The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software.
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
// https://github.com/Bayselonarrend/OpenIntegrations
#Область ПрограммныйИнтерфейс
#Область РаботаСФайламиИПапками

View File

@ -1,3 +1,27 @@
// MIT License
// Copyright (c) 2023 Anton Tsitavets
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
// The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software.
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
// https://github.com/Bayselonarrend/OpenIntegrations
#Область ПрограммныйИнтерфейс
// Получить код подтверждения.

View File

@ -21,6 +21,7 @@
// SOFTWARE.
// https://github.com/Bayselonarrend/OpenIntegrations
#Область СлужебныйПрограммныйИнтерфейс
#Область HTTPМетоды

View File

@ -22,8 +22,23 @@
.ДобавитьСерверныйТест("Телеграм_ОтправитьМестоположение" , "Отправить местоположение")
.ДобавитьСерверныйТест("Телеграм_ОтправитьКонтакт" , "Отправить контакт")
.ДобавитьСерверныйТест("Телеграм_ОтправитьОпрос" , "Отправить опрос")
.ДобавитьСерверныйТест("Телеграм_ПереслатьСообщение" , "Переслать сообщение");
.ДобавитьСерверныйТест("Телеграм_ПереслатьСообщение" , "Переслать сообщение")
.ДобавитьСерверныйТест("Телеграм_БанРазбан" , "Бан/Разбан")
.ДобавитьСерверныйТест("Телеграм_СоздатьСсылкуПриглашение" , "Создать ссылку-приглашение")
.ДобавитьСерверныйТест("Телеграм_ЗакрепитьОткрепитьСообщение" , "Закрепить/открепить сообщение")
.ДобавитьСерверныйТест("Телеграм_ПолучитьЧислоУчастников" , "Получить число участников")
.ДобавитьТестовыйНабор("Яндекс.Диск")
.ДобавитьСерверныйТест("ЯДиск_ПолучитьИнформациюОДиске" , "Получить информацию о диске")
.ДобавитьСерверныйТест("ЯДиск_СоздатьПапку" , "Создать папку")
.ДобавитьСерверныйТест("ЯДиск_ЗагрузитьПоURLПолучитьОбъект" , "Загрузить по URL/Получить объект")
.ДобавитьСерверныйТест("ЯДиск_ЗагрузитьУдалитьФайл" , "Загрузить/Удалить файл")
.ДобавитьСерверныйТест("ЯДиск_СоздатьКопиюОбъекта" , "Создать копию объекта")
.ДобавитьСерверныйТест("ЯДиск_ПолучитьСсылкуНаСкачивание" , "Получить ссылку на скачивание")
.ДобавитьСерверныйТест("ЯДиск_ПолучитьСписокФайлов" , "Получить список файлов")
.ДобавитьСерверныйТест("ЯДиск_ПереместитьОбъект" , "Переместить объект")
.ДобавитьСерверныйТест("ЯДиск_ОпубликоватьОтменитьОбъект" , "Опубликовать / Отменить публикацию");
КонецПроцедуры
#Область Тесты
@ -408,6 +423,319 @@
КонецПроцедуры
Процедура Телеграм_БанРазбан() Экспорт
Токен = ПолучитьПараметр("Телеграм_Токен");
IDЧата = ПолучитьПараметр("Телеграм_Чат");
IDКанала = ПолучитьПараметр("Телеграм_Канал");
МассивРезультатов = Новый Массив;
МассивРезультатов.Добавить(OPI_Telegram.Бан(Токен, IDКанала, IDЧата));
МассивРезультатов.Добавить(OPI_Telegram.Разбан(Токен, IDКанала, IDЧата));
Для Каждого Результат Из МассивРезультатов Цикл
ЮТест.ОжидаетЧто(Результат)
.ИмеетТип("Соответствие")
.Заполнено()
.Свойство("description").Равно("Bad Request: can't remove chat owner");
КонецЦикла;
КонецПроцедуры
Процедура Телеграм_СоздатьСсылкуПриглашение() Экспорт
ТекущаяДата = ТекущаяДатаСеанса();
Токен = ПолучитьПараметр("Телеграм_Токен");
IDКанала = ПолучитьПараметр("Телеграм_Канал");
Заголовок = "Ссылка " + Строка(ТекущаяДата);
Истечение = ТекущаяДата + 3600;
UnixИстечение = Число(OPI_Инструменты.UNIXTime(Истечение));
Результат = OPI_Telegram.СоздатьСсылкуПриглашение(Токен, IDКанала, Заголовок, Истечение, 200);
ЮТест.ОжидаетЧто(Результат)
.ИмеетТип("Соответствие")
.Заполнено()
.Свойство("ok").Равно(Истина)
.Свойство("result.member_limit").Равно(200)
.Свойство("result.name").Равно(Заголовок)
.Свойство("result.expire_date").Равно(UnixИстечение);
КонецПроцедуры
Процедура Телеграм_ЗакрепитьОткрепитьСообщение() Экспорт
Токен = ПолучитьПараметр("Телеграм_Токен");
IDКанала = ПолучитьПараметр("Телеграм_Канал");
IDСообщения = ПолучитьПараметр("Телеграм_IDСообщенияКанала");
МассивРезультатов = Новый Массив;
МассивРезультатов.Добавить(OPI_Telegram.ЗакрепитьСообщение(Токен, IDКанала, IDСообщения));
МассивРезультатов.Добавить(OPI_Telegram.ОткрепитьСообщение(Токен, IDКанала, IDСообщения));
Для Каждого Результат Из МассивРезультатов Цикл
ЮТест.ОжидаетЧто(Результат)
.ИмеетТип("Соответствие")
.Заполнено()
.Свойство("ok").Равно(Истина)
.Свойство("result").Равно(Истина);
КонецЦикла;
КонецПроцедуры
Процедура Телеграм_ПолучитьЧислоУчастников() Экспорт
Токен = ПолучитьПараметр("Телеграм_Токен");
IDКанала = ПолучитьПараметр("Телеграм_Канал");
Результат = OPI_Telegram.ПолучитьЧислоУчастников(Токен, IDКанала);
ЮТест.ОжидаетЧто(Результат)
.ИмеетТип("Соответствие")
.Заполнено()
.Свойство("ok").Равно(Истина)
.Свойство("result").ИмеетТип(Тип("Число"));
КонецПроцедуры
#КонецОбласти
#Область YandexDisk
Процедура ЯДиск_ПолучитьИнформациюОДиске() Экспорт
Токен = ПолучитьПараметр("ЯДиск_Токен");
ЮТест.ОжидаетЧто(OPI_YandexDisk.ПолучитьИнформациюОДиске(Токен))
.ИмеетТип("Соответствие")
.Заполнено()
.Свойство("system_folders").ИмеетТип("Соответствие")
.Свойство("user").ИмеетТип("Соответствие");
КонецПроцедуры
Процедура ЯДиск_СоздатьПапку() Экспорт
Токен = ПолучитьПараметр("ЯДиск_Токен");
Путь = "/" + Строка(Новый УникальныйИдентификатор);
Результат = OPI_YandexDisk.СоздатьПапку(Токен, Путь);
ЮТест.ОжидаетЧто(Результат)
.ИмеетТип("Соответствие")
.Заполнено()
.Свойство("method").Равно("GET")
.Свойство("href").ИмеетТип("Строка").Заполнено();
OPI_YandexDisk.УдалитьОбъект(Токен, Путь, Ложь);
КонецПроцедуры
Процедура ЯДиск_ЗагрузитьПоURLПолучитьОбъект() Экспорт
Токен = ПолучитьПараметр("ЯДиск_Токен");
Путь = "/" + Строка(Новый УникальныйИдентификатор) + ".png";
URL = "https://raw.githubusercontent.com/Bayselonarrend/OpenIntegrations/main/Media/logo.png";
OPI_YandexDisk.ЗагрузитьФайлПоURL(Токен, Путь, URL);
ЮТОбщий.Пауза(10);
Результат = OPI_YandexDisk.ПолучитьОбъект(Токен, Путь);
ЮТест.ОжидаетЧто(Результат)
.ИмеетТип("Соответствие")
.Заполнено()
.Свойство("type").Равно("file")
.Свойство("path").Равно("disk:" + Путь);
OPI_YandexDisk.УдалитьОбъект(Токен, Путь, Ложь);
КонецПроцедуры
Процедура ЯДиск_ЗагрузитьУдалитьФайл() Экспорт
Токен = ПолучитьПараметр("ЯДиск_Токен");
Путь = "/" + Строка(Новый УникальныйИдентификатор) + ".png";
Картинка = ПолучитьДвоичные("Картинка");
ИВФ = ПолучитьИмяВременногоФайла("png");
Картинка.Записать(ИВФ);
МассивРезультатов = Новый Массив;
МассивРезультатов.Добавить(OPI_YandexDisk.ЗагрузитьФайл(Токен, Путь, Картинка, Истина));
ЮТОбщий.Пауза(10);
МассивРезультатов.Добавить(OPI_YandexDisk.УдалитьОбъект(Токен, Путь, Ложь));
МассивРезультатов.Добавить(OPI_YandexDisk.ЗагрузитьФайл(Токен, Путь, ИВФ, Истина));
ЮТОбщий.Пауза(10);
МассивРезультатов.Добавить(OPI_YandexDisk.УдалитьОбъект(Токен, Путь, Ложь));
Для Каждого Результат Из МассивРезультатов Цикл
ЮТест.ОжидаетЧто(Результат)
. ИмеетТип("Строка")
. НеЗаполнено();
КонецЦикла;
УдалитьФайлы(ИВФ);
КонецПроцедуры
Процедура ЯДиск_СоздатьКопиюОбъекта() Экспорт
Токен = ПолучитьПараметр("ЯДиск_Токен");
ПутьОригинала = "/" + Строка(Новый УникальныйИдентификатор) + ".png";
ПутьКопии = "/" + Строка(Новый УникальныйИдентификатор) + ".png";
URL = "https://raw.githubusercontent.com/Bayselonarrend/"
+ "OpenIntegrations/main/Media/logo.png";
OPI_YandexDisk.ЗагрузитьФайлПоURL(Токен, ПутьОригинала, URL);
ЮТОбщий.Пауза(10);
Результат = OPI_YandexDisk.СоздатьКопиюОбъекта(Токен, ПутьОригинала, ПутьКопии, Истина);
ЮТОбщий.Пауза(10);
ЮТест.ОжидаетЧто(Результат)
.ИмеетТип("Соответствие")
.Заполнено()
.Свойство("method").Равно("GET")
.Свойство("href").ИмеетТип("Строка").Заполнено();
РезультатПроверки = OPI_YandexDisk.ПолучитьОбъект(Токен, ПутьКопии);
ЮТест.ОжидаетЧто(РезультатПроверки)
.ИмеетТип("Соответствие")
.Заполнено()
.Свойство("type").Равно("file")
.Свойство("path").Равно("disk:" + ПутьКопии);
OPI_YandexDisk.УдалитьОбъект(Токен, ПутьОригинала, Ложь);
OPI_YandexDisk.УдалитьОбъект(Токен, ПутьКопии, Ложь);
КонецПроцедуры
Процедура ЯДиск_ПолучитьСсылкуНаСкачивание() Экспорт
Токен = ПолучитьПараметр("ЯДиск_Токен");
Путь = "/" + Строка(Новый УникальныйИдентификатор) + ".png";
URL = "https://raw.githubusercontent.com/Bayselonarrend/OpenIntegrations/main/Media/logo.png";
OPI_YandexDisk.ЗагрузитьФайлПоURL(Токен, Путь, URL);
ЮТОбщий.Пауза(10);
Результат = OPI_YandexDisk.ПолучитьСсылкуДляСкачивания(Токен, Путь);
ЮТест.ОжидаетЧто(Результат)
.ИмеетТип("Соответствие")
.Заполнено()
.Свойство("method").Равно("GET")
.Свойство("href").ИмеетТип("Строка").Заполнено();
OPI_YandexDisk.УдалитьОбъект(Токен, Путь, Ложь);
КонецПроцедуры
Процедура ЯДиск_ПолучитьСписокФайлов() Экспорт
Токен = ПолучитьПараметр("ЯДиск_Токен");
Количество = 2;
Отступ = 1;
Результат = OPI_YandexDisk.ПолучитьСписокФайлов(Токен, Количество, Отступ, "image");
ЮТест.ОжидаетЧто(Результат)
.ИмеетТип("Соответствие")
.Заполнено()
.Свойство("limit").Равно(Количество)
.Свойство("offset").Равно(Отступ)
.Свойство("items").ИмеетТип("Массив").ИмеетДлину(Количество);
КонецПроцедуры
Процедура ЯДиск_ПереместитьОбъект() Экспорт
Токен = ПолучитьПараметр("ЯДиск_Токен");
ПутьОригинала = "/" + Строка(Новый УникальныйИдентификатор) + ".png";
ПутьКопии = "/" + Строка(Новый УникальныйИдентификатор) + ".png";
URL = "https://raw.githubusercontent.com/Bayselonarrend/"
+ "OpenIntegrations/main/Media/logo.png";
OPI_YandexDisk.ЗагрузитьФайлПоURL(Токен, ПутьОригинала, URL);
ЮТОбщий.Пауза(15);
Результат = OPI_YandexDisk.ПереместитьОбъект(Токен, ПутьОригинала, ПутьКопии, Истина);
ЮТест.ОжидаетЧто(Результат)
.ИмеетТип("Соответствие")
.Заполнено()
.Свойство("method").Равно("GET")
.Свойство("href").ИмеетТип("Строка").Заполнено();
РезультатПроверки = OPI_YandexDisk.ПолучитьОбъект(Токен, ПутьКопии);
ЮТест.ОжидаетЧто(РезультатПроверки)
.ИмеетТип("Соответствие")
.Заполнено()
.Свойство("type").Равно("file")
.Свойство("path").Равно("disk:" + ПутьКопии);
OPI_YandexDisk.УдалитьОбъект(Токен, ПутьОригинала, Ложь);
OPI_YandexDisk.УдалитьОбъект(Токен, ПутьКопии, Ложь);
КонецПроцедуры
Процедура ЯДиск_ОпубликоватьОтменитьОбъект() Экспорт
Токен = ПолучитьПараметр("ЯДиск_Токен");
Путь = "/" + Строка(Новый УникальныйИдентификатор) + ".png";
URL = "https://raw.githubusercontent.com/Bayselonarrend/OpenIntegrations/main/Media/logo.png";
OPI_YandexDisk.ЗагрузитьФайлПоURL(Токен, Путь, URL);
ЮТОбщий.Пауза(10);
МассивРезультатов = Новый Массив;
МассивРезультатов.Добавить(OPI_YandexDisk.ОпубликоватьОбъект(Токен, Путь));
МассивРезультатов.Добавить(OPI_YandexDisk.ОтменитьПубликациюОбъекта(Токен, Путь));
Для Каждого Результат Из МассивРезультатов Цикл
ЮТест.ОжидаетЧто(Результат)
.ИмеетТип("Соответствие")
.Заполнено()
.Свойство("method").Равно("GET")
.Свойство("href").ИмеетТип("Строка").Заполнено();
КонецЦикла;
OPI_YandexDisk.УдалитьОбъект(Токен, Путь, Ложь);
КонецПроцедуры
Процедура ЯДиск_ПолучитьСписокОпубликованныхОбъектов() Экспорт
Токен = ПолучитьПараметр("ЯДиск_Токен");
Количество = 2;
Отступ = 0;
Результат = OPI_YandexDisk.ПолучитьСписокОпубликованныхОбъектов(Токен, Количество, Отступ);
ЮТест.ОжидаетЧто(Результат)
.ИмеетТип("Соответствие")
.Заполнено()
.Свойство("limit").Равно(Количество)
.Свойство("offset").Равно(Отступ)
.Свойство("items").ИмеетТип("Массив").ИмеетДлину(Количество);
КонецПроцедуры
#КонецОбласти
#КонецОбласти

View File

@ -26,7 +26,7 @@
<usePurposes>PersonalComputer</usePurposes>
<scriptVariant>Russian</scriptVariant>
<vendor>Bayselonarrend</vendor>
<version>1.1.0</version>
<version>1.2.0</version>
<detailedInformation>
<key>ru</key>
<value>Открытый пакет интеграций - набор библиотек для интеграции с некоторыми популярными API для 1C:Enterprise. Он состоит из общих модулей, каждый из которых отвечает за свой API, а также нескольких модулей-инструментов, общих для всех.</value>
@ -39,7 +39,6 @@
<key>ru</key>
<value>https://github.com/Bayselonarrend/OpenIntegrations</value>
</configurationInformationAddress>
<compatibilityMode>8.3.15</compatibilityMode>
<languages uuid="0e858b44-34f3-4d20-986d-13290bb5ba5a">
<name>Русский</name>
<objectBelonging>Adopted</objectBelonging>