// OneScript: ./OInt/tests/Modules/internal/OPI_Тесты.os

// 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

// Набор тестов для YAxUnit

// BSLLS:Typo-off
// BSLLS:LatinAndCyrillicSymbolInWord-off
// BSLLS:IncorrectLineBreak-off
// BSLLS:UsingServiceTag-off
// BSLLS:UnusedParameters-off
// BSLLS:DuplicateStringLiteral-off

//@skip-check undefined-variable
//@skip-check wrong-string-literal-content
//@skip-check module-structure-top-region
//@skip-check module-structure-method-in-regions
//@skip-check undefined-function-or-procedure
//@skip-check wrong-string-literal-content

// Раскомментировать, если выполняется OneScript
#Использовать oint
#Использовать asserts

#Область СлужебныйПрограммныйИнтерфейс

// Для YaxUnit

Процедура ИсполняемыеСценарии() Экспорт

    OPI_ПолучениеДанныхТестов.СформироватьТестыЯкс();

КонецПроцедуры

// Для Asserts

Функция ПолучитьСписокТестов(ЮнитТестирование) Экспорт

   Возврат OPI_ПолучениеДанныхТестов.СформироватьТестыАссертс();

КонецФункции

#Область ЗапускаемыеТесты

#Область Telegram

Процедура Телеграм_ПолучитьИнформациюБота() Экспорт
 
 	ПараметрыТеста = Новый Структура;
 	OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_Token", ПараметрыТеста);
 	
	Telegram_ПолучитьИнформациюБота(ПараметрыТеста);
    
КонецПроцедуры

Процедура Телеграм_ПолучитьОбновления() Экспорт

 	ПараметрыТеста = Новый Структура;
 	OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_Token", ПараметрыТеста);
 	
 	Telegram_УдалитьWebhook(ПараметрыТеста);
	Telegram_ПолучитьОбновления(ПараметрыТеста);
	
КонецПроцедуры

Процедура Телеграм_УстановитьWebhook() Экспорт

 	ПараметрыТеста = Новый Структура;
 	OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_Token", ПараметрыТеста);
 	OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_URL"  , ПараметрыТеста);

	Telegram_УстановитьWebhook(ПараметрыТеста);
	Telegram_УдалитьWebhook(ПараметрыТеста);
    
КонецПроцедуры

Процедура Телеграм_ОтправитьТекстовоеСообщение() Экспорт

    ПараметрыТеста = Новый Структура;
 	OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_Token"    , ПараметрыТеста);
 	OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChatID"   , ПараметрыТеста);
 	OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChannelID", ПараметрыТеста);
 	OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("String"            , ПараметрыТеста);
 	
	Telegram_ОтправитьТекстовоеСообщение(ПараметрыТеста);
        
КонецПроцедуры

Процедура Телеграм_ОтправитьКартинку() Экспорт

    ПараметрыТеста = Новый Структура;
 	OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_Token"    , ПараметрыТеста);
 	OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChatID"   , ПараметрыТеста);
 	OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChannelID", ПараметрыТеста);
 	OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("String"            , ПараметрыТеста);
 	OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture"           , ПараметрыТеста);
 	
	Telegram_ОтправитьКартинку(ПараметрыТеста);
	Telegram_СкачатьФайл(ПараметрыТеста);

КонецПроцедуры

Процедура Телеграм_ОтправитьВидео() Экспорт

    ПараметрыТеста = Новый Структура;
 	OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_Token"    , ПараметрыТеста);
 	OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChatID"   , ПараметрыТеста);
 	OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChannelID", ПараметрыТеста);
 	OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("String"            , ПараметрыТеста);
 	OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Video"             , ПараметрыТеста);
 	
	Telegram_ОтправитьВидео(ПараметрыТеста);
	Telegram_СкачатьФайл(ПараметрыТеста);

КонецПроцедуры

Процедура Телеграм_ОтправитьАудио() Экспорт

    ПараметрыТеста = Новый Структура;
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_Token"    , ПараметрыТеста);
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChatID"   , ПараметрыТеста);
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChannelID", ПараметрыТеста);
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("String"            , ПараметрыТеста);
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Audio"             , ПараметрыТеста);
    
    Telegram_ОтправитьАудио(ПараметрыТеста);
    Telegram_СкачатьФайл(ПараметрыТеста);

КонецПроцедуры

Процедура Телеграм_ОтправитьДокумент() Экспорт

    ПараметрыТеста = Новый Структура;
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_Token"    , ПараметрыТеста);
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChatID"   , ПараметрыТеста);
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChannelID", ПараметрыТеста);
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("String"            , ПараметрыТеста);
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Document"          , ПараметрыТеста);
    
    Telegram_ОтправитьДокумент(ПараметрыТеста);

КонецПроцедуры

Процедура Телеграм_ОтправитьГифку() Экспорт

    ПараметрыТеста = Новый Структура;
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_Token"    , ПараметрыТеста);
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChatID"   , ПараметрыТеста);
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChannelID", ПараметрыТеста);
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("String"            , ПараметрыТеста);
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GIF"               , ПараметрыТеста);
    
    Telegram_ОтправитьГифку(ПараметрыТеста);

КонецПроцедуры

Процедура Телеграм_ОтправитьМедиагруппу() Экспорт
 
    ПараметрыТеста = Новый Структура;
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_Token"    , ПараметрыТеста);
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChatID"   , ПараметрыТеста);
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChannelID", ПараметрыТеста);
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("String"            , ПараметрыТеста);
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture"           , ПараметрыТеста);
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Video"             , ПараметрыТеста);
    
    Telegram_ОтправитьМеидагруппу(ПараметрыТеста);

КонецПроцедуры

Процедура Телеграм_ОтправитьМестоположение() Экспорт
 
    ПараметрыТеста = Новый Структура;
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_Token"    , ПараметрыТеста);
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChatID"   , ПараметрыТеста);
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChannelID", ПараметрыТеста);
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Long"              , ПараметрыТеста);
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Lat"               , ПараметрыТеста);
    
    Telegram_ОтправитьМестоположение(ПараметрыТеста);

КонецПроцедуры

Процедура Телеграм_ОтправитьКонтакт() Экспорт
 
    ПараметрыТеста = Новый Структура;
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_Token"    , ПараметрыТеста);
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChatID"   , ПараметрыТеста);
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChannelID", ПараметрыТеста);
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Name"              , ПараметрыТеста);
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Surname"           , ПараметрыТеста);
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Phone"             , ПараметрыТеста);

    Telegram_ОтправитьКонтакт(ПараметрыТеста);

КонецПроцедуры

Процедура Телеграм_ОтправитьОпрос() Экспорт
 
    ПараметрыТеста = Новый Структура;
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_Token"    , ПараметрыТеста);
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChatID"   , ПараметрыТеста);
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChannelID", ПараметрыТеста);
    
	Telegram_ОтправитьОпрос(ПараметрыТеста);

КонецПроцедуры

Процедура Телеграм_ПереслатьСообщение() Экспорт
 
    ПараметрыТеста = Новый Структура;
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_Token"           , ПараметрыТеста);
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChatID"          , ПараметрыТеста);
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChannelID"       , ПараметрыТеста);
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChannelMessageID", ПараметрыТеста);

	Telegram_ПереслатьСообщение(ПараметрыТеста);
        
КонецПроцедуры

Процедура Телеграм_БанРазбан() Экспорт
 
    ПараметрыТеста = Новый Структура;
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_Token"           , ПараметрыТеста);
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChatID"          , ПараметрыТеста);
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChannelID"       , ПараметрыТеста);
    
    Telegram_Бан(ПараметрыТеста);
    Telegram_Разбан(ПараметрыТеста);
    
КонецПроцедуры

Процедура Телеграм_СоздатьСсылкуПриглашение() Экспорт
 
    ПараметрыТеста = Новый Структура;
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_Token"    , ПараметрыТеста);
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChannelID", ПараметрыТеста);
    
	Telegram_СоздатьСсылкуПриглашение(ПараметрыТеста);

КонецПроцедуры

Процедура Телеграм_ЗакрепитьОткрепитьСообщение() Экспорт
 
    ПараметрыТеста = Новый Структура;
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_Token"           , ПараметрыТеста);
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChannelID"       , ПараметрыТеста);
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChannelMessageID", ПараметрыТеста);
        
	Telegram_ЗакрепитьСообщение(ПараметрыТеста);
	Telegram_ОткрепитьСообщение(ПараметрыТеста);

КонецПроцедуры

Процедура Телеграм_ПолучитьЧислоУчастников() Экспорт
 
    ПараметрыТеста = Новый Структура;
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_Token"    , ПараметрыТеста);
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChannelID", ПараметрыТеста);
    
    Telegram_ПолучитьЧислоУчастников(ПараметрыТеста);

КонецПроцедуры

Процедура Телеграм_ПолучитьСписокАватаровФорума() Экспорт
 
    ПараметрыТеста = Новый Структура;
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_Token", ПараметрыТеста);
    
	Telegram_ПолучитьСписокАватаровФорума(ПараметрыТеста);
    
КонецПроцедуры

Процедура Телеграм_СоздатьУдалитьТемуФорума() Экспорт
 
    ПараметрыТеста = Новый Структура;
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_Token"  , ПараметрыТеста);
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ForumID", ПараметрыТеста);
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture"         , ПараметрыТеста);
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("String"          , ПараметрыТеста);
    
	Telegram_СоздатьТемуФорума(ПараметрыТеста);
	Telegram_ИзменитьТемуФорума(ПараметрыТеста);
	Telegram_ЗакрытьТемуФорума(ПараметрыТеста);
	Telegram_ОткрытьТемуФорума(ПараметрыТеста);
	Telegram_ОчиститьСписокЗакрепленныхСообщенийТемы(ПараметрыТеста);
	Telegram_УдалитьТемуФорума(ПараметрыТеста);

КонецПроцедуры

Процедура Телеграм_СкрытьПоказатьГлавнуюТему() Экспорт
 
 	ПараметрыТеста = Новый Структура;
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_Token"  , ПараметрыТеста);
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ForumID", ПараметрыТеста);

	Telegram_СкрытьГлавнуюТемуФорума(ПараметрыТеста);
	Telegram_ПоказатьГлавнуюТемуФорума(ПараметрыТеста);

КонецПроцедуры

Процедура Телеграм_ИзменитьИмяГлавнойТемы() Экспорт
 
 	ПараметрыТеста = Новый Структура;
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_Token"  , ПараметрыТеста);
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ForumID", ПараметрыТеста);

	Telegram_ИзменитьИмяГлавнойТемыФорума(ПараметрыТеста);
	
КонецПроцедуры

#КонецОбласти

#Область VK

Процедура ВК_СоздатьСсылкуТокена() Экспорт
 
    ПараметрыТеста = Новый Структура;
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("VK_AppID", ПараметрыТеста);

    VK_СоздатьСсылкуПолученияТокена(ПараметрыТеста);  
    
КонецПроцедуры

Процедура ВК_СоздатьУдалитьПост() Экспорт
 
    ПараметрыТеста = Новый Структура;
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture2", ПараметрыТеста);
    
    VK_СоздатьПост(ПараметрыТеста);
    VK_УдалитьПост(ПараметрыТеста);

КонецПроцедуры

Процедура ВК_СоздатьСоставнойПост() Экспорт
    
    ПараметрыТеста = Новый Структура;
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Video"   , ПараметрыТеста);
    
    VK_СоздатьСоставнойПост(ПараметрыТеста);
    
КонецПроцедуры

Процедура ВК_СоздатьОпрос() Экспорт
 
    VK_СоздатьОпрос();
       
КонецПроцедуры

Процедура ВК_СохранитьУдалитьКартинку() Экспорт
 
    ПараметрыТеста = Новый Структура;
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
    
    VK_СоздатьАльбом(ПараметрыТеста);
    VK_СохранитьКартинкуВАльбом(ПараметрыТеста);
    VK_УдалитьКартинку(ПараметрыТеста);
    VK_УдалитьАльбом(ПараметрыТеста);
           
КонецПроцедуры

Процедура ВК_СоздатьИсторию() Экспорт
 
    ПараметрыТеста = Новый Соответствие;
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
    
    VK_СоздатьИсторию(ПараметрыТеста);
    
КонецПроцедуры

Процедура ВК_МетодыОбсуждений() Экспорт
 
    ПараметрыТеста = Новый Структура;
    Параметры      = ПолучитьПараметрыВК();
    
    VK_СоздатьОбсуждение(ПараметрыТеста);
    VK_ЗакрытьОбсуждение(ПараметрыТеста);
    VK_ОткрытьОбсуждение(ПараметрыТеста);
    VK_НаписатьВОбсуждение(ПараметрыТеста);     
       
    OPI_VK.ЗакрытьОбсуждение(ПараметрыТеста["VK_ConvID"], Истина, Параметры);
    
    OPI_Инструменты.Пауза(5);
        
КонецПроцедуры

Процедура ВК_ЛайкРепостКоммент() Экспорт
 
    Параметры       = ПолучитьПараметрыВК();
    Текст           = "Пост из автотеста";
    Сообщение       = "Сообщение из автотеста";
    ТипСоответствие = Тип("Соответствие");
    ТипЧисло        = Тип("Число");
    Response_       = "response";
    
    Результат = OPI_VK.СоздатьПост(Текст, Новый Массив, , , Параметры);
    
    ИДПоста   = Результат[Response_]["post_id"];    
    Результат = OPI_VK.ПоставитьЛайк(ИДПоста, , Параметры);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПоставитьЛайк");
    
    OPI_Инструменты.Пауза(5);
      
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип(ТипСоответствие).Заполнено();
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[Response_]["likes"]).ИмеетТип(ТипЧисло).Заполнено();
        
    ВнешнийПост  = 2571;
    ВнешняяСтена = -218704372;
        
    Результат = OPI_VK.СделатьРепост(ВнешнийПост, ВнешняяСтена, , , Параметры);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СделатьРепост");
    
    OPI_Инструменты.Пауза(5);
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип(ТипСоответствие).Заполнено();
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[Response_]["success"]).ИмеетТип(ТипЧисло).Равно(1);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[Response_]["wall_repost_count"]).ИмеетТип(ТипЧисло).Равно(1); 
        
    Результат  = OPI_VK.НаписатьКомментарий(ИДПоста, Параметры["owner_id"], Сообщение, Параметры);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "НаписатьКомментарий");
        
    OPI_Инструменты.Пауза(5);
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип(ТипСоответствие).Заполнено();
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[Response_]["comment_id"]).ИмеетТип(ТипЧисло).Заполнено();
   
    OPI_VK.УдалитьПост(ИДПоста, Параметры);
    OPI_VK.УдалитьПост(Результат[Response_]["post_id"], Параметры);
    
    OPI_Инструменты.Пауза(5);

КонецПроцедуры

Процедура ВК_ПолучитьСтатистику() Экспорт
 
    ТекущаяДата     = OPI_Инструменты.ПолучитьТекущуюДату();
    Параметры       = ПолучитьПараметрыВК();
    Дата0           = НачалоДня(ТекущаяДата);
    Дата1           = КонецДня(Дата0);
    ТипСоответствие = Тип("Соответствие");
     
    Результат = OPI_VK.ПолучитьСтатистику(Дата0, Дата1, Параметры);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСтатистику");
        
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип(ТипСоответствие).Заполнено();
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["response"][0]["visitors"]).ИмеетТип(ТипСоответствие).Заполнено();
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["response"][0]["reach"]).ИмеетТип(ТипСоответствие).Заполнено();
    
    OPI_Инструменты.Пауза(5);

КонецПроцедуры

Процедура ВК_ПолучитьСтатистикуПостов() Экспорт
 
    Параметры    = ПолучитьПараметрыВК();
    
    МассивПостов = Новый Массив;
    МассивПостов.Добавить(214);
    МассивПостов.Добавить(215);
    
    Результат = OPI_VK.ПолучитьСтатистикуПостов(МассивПостов, Параметры);

    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСтатистикуПостов");
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Массив").ИмеетДлину(2);
    
    OPI_Инструменты.Пауза(5);

КонецПроцедуры

Процедура ВК_СоздатьРекламнуюКампанию() Экспорт
 
    Параметры       = ПолучитьПараметрыВК();
    ИДКабинета      = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("VK_AdsCabinetID");
    Наименование    = "Тестовая реклама";
    ТипСоответствие = Тип("Соответствие");
    ТипЧисло        = Тип("Число");
    Response_       = "response";
    UID_            = "id";
        
    Результат    = OPI_VK.СоздатьРекламнуюКампанию(ИДКабинета, Наименование, Параметры);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СоздатьРекламнуюКампанию");
    
    Результат    = Результат[Response_][0];
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип(ТипСоответствие); 
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["error_code"]).ИмеетТип(ТипЧисло).Равно(602);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[UID_]).ИмеетТип(ТипЧисло).Заполнено();
        
    ИДКампании  = Результат[UID_];
    ИДКатегории = 126;
    Лимит       = 150;
    
    Результат = OPI_VK.СоздатьПост(Наименование, Новый Массив, , , Параметры); 
    ИДПоста   = Результат[Response_]["post_id"]; 
        
    Результат   = OPI_VK.СоздатьРекламноеОбъявление(ИДКампании
        , Лимит
        , ИДКатегории
        , ИДПоста
        , ИДКабинета
        , Параметры);
        
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СоздатьРекламноеОбъявление");
            
    Результат   = Результат[Response_][0];
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип(ТипСоответствие); 
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["error_code"]).ИмеетТип(ТипЧисло).Равно(602);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[UID_]).ИмеетТип(ТипЧисло).Заполнено();
        
    ИДОбъявления = Результат[UID_];
    Результат    = OPI_VK.ПриостановитьРекламноеОбъявление(ИДКабинета, ИДОбъявления, Параметры);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПриостановитьРекламноеОбъявление");
    
    Результат    = Результат[Response_][0];
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип(ТипСоответствие); 
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[UID_]).ИмеетТип(ТипЧисло).Заполнено();
 
    OPI_VK.УдалитьПост(ИДПоста, Параметры);
    
    OPI_Инструменты.Пауза(5);
    
КонецПроцедуры

Процедура ВК_ОтправитьСообщение() Экспорт
 
    Параметры    = ПолучитьПараметрыВК();
    Пользователь = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("VK_UserID");
    Токен        = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("VK_CommunityToken");
    Текст        = "Сообщение из автотеста";
    
    МассивКнопок = Новый Массив;
    МассивКнопок.Добавить("Button 1");
    МассивКнопок.Добавить("Button 2"); 
    
    Клавиатура = OPI_VK.СформироватьКлавиатуру(МассивКнопок);
    Результат  = OPI_VK.НаписатьСообщение(Текст, Пользователь, Токен, Клавиатура, Параметры);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "НаписатьСообщение");
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Соответствие"); 
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["response"]).ИмеетТип("Число").Заполнено();
    
    OPI_Инструменты.Пауза(5);
  
КонецПроцедуры

Процедура ВК_ПолучитьКатегорииТоваров() Экспорт
 
    Параметры = ПолучитьПараметрыВК();
    Результат = OPI_VK.ПолучитьСписокКатегорийТоваров(Параметры);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокКатегорийТоваров");
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат) 
        .ИмеетТип("Соответствие")
        .Заполнено();
        
    OPI_Инструменты.Пауза(5);
    
КонецПроцедуры

Процедура ВК_СоздатьТоварПодборку() Экспорт
 
    Параметры       = ПолучитьПараметрыВК();
    ТипСоответствие = Тип("Соответствие");
    ТипЧисло        = Тип("Число");
    Response_       = "response";
    Картинка        = OPI_ПолучениеДанныхТестов.ПолучитьДвоичные("Picture");
    ИВФ             = ПолучитьИмяВременногоФайла("png");   
    Картинка.Записать(ИВФ);
        
    Результат = OPI_VK.СоздатьПодборкуТоваров("Test album"
        , Картинка
        , Истина
        , Ложь
        , Параметры);  
        
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СоздатьПодборкуТоваров");
    
    OPI_Инструменты.Пауза(5);
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип(ТипСоответствие);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[Response_]["albums_count"]).ИмеетТип(ТипЧисло).Заполнено();
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[Response_]["market_album_id"]).ИмеетТип(ТипЧисло).Заполнено();
             
    ИДПодборки = Результат[Response_]["market_album_id"];
    
    Результат  = OPI_VK.ИзменитьПодборкуТоваров("Измененная подборка", ИДПодборки, , , , Параметры);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ИзменитьПодборкуТоваров");
    
    OPI_Инструменты.Пауза(5);
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип(ТипСоответствие);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[Response_]).ИмеетТип(ТипЧисло).Равно(1);
 
    МассивКартинок = Новый Массив;
    МассивКартинок.Добавить(OPI_ПолучениеДанныхТестов.ПолучитьДвоичные("Picture"));
    МассивКартинок.Добавить(OPI_ПолучениеДанныхТестов.ПолучитьДвоичные("Picture2"));
    
    Товар = Новый Соответствие();
    Товар.Вставить("Имя"                , "Тестовый товар");    
    Товар.Вставить("Описание"           , "Описание товара");
    Товар.Вставить("Категория"          , "20173");           
    Товар.Вставить("Цена"               , 1);                
    Товар.Вставить("СтараяЦена"         , 15);     
    Товар.Вставить("ОсновноеФото"       , Картинка);                   
    Товар.Вставить("URL"                , "https://github.com/Bayselonarrend/OpenIntegrations");     
    Товар.Вставить("ДополнительныеФото" , МассивКартинок);     
    Товар.Вставить("ГлавныйВГруппе"     , Истина);                 
    Товар.Вставить("Ширина"             , 20);     
    Товар.Вставить("Высота"             , 30);     
    Товар.Вставить("Глубина"            , 40);     
    Товар.Вставить("Вес"                , 100);
    Товар.Вставить("SKU"                , "12345");
    Товар.Вставить("ДоступныйОстаток"   , "10");
    
    Результат = OPI_VK.ДобавитьТовар(Товар, ИДПодборки, Параметры);                // Добавление товара
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ДобавитьТовар");
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип(ТипСоответствие);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[Response_]["market_item_id"]).ИмеетТип(ТипЧисло).Заполнено();
        
    ИДТовара  = Результат[Response_]["market_item_id"];
    
    Товар = Новый Соответствие;
    Товар.Вставить("Имя", "Тестовый товар измененный");
    
    Результат = OPI_VK.ИзменитьТовар(ИДТовара, Товар, , Параметры);                // Изменение товара
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ИзменитьТовар");
    
    Проверка_ВКИстина(Результат);
    
    Результат = OPI_VK.ДобавитьТоварВПодборку(ИДТовара, ИДПодборки, Параметры);    // Добавление в подборку
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ДобавитьТоварВПодборку");
    
    OPI_Инструменты.Пауза(5);
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип(ТипСоответствие);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[Response_]).ИмеетТип(ТипЧисло).Заполнено();
        
    Результат = OPI_VK.УдалитьТоварИзПодборки(ИДТовара, ИДПодборки, Параметры);    // Удаляет из подборки
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьТоварИзПодборки");
    
    OPI_Инструменты.Пауза(5);
    Проверка_ВКИстина(Результат);
        
    Результат = OPI_VK.УдалитьТовар(ИДТовара, Параметры);                          // Удаление товара
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьТовар");
    
    OPI_Инструменты.Пауза(5);
    Проверка_ВКИстина(Результат);
        
    Результат = OPI_VK.УдалитьПодборку(ИДПодборки, Параметры);                     // Уадление подборки
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьПодборку");
    
    OPI_Инструменты.Пауза(5);
    Проверка_ВКИстина(Результат);

    УдалитьФайлы(ИВФ);
    
    OPI_Инструменты.Пауза(5);
    
КонецПроцедуры

Процедура ВК_СоздатьТоварСоСвойствами() Экспорт
 
    Параметры       = ПолучитьПараметрыВК();
    ТипСоответствие = Тип("Соответствие");
    ТипЧисло        = Тип("Число");
    MII_            = "market_item_id";
    Response_       = "response";
    Желтый_         = "Желтый";
    Красный_        = "Красный";
    Картинка        = OPI_ПолучениеДанныхТестов.ПолучитьДвоичные("Picture");
    ИВФ             = ПолучитьИмяВременногоФайла("png");   
    Картинка.Записать(ИВФ);
    
    МассивВариантов = Новый Массив;
    МассивВариантов.Добавить(Желтый_);
    МассивВариантов.Добавить("Синий");
    МассивВариантов.Добавить(Красный_);
    
    Результат = OPI_VK.СоздатьСвойствоТовара("Цвет", Параметры);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СоздатьСвойствоТовара");
    
    OPI_Инструменты.Пауза(5);
    
    Свойство  = Результат[Response_]["property_id"];
    Свойство  = OPI_Инструменты.ЧислоВСтроку(Свойство);
     
    СоответствиеСвойств = Новый Соответствие;
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип(ТипСоответствие);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[Response_]["property_id"]).ИмеетТип(ТипЧисло).Заполнено();
        
    Результат = OPI_VK.ИзменитьСвойствоТовара("Цвет (изм.)", Свойство, Параметры);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ИзменитьСвойствоТовара");
    
    OPI_Инструменты.Пауза(5);
    
    Проверка_ВКИстина(Результат);
   
    Для Каждого Вариант Из МассивВариантов Цикл
        
        Результат = OPI_VK.ДобавитьВариантСвойстваТовара(Вариант, Свойство, Параметры);
        
        OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ДобавитьВариантСвойстваТовара");
        
        OPI_Инструменты.Пауза(5);
        
        OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип(ТипСоответствие);
        OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[Response_]["variant_id"]).ИмеетТип(ТипЧисло).Заполнено();
            
        ИДВарианта = Результат[Response_]["variant_id"];
        СоответствиеСвойств.Вставить(Вариант, ИДВарианта);
        
        Результат = OPI_VK.ИзменитьВариантСвойстваТовара(Вариант + Строка(Новый УникальныйИдентификатор())
            , Свойство
            , ИДВарианта
            , Параметры);
            
        OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ИзменитьВариантСвойстваТовара");
        
    Проверка_ВКИстина(Результат);
              
    КонецЦикла;
  
    МассивКартинок = Новый Массив;
    МассивКартинок.Добавить(ИВФ);
    МассивКартинок.Добавить(Картинка);
    
    Товар = Новый Соответствие();
    Товар.Вставить("Имя"                , "Тестовый товар (" + Желтый_ + ")");    
    Товар.Вставить("Описание"           , "Описание товара");
    Товар.Вставить("Категория"          , "20173");           
    Товар.Вставить("Цена"               , 1);                
    Товар.Вставить("СтараяЦена"         , 15);     
    Товар.Вставить("ОсновноеФото"       , Картинка);                   
    Товар.Вставить("URL"                , "https://github.com/Bayselonarrend/OpenIntegrations");     
    Товар.Вставить("ДополнительныеФото" , МассивКартинок);     
    Товар.Вставить("ГлавныйВГруппе"     , Истина);             
    Товар.Вставить("НомерГруппы"        , Неопределено);      
    Товар.Вставить("Ширина"             , 20);     
    Товар.Вставить("Высота"             , 30);     
    Товар.Вставить("Глубина"            , 40);     
    Товар.Вставить("Вес"                , 100);
    Товар.Вставить("SKU"                , 12345);
    Товар.Вставить("ДоступныйОстаток"   , "10");
    Товар.Вставить("ЗначенияСвойств"    , СоответствиеСвойств[Желтый_]);
    
    Результат = OPI_VK.ДобавитьТовар(Товар, , Параметры);                // Добавление товара  
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ДобавитьТовар");
    
    OPI_Инструменты.Пауза(5);
    
    ИДЖелтого = Результат[Response_]["market_item_id"];               
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип(ТипСоответствие);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[Response_][MII_]).ИмеетТип(ТипЧисло).Заполнено();
        
    Товар.Вставить("Имя"            , "Тестовый товар (" + Красный_ + ")");
    Товар.Вставить("ЗначенияСвойств", СоответствиеСвойств[Красный_]);

    Результат  = OPI_VK.ДобавитьТовар(Товар, , Параметры);                // Добавление товара
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ДобавитьТовар");
      
    OPI_Инструменты.Пауза(5);
    
    ИДКрасного = Результат[Response_][MII_];               
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип(ТипСоответствие);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[Response_][MII_]).ИмеетТип(ТипЧисло).Заполнено();
        
    МассивТоваров = Новый Массив;
    МассивТоваров.Добавить(ИДЖелтого);
    МассивТоваров.Добавить(ИДКрасного);
    
    Результат = OPI_VK.ПолучитьТоварыПоИД(МассивТоваров, Параметры);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьТоварыПоИД");
    
    OPI_Инструменты.Пауза(5);
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип(ТипСоответствие);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[Response_]["items"]).ИмеетТип("Массив").ИмеетДлину(2);
        
    Результат = OPI_VK.СгруппироватьТовары(МассивТоваров, , Параметры);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СгруппироватьТовары");
    
    OPI_Инструменты.Пауза(5);
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип(ТипСоответствие);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[Response_]["item_group_id"]).ИмеетТип(ТипЧисло).Заполнено();
       
    OPI_VK.УдалитьТовар(ИДЖелтого , Параметры);
    OPI_VK.УдалитьТовар(ИДКрасного, Параметры);
    
    Для Каждого Вариант Из СоответствиеСвойств Цикл
        
        Удаление = OPI_VK.УдалитьВариантСвойстваТовара(Вариант.Значение, Параметры);
        
        OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьВариантСвойстваТовара");
        
        OPI_Инструменты.Пауза(5);
        Проверка_ВКИстина(Удаление);
        
    КонецЦикла;
        
    Удаление = OPI_VK.УдалитьСвойствоТовара(Свойство, Параметры);
   
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьСвойствоТовара");
        
    OPI_Инструменты.Пауза(5);
    
    Проверка_ВКИстина(Удаление);

    УдалитьФайлы(ИВФ);
    
КонецПроцедуры

Процедура ВК_ПолучитьСписокТоваров() Экспорт
 
    Параметры = ПолучитьПараметрыВК();
    Картинка  = OPI_ПолучениеДанныхТестов.ПолучитьДвоичные("Picture"); 
    
    МассивКартинок = Новый Массив;
    МассивКартинок.Добавить(Картинка);
    
    Товар = Новый Соответствие();
    Товар.Вставить("Имя"                , "Тестовый товар 2");    
    Товар.Вставить("Описание"           , "Описание товара");
    Товар.Вставить("Категория"          , "20173");           
    Товар.Вставить("Цена"               , 1);                
    Товар.Вставить("СтараяЦена"         , 15);     
    Товар.Вставить("ОсновноеФото"       , Картинка);                   
    Товар.Вставить("URL"                , "https://github.com/Bayselonarrend/OpenIntegrations");     
    Товар.Вставить("ДополнительныеФото" , МассивКартинок);     
    Товар.Вставить("ГлавныйВГруппе"     , Истина);             
    Товар.Вставить("НомерГруппы"        , Неопределено);      
    Товар.Вставить("Ширина"             , 20);     
    Товар.Вставить("Высота"             , 30);     
    Товар.Вставить("Глубина"            , 40);     
    Товар.Вставить("Вес"                , 100);
    Товар.Вставить("SKU"                , 12345);
    Товар.Вставить("ДоступныйОстаток"   , "10");
    
    Результат = OPI_VK.ДобавитьТовар(Товар, , Параметры);
    ИДТовара  = Результат["response"]["market_item_id"];
    OPI_Инструменты.Пауза(5);
    
    Результат = OPI_VK.ПолучитьСписокТоваров(, Параметры);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокТоваров");
    
    OPI_Инструменты.Пауза(5);
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат) 
        .ИмеетТип("Массив").Заполнено();
              
    OPI_VK.УдалитьТовар(ИДТовара, Параметры);
    
    OPI_Инструменты.Пауза(5);
    
КонецПроцедуры

Процедура ВК_ПолучитьСписокПодборок() Экспорт
 
    Параметры = ПолучитьПараметрыВК();
    Картинка  = OPI_ПолучениеДанныхТестов.ПолучитьДвоичные("Picture");    
    Результат = OPI_VK.СоздатьПодборкуТоваров("Тестовая подборка"
        , Картинка
        , Истина
        , Ложь
        , Параметры); 
     
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СоздатьПодборкуТоваров");
       
    ИДПодборки = Результат["response"]["market_album_id"];      
    Результат  = OPI_VK.ПолучитьСписокПодборок(Параметры);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокПодборок");
    
    OPI_Инструменты.Пауза(5);
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат) 
        .ИмеетТип("Массив").Заполнено();
        
    OPI_VK.УдалитьПодборку(ИДПодборки, Параметры); 
    
    OPI_Инструменты.Пауза(5);
    
КонецПроцедуры

Процедура ВК_ПолучитьСписокСвойств() Экспорт
 
    Параметры  = ПолучитьПараметрыВК();
    Результат  = OPI_VK.ПолучитьСписокСвойств(Параметры);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокСвойств");
    
    OPI_Инструменты.Пауза(5);
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат) 
        .ИмеетТип("Массив").Заполнено();
        
    OPI_Инструменты.Пауза(5);

КонецПроцедуры

Процедура ВК_ПолучитьСписокЗаказов() Экспорт
 
    Параметры  = ПолучитьПараметрыВК();
    Результат  = OPI_VK.ПолучитьСписокЗаказов(Параметры);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокЗаказов");
    
    OPI_Инструменты.Пауза(5);
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат) 
        .ИмеетТип("Массив").Заполнено();
        
    OPI_Инструменты.Пауза(5);
    
КонецПроцедуры

Процедура ВК_ЗагрузитьВидео() Экспорт
    
    Параметры    = ПолучитьПараметрыВК();
    Видео        = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Video");
    Наименование = "Новое видео";
    Описание     = "Описание видео";
    
    Результат = OPI_VK.ЗагрузитьВидеоНаСервер(Видео, Наименование, Описание, , Параметры);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ЗагрузитьВидеоНаСервер");
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["video_id"]).Заполнено();
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["video_hash"]).Заполнено();
    
    OPI_Инструменты.Пауза(5);
    
КонецПроцедуры

#КонецОбласти

#Область YandexDisk

Процедура ЯДиск_ПолучитьИнформациюОДиске() Экспорт
 
    Токен        = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("YandexDisk_Token");
    Соответствие = "Соответствие";
    
    Результат = OPI_YandexDisk.ПолучитьИнформациюОДиске(Токен);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьИнформациюОДиске");
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип(Соответствие).Заполнено();
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["system_folders"]).ИмеетТип(Соответствие);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["user"]).ИмеетТип(Соответствие);
    
    OPI_Инструменты.Пауза(5);
    
КонецПроцедуры

Процедура ЯДиск_СоздатьПапку() Экспорт
 
   Токен = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("YandexDisk_Token");
   Путь  = "/" + Строка(Новый УникальныйИдентификатор);
   
   Результат = OPI_YandexDisk.СоздатьПапку(Токен, Путь);
   
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СоздатьПапку");
   
   OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
   OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["type"]).Равно("dir");
   OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["path"]).Равно("disk:" + Путь);
        
   OPI_YandexDisk.УдалитьОбъект(Токен, Путь, Ложь);
  
   OPI_Инструменты.Пауза(5);
  
КонецПроцедуры

Процедура ЯДиск_ЗагрузитьПоАдресуПолучитьОбъект() Экспорт
 
    Токен = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("YandexDisk_Token");
    Путь  = "/" + Строка(Новый УникальныйИдентификатор) + ".png";
    URL   = "https://raw.githubusercontent.com/Bayselonarrend/OpenIntegrations/main/Media/logo.png";

    OPI_YandexDisk.ЗагрузитьФайлПоURL(Токен, Путь, URL);
    OPI_Инструменты.Пауза(5);
        
    Результат = OPI_YandexDisk.ПолучитьОбъект(Токен, Путь);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьОбъект");
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["type"]).Равно("file");
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["path"]).Равно("disk:" + Путь);

     OPI_YandexDisk.УдалитьОбъект(Токен, Путь, Ложь);
     
     OPI_Инструменты.Пауза(5);
     
КонецПроцедуры

Процедура ЯДиск_ЗагрузитьУдалитьФайл() Экспорт
 
    Токен    = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("YandexDisk_Token");
    Путь     = "/" + Строка(Новый УникальныйИдентификатор) + ".png";
    Картинка = OPI_ПолучениеДанныхТестов.ПолучитьДвоичные("Picture");
    ИВФ      = ПолучитьИмяВременногоФайла("png");
    Картинка.Записать(ИВФ);

    Результат = OPI_YandexDisk.ЗагрузитьФайл(Токен, Путь, Картинка, Истина);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ЗагрузитьФайл");
    
    Проверка_Пусто(Результат);
    OPI_Инструменты.Пауза(5);
    
    Результат = OPI_YandexDisk.УдалитьОбъект(Токен, Путь, Ложь);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьОбъект");
    
    Проверка_Пусто(Результат);
    
    Результат = OPI_YandexDisk.ЗагрузитьФайл(Токен, Путь, ИВФ, Истина);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ЗагрузитьФайл");
    
    Проверка_Пусто(Результат);
    OPI_Инструменты.Пауза(5);
    
    Результат = OPI_YandexDisk.УдалитьОбъект(Токен, Путь, Ложь); 
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьОбъект");
    
    Проверка_Пусто(Результат);   

    УдалитьФайлы(ИВФ);
    
    OPI_Инструменты.Пауза(5);
    
КонецПроцедуры

Процедура ЯДиск_СоздатьКопиюОбъекта() Экспорт
 
    Токен           = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("YandexDisk_Token");
    ПутьОригинала   = "/" + Строка(Новый УникальныйИдентификатор) + ".png";
    ПутьКопии       = "/" + Строка(Новый УникальныйИдентификатор) + ".png";
    URL             = "https://raw.githubusercontent.com/Bayselonarrend/"
        + "OpenIntegrations/main/Media/logo.png";

    OPI_YandexDisk.ЗагрузитьФайлПоURL(Токен, ПутьОригинала, URL);
    OPI_Инструменты.Пауза(5);
      
    Результат = OPI_YandexDisk.СоздатьКопиюОбъекта(Токен, ПутьОригинала, ПутьКопии, Истина);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СоздатьКопиюОбъекта");
    
    OPI_Инструменты.Пауза(5);
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["type"]).Равно("file");
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["path"]).Равно("disk:" + ПутьКопии);

     OPI_YandexDisk.УдалитьОбъект(Токен, ПутьОригинала, Ложь);
     OPI_YandexDisk.УдалитьОбъект(Токен, ПутьКопии, Ложь);
     
     OPI_Инструменты.Пауза(5);
     
КонецПроцедуры

Процедура ЯДиск_ПолучитьСсылкуНаСкачивание() Экспорт
 
    Токен = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("YandexDisk_Token");
    Путь  = "/" + Строка(Новый УникальныйИдентификатор) + ".png";
    URL   = "https://raw.githubusercontent.com/Bayselonarrend/OpenIntegrations/main/Media/logo.png";

    OPI_YandexDisk.ЗагрузитьФайлПоURL(Токен, Путь, URL);
    OPI_Инструменты.Пауза(5);
       
    Результат = OPI_YandexDisk.ПолучитьСсылкуДляСкачивания(Токен, Путь);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСсылкуДляСкачивания");
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["method"]).Равно("GET");
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["href"]).ИмеетТип("Строка").Заполнено();
    
    URL = Результат["href"];
    
    Результат = OPI_YandexDisk.СкачатьФайл(Токен, Путь);
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("ДвоичныеДанные").Заполнено();

    OPI_YandexDisk.УдалитьОбъект(Токен, Путь, Ложь);

КонецПроцедуры

Процедура ЯДиск_ПолучитьСписокФайлов() Экспорт
 
    Токен = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("YandexDisk_Token");
    Количество = 2;
    Отступ     = 1;
    
    Результат = OPI_YandexDisk.ПолучитьСписокФайлов(Токен, Количество, Отступ, "image");
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокФайлов");
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["limit"]).Равно(Количество);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["offset"]).Равно(Отступ);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["items"]).ИмеетТип("Массив");
    
    OPI_Инструменты.Пауза(5);
    
КонецПроцедуры

Процедура ЯДиск_ПереместитьОбъект() Экспорт
 
    Токен           = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("YandexDisk_Token");
    ПутьОригинала   = "/" + Строка(Новый УникальныйИдентификатор) + ".png";
    ПутьКопии       = "/" + Строка(Новый УникальныйИдентификатор) + ".png";
    URL             = "https://raw.githubusercontent.com/Bayselonarrend/"
        + "OpenIntegrations/main/Media/logo.png";

    Результат = OPI_YandexDisk.ЗагрузитьФайлПоURL(Токен, ПутьОригинала, URL);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ЗагрузитьФайлПоURL");
    
    OPI_Инструменты.Пауза(15);
      
    Результат = OPI_YandexDisk.ПереместитьОбъект(Токен, ПутьОригинала, ПутьКопии, Истина);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПереместитьОбъект");
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["type"]).Равно("file");
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["path"]).Равно("disk:" + ПутьКопии);

    OPI_YandexDisk.УдалитьОбъект(Токен, ПутьОригинала, Ложь);
    OPI_YandexDisk.УдалитьОбъект(Токен, ПутьКопии, Ложь);
    
    OPI_Инструменты.Пауза(5);
     
КонецПроцедуры

Процедура ЯДиск_ДействияПубличныхОбъектов() Экспорт
 
    PUrl         = "public_url";
    Соответствие = "Соответствие";
    Токен        = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("YandexDisk_Token");
    Путь         = "/" + Строка(Новый УникальныйИдентификатор) + ".png";
    URL          = "https://raw.githubusercontent.com/Bayselonarrend/OpenIntegrations/main/Media/logo.png";
    
    OPI_YandexDisk.ЗагрузитьФайлПоURL(Токен, Путь, URL);
    OPI_Инструменты.Пауза(5);
    
    МассивРезультатов = Новый Массив;
    
    МассивРезультатов.Добавить(OPI_YandexDisk.ОпубликоватьОбъект(Токен, Путь)); 
    ПубличныйURL      = МассивРезультатов[0][PUrl];
    
    Результат  = OPI_YandexDisk.ПолучитьСсылкуСкачиванияПубличногоОбъекта(Токен, ПубличныйURL);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСсылкуСкачиванияПубличногоОбъекта");
              
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип(Соответствие).Заполнено();
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["method"]).Равно("GET");
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["href"]).ИмеетТип("Строка").Заполнено();
    
    Результат   = OPI_YandexDisk.ПолучитьПубличныйОбъект(Токен, ПубличныйURL);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьПубличныйОбъект");
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип(Соответствие).Заполнено();
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["type"]).Равно("file");
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["path"]).Равно("/");
    
    МассивРезультатов.Добавить(OPI_YandexDisk.СохранитьПубличныйОбъектНаДиск(Токен, ПубличныйURL));
                
    МассивРезультатов.Добавить(OPI_YandexDisk.ОтменитьПубликациюОбъекта(Токен, Путь));
    
    Счетчик = 0;
    Для Каждого Результат Из МассивРезультатов Цикл
        
        OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "Изменение публикации");
            
        OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип(Соответствие).Заполнено();
        OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["type"]).Равно("file");
        OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["path"]).Заполнено();
            
        Если Счетчик = 0 Тогда   
            OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[PUrl]).ИмеетТип("Строка").Заполнено();
        Иначе
            OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[PUrl]).ИмеетТип("Неопределено");
        КонецЕсли;
        
        Счетчик = Счетчик + 1;
        
    КонецЦикла;
     
    OPI_YandexDisk.УдалитьОбъект(Токен, Путь, Ложь);
    
    OPI_Инструменты.Пауза(5);

КонецПроцедуры

Процедура ЯДиск_ПолучитьСписокОпубликованных() Экспорт
 
    Токен = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("YandexDisk_Token");
    Количество = 2;
    Отступ     = 1;
    
    Результат = OPI_YandexDisk.ПолучитьСписокОпубликованныхОбъектов(Токен, Количество, Отступ);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокОпубликованныхОбъектов");
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["limit"]).Равно(Количество);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["offset"]).Равно(Отступ);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["items"]).ИмеетТип("Массив");
    
    OPI_Инструменты.Пауза(5);
    
КонецПроцедуры

#КонецОбласти

#Область Viber

Процедура Вайбер_ПолучитьИнформациюОКанале() Экспорт
 
    Токен     = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Viber_ChannelToken");    
    Результат = OPI_Viber.ПолучитьИнформациюОКанале(Токен);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьИнформациюОКанале");
        
    Проверка_ВайберОк(Результат);

    OPI_Инструменты.Пауза(5);

КонецПроцедуры

Процедура Вайбер_ПолучитьДанныеПользователя() Экспорт
 
    Токен        = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Viber_ChannelToken"); 
    Пользователь = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Viber_ChannelAdminID");
    Результат    = OPI_Viber.ПолучитьДанныеПользователя(Токен, Пользователь);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьДанныеПользователя");
        
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["chat_hostname"]).Заполнено();
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["status_message"]).Заполнено();
    OPI_Инструменты.Пауза(5);

КонецПроцедуры

Процедура Вайбер_ПолучитьОнлайнПользователей() Экспорт
 
    Токен        = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Viber_ChannelToken"); 
    Пользователь = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Viber_UserID");
    Результат    = OPI_Viber.ПолучитьОнлайнПользователей(Токен, Пользователь);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьОнлайнПользователей");
        
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["users"]).ИмеетТип("Массив");
    Проверка_ВайберОк(Результат);
    
    OPI_Инструменты.Пауза(5);

КонецПроцедуры

Процедура Вайбер_ОтправитьТекстовоеСообщение() Экспорт
 
    Текст         = "Тестовое сообщение";
    ТокенКанал    = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Viber_ChannelToken");
    ТокенБота     = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Viber_Token");   
    Пользователь  = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Viber_UserID");
    Администратор = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Viber_ChannelAdminID");
    
    МассивКнопок  = Новый Массив;
    МассивКнопок.Добавить("Кнопка 1");
    МассивКнопок.Добавить("Кнопка 2");
    МассивКнопок.Добавить("Кнопка 3");
    
    Клавиатура = OPI_Viber.СформироватьКлавиатуруИзМассиваКнопок(МассивКнопок);
 
    Результат  = OPI_Viber.ОтправитьТекстовоеСообщение(ТокенБота, Текст, Пользователь, Ложь, Клавиатура);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьТекстовоеСообщение");
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["message_token"]).Заполнено();
    Проверка_ВайберОк(Результат);
    
    Результат  = OPI_Viber.ОтправитьТекстовоеСообщение(ТокенКанал, Текст, Администратор, Истина, Клавиатура);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьТекстовоеСообщение");
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["message_token"]).Заполнено();
    Проверка_ВайберОк(Результат);
    
    OPI_Инструменты.Пауза(5);
    
КонецПроцедуры

Процедура Вайбер_ОтправитьКартинку() Экспорт

    Текст         = "Тестовое сообщение";
    Картинка      = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Picture");
    ТокенКанал    = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Viber_ChannelToken");
    ТокенБота     = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Viber_Token");   
    Пользователь  = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Viber_UserID");
    Администратор = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Viber_ChannelAdminID");
     
    Результат  = OPI_Viber.ОтправитьКартинку(ТокенБота, Картинка, Пользователь, Ложь, Текст);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьКартинку");
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["message_token"]).Заполнено();
    Проверка_ВайберОк(Результат);
    
    Результат  = OPI_Viber.ОтправитьКартинку(ТокенКанал, Картинка, Администратор, Истина, Текст);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьКартинку");
        
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["message_token"]).Заполнено();
    Проверка_ВайберОк(Результат);
    
    OPI_Инструменты.Пауза(5);
    
КонецПроцедуры

Процедура Вайбер_ОтправитьФайл() Экспорт
  
    Документ      = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Document");
    ТокенКанал    = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Viber_ChannelToken");
    ТокенБота     = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Viber_Token");   
    Пользователь  = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Viber_UserID");
    Администратор = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Viber_ChannelAdminID");
       
    Результат  = OPI_Viber.ОтправитьФайл(ТокенБота, Документ, Пользователь, Ложь, "docx");
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьФайл");
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["message_token"]).Заполнено();
    Проверка_ВайберОк(Результат);
    
    Результат  = OPI_Viber.ОтправитьФайл(ТокенКанал, Документ, Администратор, Истина, "docx");
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьФайл");
        
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["message_token"]).Заполнено();
    Проверка_ВайберОк(Результат);
    
    OPI_Инструменты.Пауза(5);
    
КонецПроцедуры

Процедура Вайбер_ОтправитьКонтакт() Экспорт
 
    Имя           = "Петр Петров";
    Телефон       = "+123456789";
    ТокенКанал    = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Viber_ChannelToken");
    ТокенБота     = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Viber_Token");   
    Пользователь  = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Viber_UserID");
    Администратор = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Viber_ChannelAdminID");
         
    Результат  = OPI_Viber.ОтправитьКонтакт(ТокенБота, Имя, Телефон, Пользователь, Ложь);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьКонтакт");
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["message_token"]).Заполнено();
    Проверка_ВайберОк(Результат);
    
    Результат  = OPI_Viber.ОтправитьКонтакт(ТокенКанал, Имя, Телефон, Администратор, Истина);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьКонтакт");
        
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["message_token"]).Заполнено();
    Проверка_ВайберОк(Результат);
    
    OPI_Инструменты.Пауза(5);
    
КонецПроцедуры

Процедура Вайбер_ОтправитьЛокацию() Экспорт

    Широта        = "48.87373649724122";
    Долгота       = "2.2954639195323967";
    ТокенКанал    = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Viber_ChannelToken");
    ТокенБота     = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Viber_Token");   
    Пользователь  = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Viber_UserID");
    Администратор = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Viber_ChannelAdminID");
         
    Результат  = OPI_Viber.ОтправитьЛокацию(ТокенБота, Широта, Долгота, Пользователь, Ложь);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьЛокацию");
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["message_token"]).Заполнено();
    Проверка_ВайберОк(Результат);
    
    Результат  = OPI_Viber.ОтправитьЛокацию(ТокенКанал, Широта, Долгота, Администратор, Истина);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьЛокацию");
        
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["message_token"]).Заполнено();
    Проверка_ВайберОк(Результат);
    
    OPI_Инструменты.Пауза(5);
    
КонецПроцедуры

Процедура Вайбер_ОтправитьСсылку() Экспорт

    URL           = "https://github.com/Bayselonarrend/OpenIntegrations";
    ТокенКанал    = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Viber_ChannelToken");
    ТокенБота     = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Viber_Token");   
    Пользователь  = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Viber_UserID");
    Администратор = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Viber_ChannelAdminID");
         
    Результат  = OPI_Viber.ОтправитьСсылку(ТокенБота, URL, Пользователь, Ложь);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьСсылку");
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["message_token"]).Заполнено();
    Проверка_ВайберОк(Результат);
    
    Результат  = OPI_Viber.ОтправитьСсылку(ТокенКанал, URL, Администратор, Истина);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьСсылку");
        
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["message_token"]).Заполнено();
    Проверка_ВайберОк(Результат);
    
    OPI_Инструменты.Пауза(5);
    
КонецПроцедуры

#КонецОбласти

#Область GoogleWorkspace

Процедура ГВ_ПолучитьСсылкуАвторизации() Экспорт
 
    ClientID  = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Google_ClientID");    
    Результат = OPI_GoogleWorkspace.СформироватьСсылкуПолученияКода(ClientID);
            
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат)
        .ИмеетТип("Строка") 
        .Заполнено();
        
    OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("Google_Link", Результат);
    
    OPI_Инструменты.Пауза(5);
        
КонецПроцедуры

Процедура ГВ_ПолучитьТокен() Экспорт
 
    ClientID      = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Google_ClientID");
    ClientSecret  = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Google_ClientSecret");
    Code          = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Google_Code");
    
    Результат = OPI_GoogleWorkspace.ПолучитьТокенПоКоду(ClientID, ClientSecret, Code);
           
    Если ЗначениеЗаполнено(Результат["access_token"])
        И ЗначениеЗаполнено(Результат["refresh_token"]) Тогда
        
        OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("Google_Token"  , Результат["access_token"]);
        OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("Google_Refresh", Результат["refresh_token"]);
    
    КонецЕсли;
    
    OPI_Инструменты.Пауза(5);
      
КонецПроцедуры

Процедура ГВ_ОбновитьТокен() Экспорт
 
    ClientID      = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Google_ClientID");
    ClientSecret  = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Google_ClientSecret");
    RefreshToken  = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Google_Refresh");
    
    Результат = OPI_GoogleWorkspace.ОбновитьТокен(ClientID, ClientSecret, RefreshToken);
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Соответствие");                
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["access_token"]).Заполнено();
    
    OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("Google_Token", Результат["access_token"]);
    
    OPI_Инструменты.Пауза(5);

КонецПроцедуры

#КонецОбласти

#Область GoogleCalendar

Процедура ГК_ПолучитьСписокКалендарей() Экспорт
 
    Токен     = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Google_Token");    
    Результат = OPI_GoogleCalendar.ПолучитьСписокКалендарей(Токен);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокКалендарей");
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат)
        .ИмеетТип("Массив");

    OPI_Инструменты.Пауза(5);
            
КонецПроцедуры

Процедура ГК_СоздатьУдалитьКалендарь() Экспорт
 
    Токен                   = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Google_Token"); 
    Наименование            = "Тестовый календарь";
    Описание                = "Тестовое описание";
    НаименованиеИзмененное  = Наименование + " (изм.)";
    ТипСоответствие         = Тип("Соответствие");
    ТипСтрока               = Тип("Строка");
    Summary                 = "summary";
    Черный                  = "#000000";
    Желтый                  = "#ffd800";
    
    Результат = OPI_GoogleCalendar.СоздатьКалендарь(Токен, Наименование); 
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СоздатьКалендарь");
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип(ТипСоответствие); 
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[Summary]).Равно(Наименование);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["id"]).ИмеетТип(ТипСтрока).Заполнено();
        
    Календарь = Результат["id"];
    
    Результат = OPI_GoogleCalendar.ИзменитьМетаданныеКалендаря(Токен
        , Календарь
        , НаименованиеИзмененное
        , Описание);
        
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ИзменитьМетаданныеКалендаря");
    
    Проверка_ГКОбъект(Результат, НаименованиеИзмененное, Описание);
        
    Результат = OPI_GoogleCalendar.ПолучитьМетаданныеКалендаря(Токен, Календарь);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьМетаданныеКалендаря");  
    
    Проверка_ГКОбъект(Результат, НаименованиеИзмененное, Описание);

    Результат = OPI_GoogleCalendar.ДобавитьКалендарьВСписок(Токен, Календарь);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ДобавитьКалендарьВСписок");
    
    Проверка_ГКОбъект(Результат, НаименованиеИзмененное, Описание);
    
    Результат = OPI_GoogleCalendar.ИзменитьКалендарьСписка(Токен, Календарь, Черный, Желтый, Ложь);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ИзменитьКалендарьСписка");
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип(ТипСоответствие); 
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[Summary]).Равно(НаименованиеИзмененное);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["foregroundColor"]).Равно(Черный);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["backgroundColor"]).Равно(Желтый);
        
    Результат = OPI_GoogleCalendar.ПолучитьКалендарьСписка(Токен, Календарь);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьКалендарьСписка");
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип(ТипСоответствие); 
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[Summary]).Равно(НаименованиеИзмененное);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["foregroundColor"]).Равно(Черный);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["backgroundColor"]).Равно(Желтый);

    Результат = OPI_GoogleCalendar.ОчиститьОсновнойКалендарь(Токен);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОчиститьОсновнойКалендарь");
    
    Проверка_Пусто(Результат);
    
    Результат = OPI_GoogleCalendar.УдалитьКалендарьИзСписка(Токен, Календарь);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьКалендарьИзСписка");
    
    Проверка_Пусто(Результат);
    
    Результат = OPI_GoogleCalendar.УдалитьКалендарь(Токен, Календарь);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьКалендарь");
    
    Проверка_Пусто(Результат);
    
    OPI_Инструменты.Пауза(5);
    
КонецПроцедуры

Процедура ГК_СоздатьУдалитьСобытие() Экспорт
 
    ТекущаяДата     = OPI_Инструменты.ПолучитьТекущуюДату();
    Токен           = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Google_Token"); 
    Календарь       = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Google_CalendarID");
    Наименование    = "Новое событие";
    Описание        = "Описание тестового события";
    ОписаниеИзм     = "Описание тестового события (изм.)";
    UID             = "id";
    Час             = 3600;

    Вложения        = Новый Соответствие;
    
    Вложения.Вставить("Картинка1"
        , "https://opi.neocities.org/assets/images/logo_long-e8fdcca6ff8b32e679ea49a1ccdd3eac.png");
    Вложения.Вставить("Картинка2"
        , "https://github.com/Bayselonarrend/OpenIntegrations/raw/main/Media/logo.png?v1");
    
    СоответствиеСобытия = Новый Соответствие;
    СоответствиеСобытия.Вставить("Описание"                 , Описание);
    СоответствиеСобытия.Вставить("Заголовок"                , Наименование);
    СоответствиеСобытия.Вставить("МестоПроведения"          , "В офисе");
    СоответствиеСобытия.Вставить("ДатаНачала"               , ТекущаяДата);
    СоответствиеСобытия.Вставить("ДатаОкончания"            , СоответствиеСобытия["ДатаНачала"] + Час);
    СоответствиеСобытия.Вставить("МассивURLФайловВложений"  , Вложения);
    СоответствиеСобытия.Вставить("ОтправлятьУведомления"    , Истина);
    
    Результат = OPI_GoogleCalendar.СоздатьСобытие(Токен, Календарь, СоответствиеСобытия);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СоздатьСобытие");
    
    Событие   = Результат[UID];
    
    Проверка_ГКОбъект(Результат, Наименование, Описание);
      
    СоответствиеСобытия = Новый Соответствие;  
    СоответствиеСобытия.Вставить("Описание", ОписаниеИзм);
    
    Результат = OPI_GoogleCalendar.ИзменитьСобытие(Токен, Календарь, СоответствиеСобытия, Событие);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ИзменитьСобытие");
    
    Проверка_ГКОбъект(Результат, Наименование, ОписаниеИзм);
        
    Результат = OPI_GoogleCalendar.ПолучитьСобытие(Токен, Календарь, Событие);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСобытие");
    
    Проверка_ГКОбъект(Результат, Наименование, ОписаниеИзм);

    Результат = OPI_GoogleCalendar.ПереместитьСобытие(Токен, Календарь, Календарь, Событие);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПереместитьСобытие");
    
    Проверка_ГКОбъект(Результат, Наименование, ОписаниеИзм);
  
    Результат = OPI_GoogleCalendar.УдалитьСобытие(Токен, Календарь, Событие); 
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьСобытие");
       
    Проверка_Пусто(Результат);
    
    OPI_Инструменты.Пауза(5);

КонецПроцедуры

Процедура ГК_ПолучитьСписокСобытий() Экспорт
 
    Токен     = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Google_Token");    
    Календарь = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Google_CalendarID");

    Результат = OPI_GoogleCalendar.ПолучитьСписокСобытий(Токен, Календарь);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокСобытий");
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Массив");
    
    OPI_Инструменты.Пауза(5);
        
КонецПроцедуры

#КонецОбласти

#Область GoogleDrive

Процедура ГД_ПолучитьСписокКаталогов() Экспорт
 
    MimeType_ = "mimeType";
    Name_     = "name";
    Имя       = "Тестовая папка";
    Токен     = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Google_Token");
    Результат = OPI_GoogleDrive.ПолучитьСписокКаталогов(Токен, Имя, Истина);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокКаталогов");
    
    Результат = Результат[0];
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["files"]).ИмеетТип("Массив");
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[MimeType_]).Равно("application/vnd.google-apps.folder");
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[Name_]).Заполнено();
    
    OPI_Инструменты.Пауза(5);
    Идентификатор = Результат["id"];
    
    OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("GD_Catalog", Идентификатор);
    
    Результат   = OPI_GoogleDrive.ПолучитьИнформациюОбОбъекте(Токен, Идентификатор);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьИнформациюОбОбъекте");
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[MimeType_]).Равно("application/vnd.google-apps.folder");
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[Name_]).Заполнено();
    
    OPI_Инструменты.Пауза(5);

КонецПроцедуры

Процедура ГД_ЗагрузитьУдалитьФайл() Экспорт
 
    ЛишниеБайты = 2;
    
    Kind_      = "kind";
    Content_   = "content";
    MIME_      = "MIME";
    MimeType_  = "mimeType";
    Name_      = "name";
    Id_        = "id";
    
    МассивУдаляемых = Новый Массив;
    Токен           = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Google_Token");
    Картинка        = OPI_ПолучениеДанныхТестов.ПолучитьДвоичные("Picture");
    КартинкаЗамены  = OPI_ПолучениеДанныхТестов.ПолучитьДвоичные("Picture2");
    Каталог         = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("GD_Catalog");
    
    Описание = OPI_GoogleDrive.ПолучитьОписаниеФайла();
    Описание.Вставить("Родитель", Каталог);
   
    Результат = OPI_GoogleDrive.ЗагрузитьФайл(Токен, Картинка, Описание);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ЗагрузитьФайл");
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[MimeType_]).Равно(Описание[MIME_]);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[Name_]).Равно(Описание["Имя"]);

    Идентификатор = Результат[Id_];
    МассивУдаляемых.Добавить(Идентификатор);
    
    НовоеИмя  = "Скопированный файл.jpeg";
    Результат = OPI_GoogleDrive.СкопироватьОбъект(Токен, Идентификатор, НовоеИмя, "root");
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СкоприроватьОбъект");
    
    OPI_Инструменты.Пауза(5);
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[MimeType_]).Равно(Описание[MIME_]);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[Name_]).Равно(НовоеИмя);
       
    МассивУдаляемых.Добавить(Результат[Id_]);
    
    Результат = OPI_GoogleDrive.СкачатьФайл(Токен, Идентификатор);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СкачатьФайл");
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат.Размер()).Равно(Картинка.Размер() + ЛишниеБайты);
    OPI_Инструменты.Пауза(5);
    
    НовоеИмя  = "Обновленный файл.jpg";
    Результат = OPI_GoogleDrive.ОбновитьФайл(Токен, Идентификатор, КартинкаЗамены, НовоеИмя);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОбновитьФайл");
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[MimeType_]).Равно(Описание[MIME_]);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[Name_]).Равно(НовоеИмя);

    OPI_Инструменты.Пауза(5);
    
    Комментарий = "Yo";
    Результат   = OPI_GoogleDrive.СоздатьКомментарий(Токен, Идентификатор, Комментарий);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СоздатьКомментарий");
  
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[Content_]).Равно(Комментарий);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[Kind_]).Равно("drive#comment");
    
    OPI_Инструменты.Пауза(5);
     
    Для Каждого Удаляемый Из МассивУдаляемых Цикл
        Результат = OPI_GoogleDrive.УдалитьОбъект(Токен, Удаляемый);    
        
        OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьОбъект");
      
        OPI_ПолучениеДанныхТестов.ОжидаетЧто(ЗначениеЗаполнено(Результат)).Равно(Ложь);
        OPI_Инструменты.Пауза(2);
    КонецЦикла;
    
    OPI_Инструменты.Пауза(5);
    
КонецПроцедуры

Процедура ГД_СоздатьУдалитьКомментарий() Экспорт
    
    Kind_     = "kind";
    Content_  = "content";
    Id_       = "id";
    Comments_ = "comments";
    Токен     = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Google_Token");
    Каталог   = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("GD_Catalog");
    Картинка  = OPI_ПолучениеДанныхТестов.ПолучитьДвоичные("Picture");
    
    Описание  = OPI_GoogleDrive.ПолучитьОписаниеФайла();
    Описание.Вставить("Родитель", Каталог);
    
    Результат     = OPI_GoogleDrive.ЗагрузитьФайл(Токен, Картинка, Описание);
    Идентификатор = Результат[Id_];
    
    Комментарий         = "Новый комментарий";
    МассивРезультатов   = Новый Массив;
    Результат           = OPI_GoogleDrive.СоздатьКомментарий(Токен, Идентификатор, Комментарий);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СоздатьКомментарий");
    
    ИДКомментария       = Результат[Id_];
    
    МассивРезультатов.Добавить(Результат);
    
    Результат = OPI_GoogleDrive.ПолучитьКомментарий(Токен, Идентификатор, ИДКомментария);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьКомментарий");
    
    МассивРезультатов.Добавить(Результат);
    
    Результат         = OPI_GoogleDrive.ПолучитьСписокКомментариев(Токен, Идентификатор);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокКомментариев");
    
    Комментарии       = Результат[Comments_];
    ОбъектКомментарий = Комментарии[Комментарии.ВГраница()];
    
    МассивРезультатов.Добавить(ОбъектКомментарий);
    
    Для Каждого Результат Из МассивРезультатов Цикл     
        OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[Content_]).Равно(Комментарий);
        OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[Kind_]).Равно("drive#comment");
    КонецЦикла;
    
    Результат = OPI_GoogleDrive.УдалитьКомментарий(Токен, Идентификатор, ИДКомментария);    
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьКомментарий");
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(ЗначениеЗаполнено(Результат)).Равно(Ложь);

    OPI_GoogleDrive.УдалитьОбъект(Токен, Идентификатор);
        
КонецПроцедуры

Процедура ГД_СоздатьКаталог() Экспорт
    
    Name_      = "name";
    Имя        = "Тестовая папка";
    Токен      = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Google_Token");
    Каталог    = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("GD_Catalog");
    
    МассивРезультатов = Новый Массив;
    
    МассивРезультатов.Добавить(OPI_GoogleDrive.СоздатьПапку(Токен, Имя));
    МассивРезультатов.Добавить(OPI_GoogleDrive.СоздатьПапку(Токен, Имя, Каталог));
    
    Для Каждого Результат Из МассивРезультатов Цикл
        
        OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СоздатьПапку");
        
        ИДКаталога = Результат["id"];
                
        OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[Name_]).Равно(Имя);
        
        OPI_GoogleDrive.УдалитьОбъект(Токен, ИДКаталога);
        
    КонецЦикла;

КонецПроцедуры

#КонецОбласти

#Область GoogleSheets

Процедура ГТ_СоздатьТаблицу() Экспорт
    
    Токен        = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Google_Token");
    Наименование = "Тестовая таблица";
    
    МассивЛистов = Новый Массив;
    МассивЛистов.Добавить("Лист1");
    МассивЛистов.Добавить("Лист2");
    
    Результат = OPI_GoogleSheets.СоздатьКнигу(Токен, Наименование, МассивЛистов);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СоздатьКнигу");
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["properties"]["title"]).Равно(Наименование);

    Для Н = 0 По МассивЛистов.ВГраница() Цикл
        
        ИмяЛиста = Результат["sheets"][Н]["properties"]["title"];
        OPI_ПолучениеДанныхТестов.ОжидаетЧто(ИмяЛиста).Равно(МассивЛистов[Н]);
        Лист = Результат["sheets"][Н]["properties"]["sheetId"];
        Лист = OPI_Инструменты.ЧислоВСтроку(Лист);
        
    КонецЦикла;
    
    Книга   = Результат["spreadsheetId"];
    
    OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("GS_Spreadsheet", Книга);
    OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("GS_Sheet"      , Лист);
    
    Наименование = "Тестовая таблица (доп.)";
    Результат    = OPI_GoogleSheets.СоздатьКнигу(Токен, Наименование, МассивЛистов);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "КопироватьЛист (доп.)");
    
    Книга2  = Результат["spreadsheetId"];
    
    Результат = OPI_GoogleSheets.КопироватьЛист(Токен, Книга, Книга2, Лист);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "КопироватьЛист");

    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["title"]).Заполнено();
    
    Наименование = "Тестовый лист";
        
    Результат = OPI_GoogleSheets.ДобавитьЛист(Токен, Книга, Наименование);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ДобавитьЛист");

    НовыйЛист = Результат["replies"][0]["addSheet"]["properties"]["sheetId"];
    НовыйЛист = OPI_Инструменты.ЧислоВСтроку(НовыйЛист);
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["spreadsheetId"]).Равно(Книга); 

    Результат = OPI_GoogleSheets.УдалитьЛист(Токен, Книга, НовыйЛист);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьЛист");
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["spreadsheetId"]).Равно(Книга);
    
    Наименование = "Тестовая таблица (изм.)";
    
    Результат    = OPI_GoogleSheets.ИзменитьНаименованиеКниги(Токен, Книга, Наименование);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ИзменитьНаименованиеКниги");
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["spreadsheetId"]).Равно(Книга);
    
КонецПроцедуры

Процедура ГТ_ПолучитьТаблицу() Экспорт
    
    Токен        = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Google_Token");
    Книга        = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("GS_Spreadsheet");
    Наименование = "Тестовая таблица (изм.)";

    Результат = OPI_GoogleSheets.ПолучитьКнигу(Токен, Книга);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьТаблицу");
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["properties"]["title"]).Равно(Наименование);

КонецПроцедуры

Процедура ГТ_ЗаполнитьОчиститьЯчейки() Экспорт
    
    Токен        = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Google_Token");
    Книга        = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("GS_Spreadsheet");
    Лист         = "Лист2";

    СтруктураЯчеек = Новый Соответствие;
    СтруктураЯчеек.Вставить("A1", "Это A1");
    СтруктураЯчеек.Вставить("A2", "Это A2");
    СтруктураЯчеек.Вставить("B2", "Это B2");
    СтруктураЯчеек.Вставить("B3", "Это B3");
    СтруктураЯчеек.Вставить("A3", "Это A3");
    СтруктураЯчеек.Вставить("A4", "Это A4");
    СтруктураЯчеек.Вставить("B1", "Это B1");
    СтруктураЯчеек.Вставить("B4", "Это B4");
    
    МассивЯчеек = Новый Массив;
    МассивЯчеек.Добавить("B2");
    МассивЯчеек.Добавить("A3");
    МассивЯчеек.Добавить("B4");

    Результат = OPI_GoogleSheets.УстановитьЗначенияЯчеек(Токен, Книга, СтруктураЯчеек, Лист);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УстановитьЗначенияЯчеек");
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["spreadsheetId"]).Равно(Книга);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["totalUpdatedCells"]).Равно(СтруктураЯчеек.Количество());
    
    Результат = OPI_GoogleSheets.ПолучитьЗначенияЯчеек(Токен, Книга, МассивЯчеек, Лист);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьЗначенияЯчеек");
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["spreadsheetId"]).Равно(Книга);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["valueRanges"].Количество()).Равно(МассивЯчеек.Количество());
    
    Результат = OPI_GoogleSheets.ПолучитьЗначенияЯчеек(Токен, Книга, , Лист);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьЗначенияЯчеек");
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["spreadsheetId"]).Равно(Книга);
    
    МассивЯчеек = Новый Массив;
    МассивЯчеек.Добавить("B2");
    МассивЯчеек.Добавить("A3");
    МассивЯчеек.Добавить("B4");

    Результат = OPI_GoogleSheets.ОчиститьЯчейки(Токен, Книга, МассивЯчеек, Лист);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОчиститьЯчейки");
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["spreadsheetId"]).Равно(Книга);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["clearedRanges"].Количество()).Равно(МассивЯчеек.Количество());

КонецПроцедуры

#КонецОбласти

#Область Twitter

Процедура Твиттер_ПолучитьСсылкуАвторизации() Экспорт
 
    Параметры = ПолучитьПараметрыТвиттер();
    Результат = OPI_Twitter.ПолучитьСсылкуАвторизации(Параметры);
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Строка").Заполнено();
    
    OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("Twitter_URL", Результат);
    
    OPI_Инструменты.Пауза(5);
    
КонецПроцедуры

Процедура Твиттер_ОбновитьТокен() Экспорт
 
    Параметры = ПолучитьПараметрыТвиттер();
    Результат = OPI_Twitter.ОбновитьТокен(Параметры);
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["access_token"]).Заполнено();
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["refresh_token"]).Заполнено();
        
    Рефреш = Результат["refresh_token"];
    Токен  = Результат["access_token"];
    
    Если ЗначениеЗаполнено(Рефреш) И Не Рефреш = "null" Тогда   
        OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("Twitter_Refresh", Рефреш);
    КонецЕсли;
    
    Если ЗначениеЗаполнено(Токен) И Не Токен = "null" Тогда
        OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("Twitter_Token"  , Токен);
    КонецЕсли;
    
    OPI_Инструменты.Пауза(5);
    
КонецПроцедуры

Процедура Твиттер_СоздатьТекстовыйТвит() Экспорт
 
    Параметры = ПолучитьПараметрыТвиттер();
    Текст     = "Тестовый твитт" + Строка(Новый УникальныйИдентификатор);
    
    Результат = OPI_Twitter.СоздатьТекстовыйТвит(Текст, Параметры);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СоздатьТекстовыйТвит");
    
    Проверка_ТвиттерТекст(Результат, Текст);
    
    OPI_Инструменты.Пауза(5);
    
КонецПроцедуры

Процедура Твиттер_СоздатьТвитСКартинкой() Экспорт
 
    Параметры = ПолучитьПараметрыТвиттер();
    Текст     = "Тестовый твитт" + Строка(Новый УникальныйИдентификатор);
    Картинка  = OPI_ПолучениеДанныхТестов.ПолучитьДвоичные("Picture");
    ИВФ       = ПолучитьИмяВременногоФайла("png");
    Картинка.Записать(ИВФ);
   
    Результат = OPI_Twitter.СоздатьТвитКартинки(Текст, Картинка, Параметры); 
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СоздатьТвитКартинки");
    
    Проверка_ТвиттерТекст(Результат, Текст);    
    
    Текст     = "Тестовый твитт" + Строка(Новый УникальныйИдентификатор);
    Результат = OPI_Twitter.СоздатьТвитКартинки(Текст, ИВФ, Параметры);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СоздатьТвитКартинки");
    
    Проверка_ТвиттерТекст(Результат, Текст);
    
    УдалитьФайлы(ИВФ);
    
    OPI_Инструменты.Пауза(20);
    
КонецПроцедуры

Процедура Твиттер_СоздатьТвитСВидео() Экспорт
 
    Параметры = ПолучитьПараметрыТвиттер();
    Текст     = "Тестовый твитт" + Строка(Новый УникальныйИдентификатор);
    Видео     = OPI_ПолучениеДанныхТестов.ПолучитьДвоичные("Video");
    ИВФ       = ПолучитьИмяВременногоФайла("mp4");
    Видео.Записать(ИВФ);
   
    Результат = OPI_Twitter.СоздатьТвитВидео(Текст, Видео, Параметры);    
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СоздатьТвитВидео");
    
    Проверка_ТвиттерТекст(Результат, Текст);    
    
    Текст     = "Тестовый твитт" + Строка(Новый УникальныйИдентификатор);
    Результат = OPI_Twitter.СоздатьТвитВидео(Текст, ИВФ, Параметры);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СоздатьТвитВидео");
    
    Проверка_ТвиттерТекст(Результат, Текст);
    
    УдалитьФайлы(ИВФ);
    
    OPI_Инструменты.Пауза(20);
    
КонецПроцедуры

Процедура Твиттер_СоздатьТвитСГиф() Экспорт
 
    Параметры = ПолучитьПараметрыТвиттер();
    Текст     = "Тестовый твитт" + Строка(Новый УникальныйИдентификатор);
    Гифка     = OPI_ПолучениеДанныхТестов.ПолучитьДвоичные("GIF");
    ИВФ       = ПолучитьИмяВременногоФайла("gif");
    Гифка.Записать(ИВФ);
   
    Результат = OPI_Twitter.СоздатьТвитГифки(Текст, Гифка, Параметры);   
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СоздатьТвитГифки");
     
    Проверка_ТвиттерТекст(Результат, Текст);    
    
    Текст     = "Тестовый твитт" + Строка(Новый УникальныйИдентификатор);
    Результат = OPI_Twitter.СоздатьТвитГифки(Текст, ИВФ, Параметры);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СоздатьТвитГифки");
    
    Проверка_ТвиттерТекст(Результат, Текст);
    
    УдалитьФайлы(ИВФ);
    
    OPI_Инструменты.Пауза(20);
    
КонецПроцедуры

Процедура Твиттер_СоздатьТвитСОпросом() Экспорт
 
    Параметры       = ПолучитьПараметрыТвиттер();
    Текст           = "Тестовый твитт" + Строка(Новый УникальныйИдентификатор);
    МассивОтветов   = Новый Массив;
    МассивОтветов.Добавить("Вариант 1");
    МассивОтветов.Добавить("Вариант 2");
   
    Результат = OPI_Twitter.СоздатьТвитОпрос(Текст, МассивОтветов, 60, Параметры);
 
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СоздатьТвитОпрос");
    
    Проверка_ТвиттерТекст(Результат, Текст);
    
    OPI_Инструменты.Пауза(20);
    
КонецПроцедуры

#КонецОбласти

#Область Notion

Процедура Ноушн_СоздатьСтраницу() Экспорт
	
	Токен     = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Notion_Token");
	Родитель  = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Notion_Parent");
	Заголовок = "Тестовый заголовок";
	 
	Результат = OPI_Notion.СоздатьСтраницу(Токен, Родитель, Заголовок);
	
	OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СоздатьСтраницу");
    
    Проверка_НоушнОбъект(Результат);

КонецПроцедуры

Процедура Ноушн_СоздатьИзменитьБазу() Экспорт
	
	Токен     = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Notion_Token");
	Родитель  = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Notion_Parent");
	Заголовок = "Тестовый заголовок";
	
	Свойства = Новый Соответствие;
	Свойства.Вставить("Имя"            , "title");
	Свойства.Вставить("Описание"       , "rich_text");
	Свойства.Вставить("Номер"          , "number");
	Свойства.Вставить("Статус"         , "status");
	Свойства.Вставить("Дата создания"  , "date");
	Свойства.Вставить("Картинка"       , "files");
	Свойства.Вставить("Активен"        , "checkbox");
	Свойства.Вставить("Сайт"           , "url");
	Свойства.Вставить("Почта"          , "email");
	Свойства.Вставить("Телефон"        , "phone_number");
	Свойства.Вставить("Пользователь"   , "people");
	
	ВыборЗначения = Новый Соответствие;
	ВыборЗначения.Вставить("Новый", "green");
	ВыборЗначения.Вставить("В работе", "yellow");
	ВыборЗначения.Вставить("Удаленный", "red");
	Свойства.Вставить("Статус", ВыборЗначения);
	
	Результат = OPI_Notion.СоздатьБазуДанных(Токен, Родитель, Заголовок, Свойства); 
	
	OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СоздатьБазуДанных");
    
    Проверка_НоушнОбъект(Результат, "database");
    
    База      = Результат["id"];
    Заголовок = "Тестовый заголовок";
	Описание  = "Тестовое описание";
	
	Свойства = Новый Соответствие;
	Свойства.Вставить("Почта", "rich_text"); // Тип поля "Почта" будет изменен с email на текст
	Свойства.Вставить("Сайт");               // Поле "Сайт" будет удалено
	
	Результат = OPI_Notion.ИзменитьСвойстваБазы(Токен, База, Свойства, Заголовок, Описание);
	
	OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ИзменитьСвойстваБазы");
    
    Проверка_НоушнОбъект(Результат, "database");

КонецПроцедуры

Процедура Ноушн_ПолучитьИнформациюОСтранице() Экспорт
	
	Токен     = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Notion_Token");
	Страница  = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Notion_Page");
	
	Результат = OPI_Notion.ПолучитьСтраницу(Токен, Страница);
	
	OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСтраницу");
    
    Проверка_НоушнОбъект(Результат);	
    
КонецПроцедуры

Процедура Ноушн_ПолучитьИнформациюОБазе() Экспорт

	Токен     = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Notion_Token");
	База      = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Notion_Base");
		
	Результат = OPI_Notion.ПолучитьБазуДанных(Токен, База);
	
	OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьБазуДанных");
    
    Проверка_НоушнОбъект(Результат, "database");
    
КонецПроцедуры

Процедура Ноушн_СоздатьСтраницуВБазу() Экспорт
	
	Токен = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Notion_Token");
	База  = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Notion_Base");
	
	Картинка = Новый Соответствие;
	Картинка.Вставить("Лого", OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Picture"));
	
	Свойства = Новый Соответствие;
	Свойства.Вставить("Имя"            , "ООО Вектор");
	Свойства.Вставить("Описание"       , "Наш первый клиент");
	Свойства.Вставить("Номер"          , 1);
	Свойства.Вставить("Статус"         , "Обычный");
	Свойства.Вставить("Дата создания"  , OPI_Инструменты.ПолучитьТекущуюДату());
	Свойства.Вставить("Картинка"       , Картинка);
	Свойства.Вставить("Активен"        , Истина);
	Свойства.Вставить("Сайт"           , "https://vector.ru");
	Свойства.Вставить("Почта"          , "mail@vector.ru");
	Свойства.Вставить("Телефон"        , "88005553535");
	Свойства.Вставить("Статус"	       , "Новый");
	
	Результат = OPI_Notion.СоздатьСтраницуВБазу(Токен, База, Свойства);
	
	OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СоздатьСтраницуВБазу");
    
    Проверка_НоушнОбъект(Результат);
    
    Родитель = СтрЗаменить(Результат["parent"]["database_id"], "-", "");
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Родитель).Равно(База);
       	 
КонецПроцедуры

Процедура Ноушн_ИзменитьСвойстваСтраницы() Экспорт
	
	Токен        = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Notion_Token");
	Страница     = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Notion_Page");
	Иконка       = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Picture");
	Обложка      = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Picture2");
	Архивировать = Ложь;
	
	Свойства = Новый Соответствие;
	Свойства.Вставить("Активен"     , Ложь);
	Свойства.Вставить("Почта"       , "vector@mail.ru");
	
	Результат = OPI_Notion.ИзменитьСвойстваСтраницы(Токен
		, Страница
		, Свойства
		, Иконка
		, Обложка
		, Архивировать);
          
	OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ИзменитьСвойстваСтраницы");
    
    Проверка_НоушнОбъект(Результат);
    
КонецПроцедуры

Процедура Ноушн_СоздатьУдалитьБлок() Экспорт
	
	Токен     = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Notion_Token");
	Родитель  = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Notion_Parent");
	Блок      = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Notion_Block");
	
	Результат = OPI_Notion.ВернутьБлок(Токен, Блок);	
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ВернутьБлок");
    
    Проверка_НоушнОбъект(Результат, "block");
    
	Результат = OPI_Notion.СоздатьБлок(Токен, Родитель, Результат);
	
	OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СоздатьБлок");
    
    Проверка_НоушнОбъект(Результат, "list");
    
    Блок      = Результат["results"][0]["id"];
	Результат = OPI_Notion.ВернутьДочерниеБлоки(Токен, Блок);
	
	OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ВернутьДочерниеБлоки");
    
    Проверка_НоушнОбъект(Результат, "list");
    
	Результат = OPI_Notion.УдалитьБлок(Токен, Блок);
	
	OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьБлок");
    
    Проверка_НоушнОбъект(Результат, "block");
    
КонецПроцедуры

Процедура Ноушн_ПолучитьПользователей() Экспорт
	
	Токен     = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Notion_Token");
	Результат = OPI_Notion.СписокПользователей(Токен);
	
	OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СписокПользователей");
    
    Проверка_НоушнОбъект(Результат, "list");
    
КонецПроцедуры

Процедура Ноушн_ПолучитьДанныеПользователя() Экспорт
	
	Токен        = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Notion_Token");
	Пользователь = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Notion_User"); 
	Результат    = OPI_Notion.ПолучитьДанныеПользователя(Токен, Пользователь);
	
	OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьДанныеПользователя");
    
    Проверка_НоушнОбъект(Результат, "user");
    
КонецПроцедуры

#КонецОбласти

#Область Slack

Процедура Слак_ПолучитьИнформациюОБоте() Экспорт
    
    Токен     = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Slack_Token");
    Результат = OPI_Slack.ПолучитьИнформациюОБоте(Токен);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьИнформациюОБоте");
    
    Проверка_СлакОк(Результат);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["bot_id"]).Заполнено();
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["user_id"]).Заполнено();
    
КонецПроцедуры

Процедура Слак_ПолучитьСписокПользователей() Экспорт
    
    Токен     = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Slack_Token");
    Результат = OPI_Slack.ПолучитьСписокПользователей(Токен);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокПользователей");
    
    Проверка_СлакОк(Результат);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["members"]).ИмеетТип("Массив");
    
КонецПроцедуры

Процедура Слак_ПолучитьСписокОбластей() Экспорт
    
    Токен     = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Slack_Token");
    Результат = OPI_Slack.ПолучитьСписокРабочихОбластей(Токен);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокРабочихОбластей");
    
    Проверка_СлакОк(Результат);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["teams"]).ИмеетТип("Массив");
    
КонецПроцедуры

Процедура Слак_ОтправитьУдалитьСообщение() Экспорт

    Токен    = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Slack_Token"); 
    Канал    = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Slack_Channel");
    Текст    = "Тестовое сообщение 1";
    Текст2   = "Тестовое сообщение 2";
    Отметки  = Новый Массив;
    Картинка = "https://github.com/Bayselonarrend/OpenIntegrations/raw/main/Media/logo.png?v1";
    
    Результат = OPI_Slack.ОтправитьСообщение(Токен, Канал, Текст);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьСообщение");
    
    Проверка_СлакОк(Результат);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["channel"]).Равно(Канал);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["ts"]).Заполнено();
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["message"]["text"]).Равно(Текст);
    
    Отметка = Результат["ts"];
    
    Результат = OPI_Slack.ИзменитьСообщение(Токен, Канал, Отметка, Текст2);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ИзменитьСообщение");
    
    Проверка_СлакОк(Результат);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["channel"]).Равно(Канал);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["ts"]).Заполнено();
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["message"]["text"]).Равно(Текст2);
        
    Результат = OPI_Slack.ПолучитьСписокОтветовНаСообщение(Токен, Канал, Отметка);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокОтветовНаСообщение");
        
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["messages"]).ИмеетТип("Массив");
    
    Результат = OPI_Slack.ПолучитьСсылкуНаСообщение(Токен, Канал, Отметка);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСсылкуНаСообщение");
        
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["channel"]).Равно(Канал);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["permalink"]).Заполнено();
        
    Проверка_СлакОк(Результат);
      
    Отметки.Добавить(Отметка);
    
    МассивБлоков = Новый Массив;
    Блок         = OPI_Slack.СформироватьБлокКартинку(Картинка, "Yo");
    МассивБлоков.Добавить(Блок);
    
    Результат = OPI_Slack.ОтправитьСообщение(Токен, Канал, Текст, , МассивБлоков);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьСообщение (картинка)");
    
    Проверка_СлакОк(Результат);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["channel"]).Равно(Канал);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["ts"]).Заполнено();
    
    Отметки.Добавить(Результат["ts"]);
    
    Блок = OPI_Slack.СформироватьБлокКартинку(Картинка, "Yo");
    БлокJSON = OPI_Инструменты.JSONСтрокой(Блок);
    
    ИВФ = ПолучитьИмяВременногоФайла("json");
    
    ТекстовыйДокумент = Новый ТекстовыйДокумент();
    ТекстовыйДокумент.УстановитьТекст(БлокJSON);
    ТекстовыйДокумент.Записать(ИВФ);
        
    Результат = OPI_Slack.ОтправитьСообщение(Токен, Канал, Текст, , ИВФ);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьСообщение (json)");
    
    Проверка_СлакОк(Результат);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["channel"]).Равно(Канал);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["ts"]).Заполнено();
    
    Отметки.Добавить(Результат["ts"]);
    
    Блоки = "['" + ИВФ + "','" + ИВФ + "']";
    Результат = OPI_Slack.ОтправитьСообщение(Токен, Канал, Текст, , Блоки);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьСообщение (json массив)");
    
    Проверка_СлакОк(Результат);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["channel"]).Равно(Канал);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["ts"]).Заполнено();
    
    Отметки.Добавить(Результат["ts"]);

    УдалитьФайлы(ИВФ);
 
    Для Каждого Отметка Из Отметки Цикл
        
        Результат = OPI_Slack.УдалитьСообщение(Токен, Канал, Отметка);
        
        OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьСообщение");

        Проверка_СлакОк(Результат);
        OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["channel"]).Равно(Канал);
        OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["ts"]).Заполнено();
    
    КонецЦикла;
    
    Час       = 3600;
    Сутки     = 24;
    Отправка  = OPI_Инструменты.ПолучитьТекущуюДату() + (Сутки * Час);
    Результат = OPI_Slack.ОтправитьСообщение(Токен, Канал, Текст, Отправка);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьСообщение (отложенное)");
    
    Проверка_СлакОк(Результат);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["channel"]).Равно(Канал);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["scheduled_message_id"]).Заполнено();
    
    Отметка   = Результат["scheduled_message_id"];
    Результат = OPI_Slack.УдалитьСообщение(Токен, Канал, Отметка, Истина);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьСообщение");

    Проверка_СлакОк(Результат);

КонецПроцедуры

Процедура Слак_ОтправитьУдалитьЭфемерное() Экспорт
   
    Токен        = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Slack_Token"); 
    Канал        = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Slack_Channel");
    Пользователь = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Slack_User");
    Картинка     = "https://github.com/Bayselonarrend/OpenIntegrations/raw/main/Media/logo.png?v1";
    Текст        = "Тестовое сообщение 1";
    
    Блок      = OPI_Slack.СформироватьБлокКартинку(Картинка, "Yo");
    Результат = OPI_Slack.ОтправитьЭфемерноеСообщение(Токен, Канал, Текст, Пользователь, Блок);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьСообщение");
    
    Проверка_СлакОк(Результат);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["message_ts"]).Заполнено();
     
КонецПроцедуры

Процедура Слак_ПолучитьОтложенныеСообщения() Экспорт
    
    Токен    = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Slack_Token"); 
    Канал    = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Slack_Channel");
    
    Результат = OPI_Slack.ПолучитьСписокОтложенныхСообщений(Токен, Канал);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокОтложенныхСообщений");
    
    Проверка_СлакОк(Результат);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["scheduled_messages"]).ИмеетТип("Массив");
   
КонецПроцедуры

Процедура Слак_СоздатьАрхивироватьКанал() Экспорт
    
    Токен        = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Slack_Token");
    Пользователь = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Slack_User");
    Имя          = "testconv" + Строка(Новый УникальныйИдентификатор);
    Тема         = "Тестовая тема";
    Цель         = "Тестовая цель";
    
    #Область СоздатьКанал
    Результат = OPI_Slack.СоздатьКанал(Токен, Имя);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СоздатьКанал");
    
    Данные = Результат["channel"];
    Канал  = Данные["id"];

    Проверка_СлакОк(Результат);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Данные["name"]).Равно(Имя);
    #КонецОбласти

    #Область УстановитьТемуКанала
    Результат = OPI_Slack.УстановитьТемуКанала(Токен, Канал, Тема);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УстановитьТемуКанала");
    
    Данные = Результат["channel"];
    Канал  = Данные["id"];

    Проверка_СлакОк(Результат);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Данные["name"]).Равно(Имя);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Данные["topic"]["value"]).Равно(Тема);
    #КонецОбласти
    
    #Область УстановитьЦельКанала
    Результат = OPI_Slack.УстановитьЦельКанала(Токен, Канал, Цель);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УстановитьЦельКанала");
    
    Проверка_СлакОк(Результат);
    #КонецОбласти
    
    #Область ПолучитьКанал
    Результат = OPI_Slack.ПолучитьКанал(Токен, Канал);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьКанал");
    
    Данные = Результат["channel"];
    Канал  = Данные["id"];

    Проверка_СлакОк(Результат);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Данные["name"]).Равно(Имя);
    #КонецОбласти
    
    #Область ПригласитьПользователейВКанал
    Результат = OPI_Slack.ПригласитьПользователейВКанал(Токен, Канал, Пользователь);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПригласитьПользователейВКанал");
    
    Данные = Результат["channel"];
    Канал  = Данные["id"];

    Проверка_СлакОк(Результат);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Данные["name"]).Равно(Имя);
    #КонецОбласти
    
    #Область ВыгнатьПользователяИзКанала
    Результат = OPI_Slack.ВыгнатьПользователяИзКанала(Токен, Канал, Пользователь);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ВыгнатьПользователяИзКанала");
    
    Проверка_СлакОк(Результат);
    #КонецОбласти
    
    #Область ПолучитьИсториюКанала
    Результат = OPI_Slack.ПолучитьИсториюКанала(Токен, Канал);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьИсториюКанала");
        
    Проверка_СлакОк(Результат);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["messages"]).ИмеетТип("Массив");
    #КонецОбласти
    
    #Область ПолучитьСписокПользователейКанала
    Результат = OPI_Slack.ПолучитьСписокПользователейКанала(Токен, Канал);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокПользователейКанала");
        
    Проверка_СлакОк(Результат);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["members"]).ИмеетТип("Массив");
    #КонецОбласти

    #Область ПокинутьКанал
    Результат = OPI_Slack.ПокинутьКанал(Токен, Канал);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПокинутьКанал");
    
    Проверка_СлакОк(Результат);
    #КонецОбласти
    
    #Область ВступитьВКанал
    Результат = OPI_Slack.ВступитьВКанал(Токен, Канал);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ВступитьВКанал");
    
    Данные = Результат["channel"];
    Канал  = Данные["id"];

    Проверка_СлакОк(Результат);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Данные["name"]).Равно(Имя);
    #КонецОбласти
    
    #Область ПереименоватьКанал
    НовоеИмя  = "testconv" + Строка(Новый УникальныйИдентификатор);
    Результат = OPI_Slack.ПереименоватьКанал(Токен, Канал, НовоеИмя);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПереименоватьКанал");
    
    Данные = Результат["channel"];
    Канал  = Данные["id"];

    Проверка_СлакОк(Результат);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Данные["name"]).Равно(НовоеИмя);
    #КонецОбласти
    
    #Область АрхивироватьКанал
    Результат = OPI_Slack.АрхивироватьКанал(Токен, Канал);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "АрхивироватьКанал");
    
    Проверка_СлакОк(Результат);
    #КонецОбласти
    
КонецПроцедуры

Процедура Слак_ПолучитьСписокКаналов() Экспорт
    
    Токен = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Slack_Token");
    
    Результат = OPI_Slack.ПолучитьСписокКаналов(Токен);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокКаналов");

    Проверка_СлакОк(Результат);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["channels"]).ИмеетТип("Массив");
    
КонецПроцедуры

Процедура Слак_ОткрытьЗакрытьДиалог() Экспорт
    
    Токен        = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Slack_Token");
    Пользователь = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Slack_User");
    Текст        = "Yo, dude";
    
    Результат = OPI_Slack.ОткрытьДиалог(Токен, Пользователь);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОткрытьДиалог");

    Диалог = Результат["channel"]["id"];
    Проверка_СлакОк(Результат);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["channel"]).ИмеетТип("Соответствие");
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Диалог).Заполнено();
    
    Результат = OPI_Slack.ОтправитьСообщение(Токен, Диалог, Текст);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьСообщение");
    
    Проверка_СлакОк(Результат);

    Результат = OPI_Slack.ЗакрытьДиалог(Токен, Диалог);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ЗакрытьДиалог");

    Проверка_СлакОк(Результат);

КонецПроцедуры

Процедура Слак_ПолучитьСписокФайлов() Экспорт
    
    Токен = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Slack_Token");
    Канал = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Slack_Channel");
    
    Результат = OPI_Slack.ПолучитьСписокФайлов(Токен, Канал);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокФайлов");

    Проверка_СлакОк(Результат);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["files"]).ИмеетТип("Массив");

КонецПроцедуры

Процедура Слак_ЗагрузитьУдалитьФайл() Экспорт
    
    Токен        = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Slack_Token");
    Файл         = OPI_ПолучениеДанныхТестов.ПолучитьДвоичные("Document");
    Канал        = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Slack_Channel");
    МассивФайлов = Новый Массив;
    ИмяФайла     = "megadoc.docx";
    Заголовок    = "Новый файл";
    
    Результат = OPI_Slack.ЗагрузитьФайл(Токен, Файл, ИмяФайла, Заголовок);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ЗагрузитьФайл");

    ЗагруженныйФайл = Результат["files"][0];
    МассивФайлов.Добавить(ЗагруженныйФайл["id"]);
    
    Проверка_СлакОк(Результат);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(ЗагруженныйФайл["name"]).Равно(ИмяФайла);
    
    Результат = OPI_Slack.ЗагрузитьФайл(Токен, Файл, ИмяФайла, Заголовок, Канал);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ЗагрузитьФайл (в канал)");

    ЗагруженныйФайл = Результат["files"][0];
    МассивФайлов.Добавить(ЗагруженныйФайл["id"]);
    
    Проверка_СлакОк(Результат);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(ЗагруженныйФайл["name"]).Равно(ИмяФайла);
    
    Результат = OPI_Slack.ПолучитьДанныеФайла(Токен, ЗагруженныйФайл["id"]);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьФайл");
    
    ЗагруженныйФайл = Результат["file"];
    
    Проверка_СлакОк(Результат);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(ЗагруженныйФайл["name"]).Равно(ИмяФайла);
        
    Для Каждого ЗагруженныйФайл Из МассивФайлов Цикл
        
        Результат = OPI_Slack.УдалитьФайл(Токен, ЗагруженныйФайл);
        
        OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьФайл");
        
        Проверка_СлакОк(Результат);
        
    КонецЦикла;

КонецПроцедуры

Процедура Слак_ПолучитьСписокВФ() Экспорт
    
    Токен = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Slack_Token");
    Канал = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Slack_Channel");
    
    Результат = OPI_Slack.ПолучитьСписокВнешнихФайлов(Токен);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокВнешнихФайлов");
    
    Проверка_СлакОк(Результат);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["files"]).ИмеетТип("Массив");
    
    Результат = OPI_Slack.ПолучитьСписокВнешнихФайлов(Токен, Канал);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокВнешнихФайлов");
    
    Проверка_СлакОк(Результат);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["files"]).ИмеетТип("Массив");
    
КонецПроцедуры

Процедура Слак_ЗагрузитьУдалитьВФ() Экспорт
    
    Токен        = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Slack_Token");
    Файл         = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Document");
    Канал        = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Slack_Channel");
    Заголовок    = "Новый файл";
    
    Результат = OPI_Slack.ДобавитьВнешнийФайл(Токен, Файл, Заголовок);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ДобавитьВнешнийФайл");
    
    ЗагруженныйФайл = Результат["file"];
    
    Проверка_СлакОк(Результат);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(ЗагруженныйФайл["title"]).Равно(Заголовок);
    
    Результат = OPI_Slack.ПолучитьВнешнийФайл(Токен, ЗагруженныйФайл["id"]);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьВнешнийФайл");
    
    ЗагруженныйФайл = Результат["file"];
    
    Проверка_СлакОк(Результат);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(ЗагруженныйФайл["title"]).Равно(Заголовок);
    
    Результат = OPI_Slack.ОтправитьВнешнийФайл(Токен, ЗагруженныйФайл["id"], Канал);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьВнешнийФайл");
    
    Проверка_СлакОк(Результат);
    
    Результат = OPI_Slack.УдалитьВнешнийФайл(Токен, ЗагруженныйФайл["id"]);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьВнешнийФайл");
    
    Проверка_СлакОк(Результат);
    
КонецПроцедуры

#КонецОбласти

#Область Airtable

Процедура АТ_СоздатьБазу() Экспорт
    
    Токен        = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Airtable_Token");
    Область      = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Airtable_Workspace");
    Наименование = "Тестовая база";
    
    МассивПолей = Новый Массив;
    МассивПолей.Добавить(OPI_Airtable.ПолучитьПолеНомера("Номер"));
    МассивПолей.Добавить(OPI_Airtable.ПолучитьПолеСтроковое("Строковое"));
    
    ИмяТаблицы = "Тестовая таблица";
    
    СоответствиеТаблиц = Новый Соответствие;
    СоответствиеТаблиц.Вставить(ИмяТаблицы, МассивПолей);
    
    Результат = OPI_Airtable.СоздатьБазу(Токен, Область, Наименование, СоответствиеТаблиц);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СоздатьБазу");
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["id"]).Заполнено();
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["tables"][0]["name"]).Равно(ИмяТаблицы);
    
    База = Результат["id"];
    OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("Airtable_Base", База);
    
    Результат = OPI_Airtable.ПолучитьТаблицыБазы(Токен, База);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьТаблицыБазы");
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["tables"]).Заполнено();
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["tables"]).ИмеетТип("Массив");

    Результат = OPI_Airtable.ПолучитьСписокБаз(Токен);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокБаз");
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["bases"]).Заполнено();
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["bases"]).ИмеетТип("Массив");
 
КонецПроцедуры

Процедура АТ_СоздатьТаблицу() Экспорт
    
    Токен = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Airtable_Token");
    База  = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Airtable_Base");
    
    МассивПолей = Новый Массив;
    МассивПолей.Добавить(OPI_Airtable.ПолучитьПолеНомера("Номер"));    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(МассивПолей[0], "ПолучитьПолеНомера");
    
    МассивПолей.Добавить(OPI_Airtable.ПолучитьПолеСтроковое("Строковое"));
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(МассивПолей[1], "ПолучитьПолеСтроковое");
    
    МассивПолей.Добавить(OPI_Airtable.ПолучитьПолеВложения("Вложение"));
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(МассивПолей[2], "ПолучитьПолеВложения");
    
    МассивПолей.Добавить(OPI_Airtable.ПолучитьПолеФлажка("Флажок"));
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(МассивПолей[3], "ПолучитьПолеФлажка");
    
    МассивПолей.Добавить(OPI_Airtable.ПолучитьПолеДаты("Дата"));
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(МассивПолей[4], "ПолучитьПолеДаты");
    
    МассивПолей.Добавить(OPI_Airtable.ПолучитьПолеТелефона("Телефон"));
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(МассивПолей[5], "ПолучитьПолеТелефона");
        
    МассивПолей.Добавить(OPI_Airtable.ПолучитьПолеПочты("Почта"));
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(МассивПолей[6], "ПолучитьПолеПочты");    
    
    МассивПолей.Добавить(OPI_Airtable.ПолучитьПолеСсылки("Ссылка"));
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(МассивПолей[7], "ПолучитьПолеСсылки");    
    
    ИмяТаблицы = "Тестовая таблица 2";
    Описание   = "Новая таблица";
    
    Результат = OPI_Airtable.СоздатьТаблицу(Токен, База, ИмяТаблицы, МассивПолей, Описание);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СоздатьТаблицу");
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["name"]).Равно(ИмяТаблицы);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["description"]).Равно(Описание);
    
    Таблица    = Результат["id"];
    ИмяТаблицы = "Тестовая таблица 2 (изм.)";
    Описание   = "Новая таблица (изм.)";
   
    OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("Airtable_Table", Таблица);
    
    Результат = OPI_Airtable.ИзменитьТаблицу(Токен, База, Таблица, ИмяТаблицы, Описание);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ИзменитьТаблицу");
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["name"]).Равно(ИмяТаблицы);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["description"]).Равно(Описание);

КонецПроцедуры

Процедура АТ_СоздатьПоле() Экспорт
    
    Токен   = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Airtable_Token");
    База    = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Airtable_Base");
    Таблица = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Airtable_Table");
    Имя     = Строка(Новый УникальныйИдентификатор);
    
    Поле = OPI_Airtable.ПолучитьПолеНомера(Имя);
    
    Результат = OPI_Airtable.СоздатьПоле(Токен, База, Таблица, Поле);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СоздатьПоле");
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["name"]).Равно(Имя);
    
    Поле      = Результат["id"]; 
    Имя       = Имя + "(изм.)";
    Описание  = "Новое описание";
    
    Результат = OPI_Airtable.ИзменитьПоле(Токен, База, Таблица, Поле, Имя, Описание);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ИзменитьПоле");
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["name"]).Равно(Имя);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["description"]).Равно(Описание);
    
КонецПроцедуры

Процедура АТ_СоздатьУдалитьЗаписи() Экспорт

    Токен   = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Airtable_Token");
    База    = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Airtable_Base");
    Таблица = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Airtable_Table");
    
    Числовой = 10;
    Строчный = "Привет";
    
    ОписаниеСтроки1 = Новый Структура("Номер,Строковое", Числовой, Строчный);
    ОписаниеСтроки2 = Новый Структура("Номер,Строковое", Числовой, Строчный);
    
    МассивУдаляемых = Новый Массив;
    МассивОписаний  = Новый Массив;
    МассивОписаний.Добавить(ОписаниеСтроки1);
    МассивОписаний.Добавить(ОписаниеСтроки2);
    
    Результат = OPI_Airtable.СоздатьЗаписи(Токен, База, Таблица, МассивОписаний);

    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СоздатьЗаписи");
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["records"]).ИмеетТип("Массив");
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["records"].Количество()).Равно(2);
    
    Для Каждого Запись Из Результат["records"] Цикл
        МассивУдаляемых.Добавить(Запись["id"]);
    КонецЦикла;
        
    Результат = OPI_Airtable.СоздатьЗаписи(Токен, База, Таблица, ОписаниеСтроки1);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СоздатьЗаписи (одна)");
    
    ОдиночнаяЗапись = Результат["id"];
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(ОдиночнаяЗапись).Заполнено();
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["createdTime"]).Заполнено();
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["fields"]["Номер"]).Равно(Числовой);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(СокрЛП(Результат["fields"]["Строковое"])).Равно(Строчный);
  
    Результат = OPI_Airtable.ПолучитьЗапись(Токен, База, Таблица, ОдиночнаяЗапись);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьЗапись");
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["id"]).Равно(ОдиночнаяЗапись);
    
    Текст     = "Тестовый комментарий";
    Результат = OPI_Airtable.СоздатьКомментарий(Токен, База, Таблица, ОдиночнаяЗапись, Текст);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СоздатьКомментарий");
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["text"]).Равно(Текст);
    
    Коммент   = Результат["id"];
    Текст     = "Тестовый комментарий (изм.)";
    Результат = OPI_Airtable.ИзменитьКомментарий(Токен, База, Таблица, ОдиночнаяЗапись, Коммент, Текст);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ИзменитьКомментарий");
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["text"]).Равно(Текст);
    
    Результат = OPI_Airtable.ПолучитьКомментарии(Токен, База, Таблица, ОдиночнаяЗапись);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьКомментарии");
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["comments"]).ИмеетТип("Массив");
    
    Результат = OPI_Airtable.УдалитьКомментарий(Токен, База, Таблица, ОдиночнаяЗапись, Коммент);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьКомментарий");
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["deleted"]).Равно(Истина);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["id"]).Равно(Коммент);
     
    Результат = OPI_Airtable.ПолучитьСписокЗаписей(Токен, База, Таблица);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокЗаписей");
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["records"]).ИмеетТип("Массив");
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["records"]).Заполнено();
    
    Результат = OPI_Airtable.УдалитьЗаписи(Токен, База, Таблица, МассивУдаляемых);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьЗаписи");
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["records"]).ИмеетТип("Массив");
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["records"]).Заполнено();
      
    Результат = OPI_Airtable.УдалитьЗаписи(Токен, База, Таблица, ОдиночнаяЗапись);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьЗаписи (одна)");
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["records"]).ИмеетТип("Массив");
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["records"]).Заполнено();
        
КонецПроцедуры

#КонецОбласти

#Область Dropbox

Процедура ДропБокс_ПолучитьОбновитьТокен() Экспорт
    
    ПараметрыТеста = Новый Структура;
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Dropbox_Appkey"   , ПараметрыТеста);
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Dropbox_Appsecret", ПараметрыТеста);
   
    Dropbox_ПолучитьСсылкуАвторизации(ПараметрыТеста); 
    
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Dropbox_Code", ПараметрыТеста);

    Dropbox_ПолучитьТокен(ПараметрыТеста);
    
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Dropbox_Refresh", ПараметрыТеста);
    
    Dropbox_ОбновитьТокен(ПараметрыТеста);
       
КонецПроцедуры

Процедура ДропБокс_ЗагрузитьФайл() Экспорт
    
    ПараметрыТеста = Новый Структура;
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Dropbox_Token", ПараметрыТеста);
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture", ПараметрыТеста);
    
    Dropbox_ЗагрузитьФайл(ПараметрыТеста);
    Dropbox_ПолучитьИнформациюОбОбъекте(ПараметрыТеста);
    Dropbox_ПолучитьСписокВерсийОбъекта(ПараметрыТеста);
    Dropbox_ВосстановитьОбъектКВерсии(ПараметрыТеста);
    Dropbox_ПолучитьПревью(ПараметрыТеста);
    Dropbox_СкачатьФайл(ПараметрыТеста);
    Dropbox_ПереместитьОбъект(ПараметрыТеста);
    Dropbox_КопироватьОбъект(ПараметрыТеста);
    Dropbox_УдалитьОбъект(ПараметрыТеста);
        
КонецПроцедуры

Процедура ДропБокс_СоздатьКаталог() Экспорт
    
    ПараметрыТеста = Новый Структура;
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Dropbox_Token", ПараметрыТеста);
    
    Dropbox_СоздатьПапку(ПараметрыТеста);
    Dropbox_СкачатьПапку(ПараметрыТеста);
    
КонецПроцедуры

Процедура ДропБокс_ПолучитьСписокФайловПапки() Экспорт
    
    ПараметрыТеста = Новый Структура;
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Dropbox_Token", ПараметрыТеста);
    
    Dropbox_ПолучитьСписокФайловПапки(ПараметрыТеста);
    
КонецПроцедуры

Процедура ДропБокс_ЗагрузитьФайлПоURL() Экспорт
    
    ПараметрыТеста = Новый Структура;
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Dropbox_Token", ПараметрыТеста);
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Document", ПараметрыТеста);
    
    Dropbox_ЗагрузитьФайлПоURL(ПараметрыТеста);
    Dropbox_ПолучитьСтатусЗагрузкиПоURL(ПараметрыТеста);
    
КонецПроцедуры

Процедура ДропБокс_СоздатьУдалитьТег() Экспорт
    
    ПараметрыТеста = Новый Структура;
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Dropbox_Token", ПараметрыТеста);
    
    Dropbox_ДобавитьТег(ПараметрыТеста);
    Dropbox_ПолучитьСписокТегов(ПараметрыТеста);
    Dropbox_УдалитьТег(ПараметрыТеста);
    
КонецПроцедуры

Процедура ДропБокс_ПолучитьАккаунт() Экспорт
  
    ПараметрыТеста = Новый Структура;
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Dropbox_Token", ПараметрыТеста);
    
    Dropbox_ПолучитьИнформациюОбАккаунте(ПараметрыТеста);
    Dropbox_ПолучитьДанныеИспользованияПространства(ПараметрыТеста);
      
КонецПроцедуры

Процедура ДропБокс_РаботаСДоступами() Экспорт
    
    ПараметрыТеста = Новый Структура;
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Dropbox_Token"    , ПараметрыТеста);
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Dropbox_OtherUser", ПараметрыТеста);
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Dropbox_FileID"   , ПараметрыТеста);
    
    Dropbox_ДобавитьПользователейКФайлу(ПараметрыТеста);
    Dropbox_ОпубликоватьПапку(ПараметрыТеста);
    Dropbox_ДобавитьПользователейКПапке(ПараметрыТеста);
    Dropbox_ОтменитьПубликациюПапки(ПараметрыТеста);
    Dropbox_ОтменитьПубликациюФайла(ПараметрыТеста);
    
КонецПроцедуры

#КонецОбласти

#Область Bitrix24

Процедура Б24_РаботаСТокеном() Экспорт
    
    ПараметрыТеста = Новый Структура;
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Domain"      , ПараметрыТеста);
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_ClientID"    , ПараметрыТеста);
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_ClientSecret", ПараметрыТеста);
    
    Bitrix24_ПолучитьСсылкуАвторизации(ПараметрыТеста);
    
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Code", ПараметрыТеста);
    
    Bitrix24_ПолучитьТокен(ПараметрыТеста);
    
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Refresh", ПараметрыТеста);
    
    Bitrix24_ОбновитьТокен(ПараметрыТеста);
    
КонецПроцедуры

Процедура Б24_СерверноеВремя() Экспорт
	
	ПараметрыТеста = Новый Структура;
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_URL"   , ПараметрыТеста);
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Domain", ПараметрыТеста);
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Token" , ПараметрыТеста);
   
    Bitrix24_СерверноеВремя(ПараметрыТеста); 

КонецПроцедуры

Процедура Б24_РаботаСНовостями() Экспорт
    
    ПараметрыТеста = Новый Структура;
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_URL"   , ПараметрыТеста);
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Domain", ПараметрыТеста);
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Token" , ПараметрыТеста);
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture"        , ПараметрыТеста);
    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture2"       , ПараметрыТеста);

    Bitrix24_СоздатьНовость(ПараметрыТеста);
    Bitrix24_УдалитьНовость(ПараметрыТеста);
    
КонецПроцедуры

#КонецОбласти

#КонецОбласти

#КонецОбласти

#Область СлужебныеПроцедурыИФункции

Функция ПолучитьПараметрыВК() 
    
    Параметры   = Новый Структура;
    НомерГруппы = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("VK_GroupID");
    
    Параметры.Вставить("access_token"  , OPI_ПолучениеДанныхТестов.ПолучитьПараметр("VK_Token"));
    Параметры.Вставить("owner_id"      , "-" + НомерГруппы);
    Параметры.Вставить("app_id"        , OPI_ПолучениеДанныхТестов.ПолучитьПараметр("VK_AppID"));
    Параметры.Вставить("group_id"      , НомерГруппы);
    
    Возврат Параметры;
    
КонецФункции

Функция ПолучитьПараметрыТвиттер() 
    
    Параметры = Новый Соответствие;
              
    Параметры.Вставить("redirect_uri"          , OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Twitter_Redirect"));
    Параметры.Вставить("client_id"             , OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Twitter_ClinetID"));
    Параметры.Вставить("client_secret"         , OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Twitter_ClientSecret"));
    Параметры.Вставить("access_token"          , OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Twitter_Token"));
    Параметры.Вставить("refresh_token"         , OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Twitter_Refresh"));
    Параметры.Вставить("oauth_token"           , OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Twitter_OAuthToken"));
    Параметры.Вставить("oauth_token_secret"    , OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Twitter_OAuthSecret"));
    
    Параметры.Вставить("oauth_consumer_key"    
        , OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Twitter_OAuthConsumerKey"));
    Параметры.Вставить("oauth_consumer_secret" 
        , OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Twitter_OAuthConsumerSecret"));

    Возврат Параметры;
    
КонецФункции

#Область Проверки

Процедура Проверка_Пусто(Знач Результат)   
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(ЗначениеЗаполнено(Результат)).Равно(Ложь);
КонецПроцедуры

Процедура Проверка_Строка(Знач Результат)   
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Строка"); 
КонецПроцедуры

Процедура Проверка_ДвоичныеДанные(Знач Результат, Знач Размер = Неопределено)
    
    МинимальныйРазмер = 500000;
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("ДвоичныеДанные"); 
    
    Если Не Размер = Неопределено Тогда
        OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат.Размер()).Равно(Размер); 
    Иначе
        OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат.Размер() > МинимальныйРазмер).Равно(Истина);
    КонецЕсли;
    
КонецПроцедуры

Процедура Проверка_ТелеграмИстина(Знач Результат)
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["ok"]).Равно(Истина);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]).Равно(Истина);
        
КонецПроцедуры

Процедура Проверка_ТелеграмИнформацияБота(Знач Результат)
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["ok"]).Равно(Истина);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]["username"]).Заполнено();
    
КонецПроцедуры

Процедура Проверка_ТелеграмМассив(Результат)
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Соответствие") .Заполнено();
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["ok"]).Равно(Истина);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]).ИмеетТип("Массив");
    
КонецПроцедуры

Процедура Проверка_ТелеграмУстановкаВебхук(Знач Результат)
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["ok"]).Равно(Истина);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]).Равно(Истина);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["description"]).Равно("Webhook was set");
    
КонецПроцедуры

Процедура Проверка_ТелеграмУдалениеВебхук(Знач Результат)
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["ok"]).Равно(Истина);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]).Равно(Истина);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["description"]).Заполнено();
    
КонецПроцедуры

Процедура Проверка_ТелеграмСообщение(Знач Результат, Знач Текст)

    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["ok"]).Равно(Истина);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]["text"]).Равно(Текст);
    	
КонецПроцедуры

Процедура Проверка_ТелеграмКартинка(Знач Результат, Знач Текст)
	
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Соответствие") .Заполнено();
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["ok"]).Равно(Истина);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]["caption"]).Равно(Текст);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]["photo"]).ИмеетТип("Массив");
        
КонецПроцедуры

Процедура Проверка_ТелеграмВидео(Знач Результат, Знач Текст)

    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["ok"]).Равно(Истина);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]["caption"]).Равно(Текст);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]["video"]["mime_type"]).Равно("video/mp4");
    	
КонецПроцедуры

Процедура Проверка_ТелеграмАудио(Знач Результат, Знач Текст)

    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["ok"]).Равно(Истина);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]["caption"]).Равно(Текст);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]["audio"]["mime_type"]).Равно("audio/mpeg");
            
КонецПроцедуры

Процедура Проверка_ТелеграмДокумент(Знач Результат, Знач Текст)

    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["ok"]).Равно(Истина);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]["caption"]).Равно(Текст);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]["document"]).ИмеетТип("Соответствие").Заполнено();  
      
КонецПроцедуры

Процедура Проверка_ТелеграмГифка(Знач Результат, Знач Текст)

    Result_ = "result";
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["ok"]).Равно(Истина);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[Result_]["caption"]).Равно(Текст);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[Result_]["document"]).ИмеетТип("Соответствие").Заполнено();
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[Result_]["animation"]["mime_type"]).Равно("video/mp4");
            
КонецПроцедуры

Процедура Проверка_ТелеграмМедиагруппа(Знач Результат)

    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["ok"]).Равно(Истина);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]).ИмеетТип("Массив");
            
КонецПроцедуры

Процедура Проверка_ТелеграмМестоположение(Знач Результат)

    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["ok"]).Равно(Истина);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]["location"]).ИмеетТип("Соответствие").Заполнено();   
     
КонецПроцедуры

Процедура Проверка_ТелеграмКонтакт(Знач Результат, Знач Имя)

    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["ok"]).Равно(Истина);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]["contact"]).ИмеетТип("Соответствие").Заполнено();
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]["contact"]["first_name"]).Равно(Имя);
            
КонецПроцедуры

Процедура Проверка_ТелеграмОпрос(Знач Результат, Знач Вопрос)

    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["ok"]).Равно(Истина);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]["poll"]).ИмеетТип("Соответствие").Заполнено();
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]["poll"]["question"]).Равно(Вопрос);
        	
КонецПроцедуры

Процедура Проверка_ТелеграмПереслать(Знач Результат, Знач IDСообщения)
	
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["ok"]).Равно(Истина);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]["forward_origin"]["message_id"]).Равно(Число(IDСообщения));
    
КонецПроцедуры

Процедура Проверка_ТелеграмБан(Знач Результат)
	
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["description"]).Равно("Bad Request: can't remove chat owner");
    	
КонецПроцедуры

Процедура Проверка_ТелеграмПриглашение(Знач Результат, Знач Заголовок, Знач UnixИстечение)

    Result_ = "result";
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["ok"]).Равно(Истина);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[Result_]["member_limit"]).Равно(200);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[Result_]["name"]).Равно(Заголовок);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[Result_]["expire_date"]).Равно(Число(UnixИстечение));
    	
КонецПроцедуры

Процедура Проверка_ТелеграмЧисло(Знач Результат)

    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["ok"]).Равно(Истина);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]).ИмеетТип("Число");
    	
КонецПроцедуры

Процедура Проверка_ТелеграмСозданиеТемы(Знач Результат, Знач Имя, Иконка)

    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["ok"]).Равно(Истина);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]["name"]).Равно(Имя);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]["icon_custom_emoji_id"]).Равно(Иконка);
    	
КонецПроцедуры

Процедура Проверка_ВКПост(Знач Результат)

    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["response"]["post_id"]).ИмеетТип("Число").Заполнено();
        
КонецПроцедуры

Процедура Проверка_ВКИстина(Знач Результат)
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["response"]).ИмеетТип("Число").Равно(1);
    
КонецПроцедуры

Процедура Проверка_ВКАльбом(Знач Результат, Знач Описание)

    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["response"]["description"]).Равно(Описание);
        
КонецПроцедуры

Процедура Проверка_ВККартинкаАльбома(Знач Результат, Знач ОписаниеКартинки, Знач ИДАльбома)

    Response    = "response";
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[Response][0]["text"]).Равно(ОписаниеКартинки);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[Response][0]["album_id"]).Равно(ИДАльбома);
            
КонецПроцедуры

Процедура Проверка_ВКИстория(Знач Результат)
  
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["response"]["count"]).ИмеетТип("Число").Равно(1);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["response"]["items"]).ИмеетТип("Массив").Заполнено();
      
КонецПроцедуры

Процедура Проверка_ВКОбсуждение(Знач Результат)
 
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["response"]).ИмеетТип("Число").Заполнено();   
    
КонецПроцедуры

Процедура Проверка_ГКОбъект(Знач Результат, Знач Наименование, Знач Описание)
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Соответствие");
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["summary"]).Равно(Наименование);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["description"]).Равно(Описание);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["id"]).ИмеетТип("Строка").Заполнено();
    
КонецПроцедуры

Процедура Проверка_ТвиттерТекст(Знач Результат, Знач Текст)
    
    ТекстОтвета = Результат["data"]["text"];
    ТекстОтвета = Лев(ТекстОтвета, СтрДлина(Текст));
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(ТекстОтвета).Равно(Текст);

КонецПроцедуры

Процедура Проверка_ВайберОк(Знач Результат)
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["status_message"]).Равно("ok");
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["status"]).Равно(0);

КонецПроцедуры

Процедура Проверка_НоушнОбъект(Знач Результат, Знач Вид = "page")
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["object"]).Равно(Вид);
    
КонецПроцедуры

Процедура Проверка_СлакОк(Знач Результат)
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["ok"]).Равно(Истина);

КонецПроцедуры

Процедура Проверка_ДропБоксФайл(Знач Результат, Знач Путь)
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["path_display"]).Равно(Путь);
    
КонецПроцедуры

Процедура Проверка_ДропБоксМетаданные(Знач Результат, Знач Путь)
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["metadata"]["path_display"]).Равно(Путь);
    
КонецПроцедуры

Процедура Проверка_ДропБоксМассив(Знач Результат, Знач Количество = Неопределено)
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["entries"]).ИмеетТип("Массив");
    
    Если Не Количество = Неопределено Тогда
        OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["entries"].Количество()).Равно(Количество);
    КонецЕсли;
    
КонецПроцедуры

Процедура Проверка_ДропБоксРабота(Знач Результат)
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["async_job_id"]).Заполнено();
КонецПроцедуры

Процедура Проверка_ДропБоксСтатус(Знач Результат)
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[".tag"]).Равно("complete");
КонецПроцедуры

Процедура Проверка_ДропБоксТеги(Знач Результат, Знач Количество)
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["paths_to_tags"]).ИмеетТип("Массив");
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["paths_to_tags"].Количество()).Равно(Количество);
    
КонецПроцедуры

Процедура Проверка_ДропбоксАккаунт(Знач Результат)
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["account_id"]).Заполнено();
КонецПроцедуры

Процедура Проверка_ДропбоксПространство(Знач Результат)
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["used"]).Заполнено();
КонецПроцедуры

Процедура Проверка_ДропбоксУчастник(Знач Результат, Знач Почта, Знач ТолькоПросмотр)
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[0]["result"][".tag"]).Равно("success");
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[0]["member"]["email"]).Равно(Почта);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(
        Результат[0]["result"]["success"][".tag"]).Равно(?(ТолькоПросмотр, "viewer", "editor"));
КонецПроцедуры

Процедура Проверка_ДропбоксПубличнаяПапка(Знач Результат)
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["shared_folder_id"]).Заполнено();
КонецПроцедуры

Процедура Проверка_БитриксВремя(Знач Результат)
	
	Время = Результат["result"];
	Время = XMLЗначение(Тип("Дата"), Время);
	
	OPI_ПолучениеДанныхТестов.ОжидаетЧто(Время).ИмеетТип("Дата").Заполнено();
	
КонецПроцедуры

Процедура Проверка_БитриксАвторизация(Знач Результат)
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["access_token"]).Заполнено();
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["refresh_token"]).Заполнено();

КонецПроцедуры

Процедура Проверка_БитриксНовость(Знач Результат)   
   OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]).ИмеетТип("Число").Заполнено(); 
КонецПроцедуры

Процедура Проверка_БитриксИстина(Знач Результат)   
   OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]).ИмеетТип("Булево").Равно(Истина); 
КонецПроцедуры


#КонецОбласти

#Область АтомарныеТесты

#Область Telegram

Процедура Telegram_ПолучитьИнформациюБота(ПараметрыФункции)

    Токен       = ПараметрыФункции["Telegram_Token"];
    Результат   = OPI_Telegram.ПолучитьИнформациюБота(Токен);
    
    // END
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьИнформациюБота", "Telegram");
        
    Проверка_ТелеграмИнформацияБота(Результат);
    
    OPI_Инструменты.Пауза(5);
    	
КонецПроцедуры

Процедура Telegram_ПолучитьОбновления(ПараметрыФункции)
	
	Токен       = ПараметрыФункции["Telegram_Token"];
    Результат   = OPI_Telegram.ПолучитьОбновления(Токен);

	// END
	
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьОбновления", "Telegram");
    
    Проверка_ТелеграмМассив(Результат);
    
    OPI_Инструменты.Пауза(5);
    
КонецПроцедуры

Процедура Telegram_УстановитьWebhook(ПараметрыФункции)
    
    Токен       = ПараметрыФункции["Telegram_Token"];
    URL         = ПараметрыФункции["Telegram_URL"];
    
    Результат   = OPI_Telegram.УстановитьWebhook(Токен, URL);
    
    // END
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УстановитьWebhook", "Telegram");
      
    Проверка_ТелеграмУстановкаВебхук(Результат);
    
    OPI_Инструменты.Пауза(5);
    
КонецПроцедуры

Процедура Telegram_УдалитьWebhook(ПараметрыФункции)
	
	Токен     = ПараметрыФункции["Telegram_Token"];
	Результат = OPI_Telegram.УдалитьWebhook(Токен);
	
	// END
	
	OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьWebhook", "Telegram");
      
    Проверка_ТелеграмУдалениеВебхук(Результат);
    
    OPI_Инструменты.Пауза(5);
    
КонецПроцедуры

Процедура Telegram_ОтправитьТекстовоеСообщение(ПараметрыФункции)
	
	Токен    = ПараметрыФункции["Telegram_Token"];
	IDЧата   = ПараметрыФункции["Telegram_ChatID"];
	IDКанала = ПараметрыФункции["Telegram_ChannelID"];    
	Текст    = ПараметрыФункции["String"];
	
    Результат = OPI_Telegram.ОтправитьТекстовоеСообщение(Токен, IDЧата, Текст);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьТекстовоеСообщение", "Telegram"); 
    
    Проверка_ТелеграмСообщение(Результат, Текст); // SKIP
    
    Результат = OPI_Telegram.ОтправитьТекстовоеСообщение(Токен, IDКанала, Текст);
    
    // END
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьТекстовоеСообщение (канал)"); 
    
    Проверка_ТелеграмСообщение(Результат, Текст);
    
    IDСообщения = OPI_Инструменты.ЧислоВСтроку(Результат["result"]["message_id"]);
    OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("Telegram_ChannelMessageID", IDСообщения);
    
    OPI_Инструменты.Пауза(5);
    
КонецПроцедуры

Процедура Telegram_ОтправитьКартинку(ПараметрыФункции)

    Токен    = ПараметрыФункции["Telegram_Token"];
    IDЧата   = ПараметрыФункции["Telegram_ChatID"];
    IDКанала = ПараметрыФункции["Telegram_ChannelID"];
    Текст    = ПараметрыФункции["String"];
    Картинка = ПараметрыФункции["Picture"]; 
    
    КартинкаПуть = ПолучитьИмяВременногоФайла("png");
    КопироватьФайл(Картинка, КартинкаПуть);
    
    КартинкаДД   = Новый ДвоичныеДанные(КартинкаПуть);
    
    Результат = OPI_Telegram.ОтправитьКартинку(Токен, IDЧата, Текст, Картинка);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьКартинку", "Telegram");
    
    Проверка_ТелеграмКартинка(Результат, Текст); // SKIP
  
    Результат = OPI_Telegram.ОтправитьКартинку(Токен, IDКанала, Текст, КартинкаПуть);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьКартинку (Путь)");
    
    Проверка_ТелеграмКартинка(Результат, Текст); // SKIP
      
    Результат = OPI_Telegram.ОтправитьКартинку(Токен, IDКанала, Текст, КартинкаДД);
    
    // END 
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьКартинку (ДД)");
    
    Проверка_ТелеграмКартинка(Результат, Текст);
    
    УдалитьФайлы(КартинкаПуть);
    
    IDФайла = Результат["result"]["photo"][0]["file_id"];
    OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("Telegram_FileID", IDФайла);
    
    ПараметрыФункции.Вставить("Telegram_FileID", IDФайла);
    
    OPI_Инструменты.Пауза(5);
    	
КонецПроцедуры

Процедура Telegram_ОтправитьВидео(ПараметрыФункции)

    Токен    = ПараметрыФункции["Telegram_Token"];
    IDЧата   = ПараметрыФункции["Telegram_ChatID"];
    IDКанала = ПараметрыФункции["Telegram_ChannelID"];
    Текст    = ПараметрыФункции["String"];
    Видео    = ПараметрыФункции["Video"];
    
    ВидеоПуть = ПолучитьИмяВременногоФайла("mp4");
    КопироватьФайл(Видео, ВидеоПуть);
    
    ВидеоДД   = Новый ДвоичныеДанные(ВидеоПуть);
    
    Результат = OPI_Telegram.ОтправитьВидео(Токен, IDЧата, Текст, Видео);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьВидео", "Telegram");
    
    Проверка_ТелеграмВидео(Результат, Текст); // SKIP
  
    Результат = OPI_Telegram.ОтправитьВидео(Токен, IDКанала, Текст, ВидеоПуть);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьВидео (Путь)");
    
    Проверка_ТелеграмВидео(Результат, Текст); // SKIP
      
    Результат = OPI_Telegram.ОтправитьВидео(Токен, IDКанала, Текст, ВидеоДД);
    
    // END 
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьВидео (ДД)");
    
    Проверка_ТелеграмВидео(Результат, Текст);
    
    УдалитьФайлы(ВидеоПуть);
    
    IDФайла = Результат["result"]["video"]["file_id"];
    OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("Telegram_FileID", IDФайла);
    
    ПараметрыФункции.Вставить("Telegram_FileID", IDФайла);
    
    OPI_Инструменты.Пауза(5);
    	
КонецПроцедуры

Процедура Telegram_ОтправитьАудио(ПараметрыФункции)

    Токен    = ПараметрыФункции["Telegram_Token"];
    IDЧата   = ПараметрыФункции["Telegram_ChatID"];
    IDКанала = ПараметрыФункции["Telegram_ChannelID"];
    Текст    = ПараметрыФункции["String"];
    Аудио    = ПараметрыФункции["Audio"];
    
    АудиоПуть = ПолучитьИмяВременногоФайла("mp3");
    КопироватьФайл(Аудио, АудиоПуть);
    
    АудиоДД   = Новый ДвоичныеДанные(АудиоПуть);
    
    Результат = OPI_Telegram.ОтправитьАудио(Токен, IDЧата, Текст, Аудио);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьАудио", "Telegram");
    
    Проверка_ТелеграмАудио(Результат, Текст); // SKIP
  
    Результат = OPI_Telegram.ОтправитьАудио(Токен, IDКанала, Текст, АудиоПуть);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьАудио (Путь)");
    
    Проверка_ТелеграмАудио(Результат, Текст); // SKIP
      
    Результат = OPI_Telegram.ОтправитьАудио(Токен, IDКанала, Текст, АудиоДД);
    
    // END 
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьАудио (ДД)");
    
    Проверка_ТелеграмАудио(Результат, Текст);
    
    УдалитьФайлы(АудиоПуть);
    
    IDФайла = Результат["result"]["audio"]["file_id"];
    OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("Telegram_FileID", IDФайла);
    
    ПараметрыФункции.Вставить("Telegram_FileID", IDФайла);
    
    OPI_Инструменты.Пауза(5);
        
КонецПроцедуры

Процедура Telegram_ОтправитьДокумент(ПараметрыФункции)

    Токен    = ПараметрыФункции["Telegram_Token"];
    IDЧата   = ПараметрыФункции["Telegram_ChatID"];
    IDКанала = ПараметрыФункции["Telegram_ChannelID"];
    Текст    = ПараметрыФункции["String"];
    Документ = ПараметрыФункции["Document"];
    
    ДокументПуть = ПолучитьИмяВременногоФайла("docx");
    КопироватьФайл(Документ, ДокументПуть);
    
    ДокументДД   = Новый ДвоичныеДанные(ДокументПуть);
    
    Результат = OPI_Telegram.ОтправитьДокумент(Токен, IDЧата, Текст, Документ);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьДокумент", "Telegram");
    
    Проверка_ТелеграмДокумент(Результат, Текст); // SKIP
  
    Результат = OPI_Telegram.ОтправитьДокумент(Токен, IDКанала, Текст, ДокументПуть);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьДокумент (Путь)");
    
    Проверка_ТелеграмДокумент(Результат, Текст); // SKIP
      
    Результат = OPI_Telegram.ОтправитьДокумент(Токен, IDКанала, Текст, ДокументДД);
    
    // END 
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьДокумент (ДД)");
    
    Проверка_ТелеграмДокумент(Результат, Текст);
    
    УдалитьФайлы(ДокументПуть);
    
    OPI_Инструменты.Пауза(5);
        
КонецПроцедуры

Процедура Telegram_ОтправитьГифку(ПараметрыФункции)

    Токен    = ПараметрыФункции["Telegram_Token"];
    IDЧата   = ПараметрыФункции["Telegram_ChatID"];
    IDКанала = ПараметрыФункции["Telegram_ChannelID"];
    Текст    = ПараметрыФункции["String"];
    Гифка    = ПараметрыФункции["GIF"];
    
    ГифкаПуть = ПолучитьИмяВременногоФайла("gif");
    КопироватьФайл(Гифка, ГифкаПуть);
    
    ГифкаДД   = Новый ДвоичныеДанные(ГифкаПуть);
    
    Результат = OPI_Telegram.ОтправитьГифку(Токен, IDЧата, Текст, Гифка);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьГифку", "Telegram");
    
    Проверка_ТелеграмГифка(Результат, Текст); // SKIP
  
    Результат = OPI_Telegram.ОтправитьГифку(Токен, IDКанала, Текст, ГифкаПуть);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьГифку (Путь)");
    
    Проверка_ТелеграмГифка(Результат, Текст); // SKIP
      
    Результат = OPI_Telegram.ОтправитьГифку(Токен, IDКанала, Текст, ГифкаДД);
    
    // END 
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьГифку (ДД)");
    
    Проверка_ТелеграмГифка(Результат, Текст);
    
    УдалитьФайлы(ГифкаПуть);
    
    OPI_Инструменты.Пауза(5);
        
КонецПроцедуры

Процедура Telegram_ОтправитьМеидагруппу(ПараметрыФункции)

    Токен    = ПараметрыФункции["Telegram_Token"];
    IDЧата   = ПараметрыФункции["Telegram_ChatID"];
    Текст    = ПараметрыФункции["String"];
    Картинка = ПараметрыФункции["Picture"];
    Видео    = ПараметрыФункции["Video"];
 
    КартинкаПуть = ПолучитьИмяВременногоФайла("png");
    КопироватьФайл(Картинка, КартинкаПуть);
           
    ВидеоПуть = ПолучитьИмяВременногоФайла("mp4");
    КопироватьФайл(Видео, ВидеоПуть);
    
    ВидеоДД   = Новый ДвоичныеДанные(ВидеоПуть);
    
    Медиагруппа    = Новый Соответствие;
    Медиагруппа.Вставить(КартинкаПуть, "photo");
    Медиагруппа.Вставить(ВидеоДД     , "video");
    
    Результат = OPI_Telegram.ОтправитьМедиагруппу(Токен, IDЧата, Текст, Медиагруппа);
    
    // END
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьМедиагруппу", "Telegram");
    
    Проверка_ТелеграмМедиагруппа(Результат); 
   
    УдалитьФайлы(ВидеоПуть);
    УдалитьФайлы(КартинкаПуть);
    
    OPI_Инструменты.Пауза(5);
        
КонецПроцедуры

Процедура Telegram_ОтправитьМестоположение(ПараметрыФункции)
    
    Токен    = ПараметрыФункции["Telegram_Token"];
    IDЧата   = ПараметрыФункции["Telegram_ChatID"];
    IDКанала = ПараметрыФункции["Telegram_ChannelID"];    
    Ширина   = ПараметрыФункции["Lat"];
    Долгота  = ПараметрыФункции["Long"];
    
    Результат = OPI_Telegram.ОтправитьМестоположение(Токен, IDЧата, Ширина, Долгота);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьМестоположение", "Telegram"); 
    
    Проверка_ТелеграмМестоположение(Результат); // SKIP
    
    Результат = OPI_Telegram.ОтправитьМестоположение(Токен, IDКанала, Ширина, Долгота);
    
    // END
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьМестоположение (канал)"); 
    
    Проверка_ТелеграмМестоположение(Результат);

    OPI_Инструменты.Пауза(5);
    
КонецПроцедуры

Процедура Telegram_ОтправитьКонтакт(ПараметрыФункции)

    Токен    = ПараметрыФункции["Telegram_Token"];
    IDЧата   = ПараметрыФункции["Telegram_ChatID"];
    IDКанала = ПараметрыФункции["Telegram_ChannelID"];    
    Имя      = ПараметрыФункции["Name"];
    Фамилия  = ПараметрыФункции["Surname"];
    Телефон  = ПараметрыФункции["Phone"];
    
    Результат = OPI_Telegram.ОтправитьКонтакт(Токен, IDЧата  , Имя, Фамилия, Телефон);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьКонтакт", "Telegram"); 
    
    Проверка_ТелеграмКонтакт(Результат, Имя); // SKIP
    OPI_Инструменты.Пауза(20);                // SKIP
    
    Результат = OPI_Telegram.ОтправитьКонтакт(Токен, IDКанала, Имя, Фамилия, Телефон);
    
    // END
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьКонтакт (канал)"); 
    
    Проверка_ТелеграмКонтакт(Результат, Имя);

    OPI_Инструменты.Пауза(5);
        
КонецПроцедуры

Процедура Telegram_ОтправитьОпрос(ПараметрыФункции)

    Токен    = ПараметрыФункции["Telegram_Token"];
    IDЧата   = ПараметрыФункции["Telegram_ChatID"];
    IDКанала = ПараметрыФункции["Telegram_ChannelID"]; 
    Вопрос   = "Какой ваш любимый цвет?";
    
    МассивОтветов     = Новый Массив;
    МассивОтветов.Добавить("Красный");
    МассивОтветов.Добавить("Желтый");
    МассивОтветов.Добавить("Зеленый");
    МассивОтветов.Добавить("Синий");
    
    Результат = OPI_Telegram.ОтправитьОпрос(Токен, IDЧата  , Вопрос, МассивОтветов, Ложь);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьОпрос", "Telegram");
                
    Проверка_ТелеграмОпрос(Результат, Вопрос); // SKIP
    
    Результат = OPI_Telegram.ОтправитьОпрос(Токен, IDКанала, Вопрос, МассивОтветов, Истина);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьОпрос (канал)");
                
    Проверка_ТелеграмОпрос(Результат, Вопрос); // SKIP
    
    // END
    
    СтрочныйМассив    = "['Красный', 'Желтый','Зеленый' ,'Синий']";
    
    Результат = OPI_Telegram.ОтправитьОпрос(Токен, IDКанала, Вопрос, СтрочныйМассив, Истина);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьОпрос (строчный массив)");
                
    Проверка_ТелеграмОпрос(Результат, Вопрос);

    OPI_Инструменты.Пауза(5);
    	
КонецПроцедуры

Процедура Telegram_СкачатьФайл(ПараметрыФункции)
	
	IDФайла = ПараметрыФункции["Telegram_FileID"];
	Токен   = ПараметрыФункции["Telegram_Token"];

    Результат = OPI_Telegram.СкачатьФайл(Токен, IDФайла);
    
    // END
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СкачатьФайл", "Telegram");
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("ДвоичныеДанные");
    	
КонецПроцедуры

Процедура Telegram_ПереслатьСообщение(ПараметрыФункции)

    Токен       = ПараметрыФункции["Telegram_Token"];
    IDЧата      = ПараметрыФункции["Telegram_ChatID"];
    IDКанала    = ПараметрыФункции["Telegram_ChannelID"];
    IDСообщения = ПараметрыФункции["Telegram_ChannelMessageID"];
    
    Результат = OPI_Telegram.ПереслатьСообщение(Токен, IDСообщения, IDКанала, IDЧата);
    
    // END

    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПереслатьСообщение", "Telegram");
        
	Проверка_ТелеграмПереслать(Результат, IDСообщения);
    
    OPI_Инструменты.Пауза(5);
    	
КонецПроцедуры

Процедура Telegram_Бан(ПараметрыФункции)
	
	Токен          = ПараметрыФункции["Telegram_Token"];
    IDПользователя = ПараметрыФункции["Telegram_ChatID"];
    IDКанала       = ПараметрыФункции["Telegram_ChannelID"];
    
	Результат = OPI_Telegram.Бан(Токен, IDКанала, IDПользователя);

	// END
	
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "Бан", "Telegram");
    
	Проверка_ТелеграмБан(Результат);
	OPI_Инструменты.Пауза(5);
    
КонецПроцедуры

Процедура Telegram_Разбан(ПараметрыФункции)
	
    Токен          = ПараметрыФункции["Telegram_Token"];
    IDПользователя = ПараметрыФункции["Telegram_ChatID"];
    IDКанала       = ПараметрыФункции["Telegram_ChannelID"];
    
	Результат = OPI_Telegram.Разбан(Токен, IDКанала, IDПользователя);

	// END
	
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "Разбан", "Telegram");
    
	Проверка_ТелеграмБан(Результат);
	OPI_Инструменты.Пауза(5);
	
КонецПроцедуры

Процедура Telegram_СоздатьСсылкуПриглашение(ПараметрыФункции)

    Токен         = ПараметрыФункции["Telegram_Token"];
    IDКанала      = ПараметрыФункции["Telegram_ChannelID"];    
    Сутки         = 86400;   
    ТекущаяДата   = OPI_Инструменты.ПолучитьТекущуюДату();

    Заголовок     = "Ссылка " + Строка(ТекущаяДата); 
    Истечение     = ТекущаяДата + Сутки;
    UnixИстечение = OPI_Инструменты.UNIXTime(Истечение);
    
    Результат = OPI_Telegram.СоздатьСсылкуПриглашение(Токен, IDКанала, Заголовок, Истечение, 200);
    
    // END
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СоздатьСсылкуПриглашение", "Telegram");

	Проверка_ТелеграмПриглашение(Результат, Заголовок, UnixИстечение);
    
    OPI_Инструменты.Пауза(5);
    	
КонецПроцедуры

Процедура Telegram_ЗакрепитьСообщение(ПараметрыФункции)

    Токен       = ПараметрыФункции["Telegram_Token"];
    IDКанала    = ПараметрыФункции["Telegram_ChannelID"];
    IDСообщения = ПараметрыФункции["Telegram_ChannelMessageID"];
    
    Результат = OPI_Telegram.ЗакрепитьСообщение(Токен, IDКанала, IDСообщения);

	// END
	
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ЗакрепитьСообщение", "Telegram");
	
	Проверка_ТелеграмИстина(Результат);
        
    OPI_Инструменты.Пауза(5);
    	
КонецПроцедуры

Процедура Telegram_ОткрепитьСообщение(ПараметрыФункции)

    Токен       = ПараметрыФункции["Telegram_Token"];
    IDКанала    = ПараметрыФункции["Telegram_ChannelID"];
    IDСообщения = ПараметрыФункции["Telegram_ChannelMessageID"];
    
    Результат = OPI_Telegram.ОткрепитьСообщение(Токен, IDКанала, IDСообщения);

	// END
	
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОткрепитьСообщение", "Telegram");
	
	Проверка_ТелеграмИстина(Результат);
        
    OPI_Инструменты.Пауза(5);
    	
КонецПроцедуры

Процедура Telegram_ПолучитьЧислоУчастников(ПараметрыФункции)
	
    Токен       = ПараметрыФункции["Telegram_Token"];
    IDКанала    = ПараметрыФункции["Telegram_ChannelID"];
    
    Результат  = OPI_Telegram.ПолучитьЧислоУчастников(Токен, IDКанала);
    
    // END
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьЧислоУчастников", "Telegram");
    
    Проверка_ТелеграмЧисло(Результат);
        
    OPI_Инструменты.Пауза(5);
    	
КонецПроцедуры

Процедура Telegram_ПолучитьСписокАватаровФорума(ПараметрыФункции)
	
	Токен       = ПараметрыФункции["Telegram_Token"];
	Результат   = OPI_Telegram.ПолучитьСписокИконокАватаров(Токен);
	
	// END
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокИконокАватаров", "Telegram");
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
    
    OPI_Инструменты.Пауза(5);
    
КонецПроцедуры

Процедура Telegram_СоздатьТемуФорума(ПараметрыФункции)
	
	Токен  = ПараметрыФункции["Telegram_Token"];
    Чат    = ПараметрыФункции["Telegram_ForumID"];
    Иконка = "5357419403325481346";
    Имя    = "Тестовая тема " + Строка(Новый УникальныйИдентификатор);
    
	Результат = OPI_Telegram.СоздатьТемуФорума(Токен, Чат, Имя, Иконка);
	
	// END
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СоздатьТемуФорума", "Telegram");
    
    Тема = Результат["result"]["message_thread_id"];
    
    ПараметрыФункции.Вставить("Telegram_TopicID", Тема);
    OPI_Инструменты.ДобавитьПоле("Telegram_TopicID", Тема, "Строка", ПараметрыФункции);
    OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("Telegram_TopicID", ПараметрыФункции["Telegram_TopicID"]);
   
	Проверка_ТелеграмСозданиеТемы(Результат, Имя, Иконка);
	
	ЧатТема   = Чат + "*" + Тема;
	Текст     = ПараметрыФункции["String"];
    Результат = OPI_Telegram.ОтправитьТекстовоеСообщение(Токен, ЧатТема, Текст);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьТекстовоеСообщение (форум)");
    
    Проверка_ТелеграмСообщение(Результат, Текст);
	
КонецПроцедуры

Процедура Telegram_ИзменитьТемуФорума(ПараметрыФункции)

	Токен       = ПараметрыФункции["Telegram_Token"];
    Чат         = ПараметрыФункции["Telegram_ForumID"];
    Тема        = ПараметрыФункции["Telegram_TopicID"];
    НовоеИмя    = "Новый тестовый заголовок";
    НовяИконка  = "5310132165583840589";

    Результат = OPI_Telegram.ИзменитьТемуФорума(Токен, Чат, Тема, НовоеИмя, НовяИконка);
    
    // END
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ИзменитьТемуФорума", "Telegram");
        
    Проверка_ТелеграмИстина(Результат);
    
    OPI_Инструменты.Пауза(5);
    	
КонецПроцедуры

Процедура Telegram_ЗакрытьТемуФорума(ПараметрыФункции)

	Токен       = ПараметрыФункции["Telegram_Token"];
    Чат         = ПараметрыФункции["Telegram_ForumID"];
    Тема        = ПараметрыФункции["Telegram_TopicID"];

    OPI_Telegram.ОткрытьТемуФорума(Токен, Чат); // SKIP
    
	Результат = OPI_Telegram.ЗакрытьТемуФорума(Токен, Чат);       // Закрывает главную тему
	
	OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ЗакрытьТемуФорума (главная)");
    
    Проверка_ТелеграмИстина(Результат); // SKIP
    
    Результат = OPI_Telegram.ЗакрытьТемуФорума(Токен, Чат, Тема);
    
    // END
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ЗакрытьТемуФорума", "Telegram");
    
    Проверка_ТелеграмИстина(Результат);
    
    OPI_Инструменты.Пауза(25);
    	
КонецПроцедуры

Процедура Telegram_ОткрытьТемуФорума(ПараметрыФункции)

	Токен       = ПараметрыФункции["Telegram_Token"];
    Чат         = ПараметрыФункции["Telegram_ForumID"];
    Тема        = ПараметрыФункции["Telegram_TopicID"];

	Результат = OPI_Telegram.ОткрытьТемуФорума(Токен, Чат);       // Открывает главную тему
	
	OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОткрытьТемуФорума (главная)");
    
    Проверка_ТелеграмИстина(Результат); // SKIP
    
    Результат = OPI_Telegram.ОткрытьТемуФорума(Токен, Чат, Тема);
    
    // END
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОткрытьТемуФорума", "Telegram");
    
    Проверка_ТелеграмИстина(Результат);
    
    OPI_Инструменты.Пауза(25);
    	
КонецПроцедуры

Процедура Telegram_УдалитьТемуФорума(ПараметрыФункции)

	Токен       = ПараметрыФункции["Telegram_Token"];
    Чат         = ПараметрыФункции["Telegram_ForumID"];
    Тема        = ПараметрыФункции["Telegram_TopicID"];
    
    Результат = OPI_Telegram.УдалитьТемуФорума(Токен, Чат, Тема); 
    
    // END
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьТемуФорума", "Telegram");
    
    Проверка_ТелеграмИстина(Результат);
    
    OPI_Инструменты.Пауза(25);
    	
КонецПроцедуры

Процедура Telegram_ОчиститьСписокЗакрепленныхСообщенийТемы(ПараметрыФункции)

	Токен       = ПараметрыФункции["Telegram_Token"];
    Чат         = ПараметрыФункции["Telegram_ForumID"];
    Тема        = ПараметрыФункции["Telegram_TopicID"];
    
    Результат = OPI_Telegram.ОчиститьСписокЗакрепленныхСообщенийТемы(Токен, Чат);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОчиститьСписокЗакрепленныхСообщенийТемы (главная)");
    
    Проверка_ТелеграмИстина(Результат); // SKIP
    
    Результат = OPI_Telegram.ОчиститьСписокЗакрепленныхСообщенийТемы(Токен, Чат, Тема);
    
    // END
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОчиститьСписокЗакрепленныхСообщенийТемы", "Telegram");
    
    Проверка_ТелеграмИстина(Результат);
    
    OPI_Инструменты.Пауза(5);
    	
КонецПроцедуры

Процедура Telegram_СкрытьГлавнуюТемуФорума(ПараметрыФункции)

	Токен       = ПараметрыФункции["Telegram_Token"];
    Чат         = ПараметрыФункции["Telegram_ForumID"];
    
    Результат = OPI_Telegram.СкрытьГлавнуюТемуФорума(Токен, Чат);
    
    // END
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СкрытьГлавнуюТемуФорума", "Telegram");
    
    Проверка_ТелеграмИстина(Результат);
    
    OPI_Инструменты.Пауза(5);
    	
КонецПроцедуры

Процедура Telegram_ПоказатьГлавнуюТемуФорума(ПараметрыФункции)

	Токен       = ПараметрыФункции["Telegram_Token"];
    Чат         = ПараметрыФункции["Telegram_ForumID"];
    
    Результат = OPI_Telegram.ПоказатьГлавнуюТемуФорума(Токен, Чат);
    
    // END
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПоказатьГлавнуюТемуФорума", "Telegram");
    
    Проверка_ТелеграмИстина(Результат);
    
    OPI_Инструменты.Пауза(5);
    	
КонецПроцедуры

Процедура Telegram_ИзменитьИмяГлавнойТемыФорума(ПараметрыФункции)

	Заголовок   = "Новое имя главной темы " + Строка(Новый УникальныйИдентификатор);
	Токен       = ПараметрыФункции["Telegram_Token"];
    Чат         = ПараметрыФункции["Telegram_ForumID"];    
	
    Результат = OPI_Telegram.ИзменитьИмяГлавнойТемыФорума(Токен, Чат, Заголовок);
    
    // END
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ИзменитьИмяГлавнойТемыФорума", "Telegram");
    
    Проверка_ТелеграмИстина(Результат);
    
    OPI_Инструменты.Пауза(5);
    	
КонецПроцедуры

#КонецОбласти

#Область VK

Процедура VK_СоздатьСсылкуПолученияТокена(ПараметрыФункции)

    Приложение = ПараметрыФункции["VK_AppID"];
    Результат  = OPI_VK.СоздатьСсылкуПолученияТокена(Приложение);
    
    // END
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СоздатьСсылкуПолученияТокена", "VK");
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Строка").Заполнено();
    
    OPI_Инструменты.Пауза(5);
        
КонецПроцедуры

Процедура VK_СоздатьПост(ПараметрыФункции)
    
    Параметры = ПолучитьПараметрыВК();
    Текст     = "Пост из автотеста";
    URL       = "https://github.com/Bayselonarrend/OpenIntegrations";
    
    Картинка  = ПараметрыФункции["Picture"];  // URL, Путь или Двоичные данные
    Картинка2 = ПараметрыФункции["Picture2"]; // URL, Путь или Двоичные данные
    
    ИВФ = ПолучитьИмяВременногоФайла("png");   
    КопироватьФайл(Картинка2, ИВФ);
    
    МассивКартинок = Новый Массив;
    МассивКартинок.Добавить(Картинка);
    МассивКартинок.Добавить(ИВФ);
  
    Результат = OPI_VK.СоздатьПост(Текст, МассивКартинок, Истина, URL, Параметры);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СоздатьПост", "VK");

    Проверка_ВКПост(Результат);                         // SKIP
    ИДПоста   = Результат["response"]["post_id"];       // SKIP
    Результат = OPI_VK.УдалитьПост(ИДПоста, Параметры); // SKIP
    
    Результат = OPI_VK.СоздатьПост(Текст, Картинка, Ложь  ,    , Параметры);
    
    // END
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СоздатьПост (одна картинка)");

    Проверка_ВКПост(Результат); 
    
    ИДПоста   = Результат["response"]["post_id"];       
    Результат = OPI_VK.УдалитьПост(ИДПоста, Параметры); 
    
    OPI_Инструменты.Пауза(5);   
    
    Результат = OPI_VK.СоздатьПост(Текст, ИВФ     , Истина, URL, Параметры);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СоздатьПост (один путь)");

    Проверка_ВКПост(Результат);                   
    
    ИДПоста = Результат["response"]["post_id"];
    OPI_Инструменты.ДобавитьПоле("VK_PostID", ИДПоста, "Строка", ПараметрыФункции);
    OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("VK_PostID", ПараметрыФункции["VK_PostID"]);
    
    УдалитьФайлы(ИВФ);
    OPI_Инструменты.Пауза(5);
    
КонецПроцедуры

Процедура VK_УдалитьПост(ПараметрыФункции)
    
    Параметры = ПолучитьПараметрыВК();
    ИДПоста   = ПараметрыФункции["VK_PostID"];
    
    Результат = OPI_VK.УдалитьПост(ИДПоста, Параметры);

    // END

    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьПост", "VK");
            
    Проверка_ВКИстина(Результат);
    
КонецПроцедуры

Процедура VK_СоздатьСоставнойПост(ПараметрыФункции)

    Параметры = ПолучитьПараметрыВК();
    Текст     = "Пост из автотеста";
    URL       = "https://github.com/Bayselonarrend/OpenIntegrations";
    
    Картинка = ПараметрыФункции["Picture"]; // URL, Путь или Двоичные данные
    Видео    = ПараметрыФункции["Video"];   // URL, Путь или Двоичные данные
    
    ИВФ = ПолучитьИмяВременногоФайла("png");   
    КопироватьФайл(Картинка, ИВФ);
    
    ЗагрузкаКартинки = OPI_VK.ЗагрузитьФотоНаСервер(ИВФ, Параметры)["response"][0];
    ЗагрузкаВидео    = OPI_VK.ЗагрузитьВидеоНаСервер(Видео, "Новое видео", , , Параметры);
    
    ВладелецКартинки = OPI_Инструменты.ЧислоВСтроку(ЗагрузкаКартинки["owner_id"]);
    ВладелецВидео    = OPI_Инструменты.ЧислоВСтроку(ЗагрузкаВидео["owner_id"]);
    
    IDКартинки       = OPI_Инструменты.ЧислоВСтроку(ЗагрузкаКартинки["id"]);
    IDВидео          = OPI_Инструменты.ЧислоВСтроку(ЗагрузкаВидео["video_id"]);
    
    МассивВложений = Новый Массив;
    МассивВложений.Добавить("photo" + ВладелецКартинки + "_" + IDКартинки);
    МассивВложений.Добавить("video" + ВладелецВидео + "_" + IDВидео);
    
    Результат = OPI_VK.СоздатьСоставнойПост(Текст, МассивВложений, Ложь, URL, Параметры);
    
    // END
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СоздатьСоставнойПост", "VK");
    
    Проверка_ВКПост(Результат);
    УдалитьФайлы(ИВФ);    
        
    OPI_Инструменты.Пауза(5);
     
КонецПроцедуры

Процедура VK_СоздатьОпрос()

    Параметры = ПолучитьПараметрыВК();
    Вопрос    = "Какой ваш любимый цвет?";
    
    МассивВариантов = Новый Массив;
    МассивВариантов.Добавить("Красный");
    МассивВариантов.Добавить("Желтый");
    МассивВариантов.Добавить("Зеленый");
    
    Результат = OPI_VK.СоздатьОпрос(Вопрос, МассивВариантов, , Параметры);
    
    // END
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СоздатьОпрос", "VK");
    
    Проверка_ВКПост(Результат);
        
    ИДПоста  = Результат["response"]["post_id"];
    OPI_VK.УдалитьПост(ИДПоста, Параметры);
    
    OPI_Инструменты.Пауза(10);
        
КонецПроцедуры

Процедура VK_СоздатьАльбом(ПараметрыФункции)
    
    Параметры        = ПолучитьПараметрыВК();
    Имя              = "Альбом из автотеста";
    Описание         = "Новый альбом из автотеста";
      
    Результат = OPI_VK.СоздатьАльбом(Имя, Описание, Параметры);
    
    // END
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СоздатьАльбом", "VK");
    
    Проверка_ВКАльбом(Результат, Описание);
        
    ИДАльбома  = Результат["response"]["id"];
    ПараметрыФункции.Вставить("VK_AlbumID", ИДАльбома);
    OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("VK_AlbumID", ИДАльбома);
    
КонецПроцедуры

Процедура VK_СохранитьКартинкуВАльбом(ПараметрыФункции)
    
    Параметры        = ПолучитьПараметрыВК();
    ОписаниеКартинки = "Картинка автотест";
    ИДАльбома        = ПараметрыФункции["VK_AlbumID"];
    
    Картинка  = ПараметрыФункции["Picture"];       // URL, Путь к файлу или Двоичные данные
    ИВФ       = ПолучитьИмяВременногоФайла("png");
    КопироватьФайл(Картинка, ИВФ);
    
    Картинка  = Новый ДвоичныеДанные(ИВФ);
    
    Результат = OPI_VK.СохранитьКартинкуВАльбом(ИДАльбома, Картинка, ОписаниеКартинки, Параметры);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СохранитьКартинкуВАльбом", "VK");
    
    Проверка_ВККартинкаАльбома(Результат, ОписаниеКартинки, ИДАльбома); // SKIP
    
    ИДКартинки  = Результат["response"][0]["id"];                       // SKIP
    Результат    = OPI_VK.УдалитьКартинку(ИДКартинки, Параметры);       // SKIP
            
    Результат = OPI_VK.СохранитьКартинкуВАльбом(ИДАльбома, ИВФ, ОписаниеКартинки, Параметры);
    
    // END
   
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СохранитьКартинкуВАльбом (путь)");
    
    Проверка_ВККартинкаАльбома(Результат, ОписаниеКартинки, ИДАльбома); // SKIP
    
    ИДКартинки  = Результат["response"][0]["id"];
    ПараметрыФункции.Вставить("VK_PictureID", ИДКартинки);
    OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("VK_PictureID", ИДКартинки);
    
    УдалитьФайлы(ИВФ);
    OPI_Инструменты.Пауза(5);
    
КонецПроцедуры

Процедура VK_УдалитьКартинку(ПараметрыФункции)
    
    Параметры  = ПолучитьПараметрыВК();
    ИДКартинки = ПараметрыФункции["VK_PictureID"];
    
    Результат  = OPI_VK.УдалитьКартинку(ИДКартинки, Параметры);
    
    // END
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьКартинку", "VK");
    
    Проверка_ВКИстина(Результат);
    
    OPI_Инструменты.Пауза(5);
    
КонецПроцедуры

Процедура VK_УдалитьАльбом(ПараметрыФункции)
    
    Параметры = ПолучитьПараметрыВК();
    ИДАльбома = ПараметрыФункции["VK_AlbumID"];
    
    Результат = OPI_VK.УдалитьАльбом(ИДАльбома, Параметры);
    
    // END
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьАльбом", "VK");
        
    Проверка_ВКИстина(Результат);
    
    OPI_Инструменты.Пауза(5);
    
КонецПроцедуры

Процедура VK_СоздатьИсторию(ПараметрыФункции)

    Параметры = ПолучитьПараметрыВК();
    URL       = "https://github.com/Bayselonarrend/OpenIntegrations";

    Картинка  = ПараметрыФункции["Picture"];       // URL, Путь к файлу или Двоичные данные
    ИВФ       = ПолучитьИмяВременногоФайла("png");
    КопироватьФайл(Картинка, ИВФ);
    Картинка  = Новый ДвоичныеДанные(ИВФ);
       
    Результат = OPI_VK.СоздатьИсторию(Картинка , URL, Параметры);

    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СоздатьИсторию", "VK");
    
    Проверка_ВКИстория(Результат); // SKIP
        
    Результат = OPI_VK.СоздатьИсторию(ИВФ, , Параметры);
    
    // END
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СоздатьИсторию (путь)");
    
    Проверка_ВКИстория(Результат);
    
    УдалитьФайлы(ИВФ);
    
    OPI_Инструменты.Пауза(5);
        
КонецПроцедуры

Процедура VK_СоздатьОбсуждение(ПараметрыФункции)

    Параметры       = ПолучитьПараметрыВК();
    Название        = "Обсуждаем: какой цвет лучше?";
    Сообщение       = "Красный, желтый, синий или какой-то другой?";
    
    Результат = OPI_VK.СоздатьОбсуждение(Название, Сообщение, Параметры);
    
    // END
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СоздатьОбсуждение", "VK");
    
    Проверка_ВКОбсуждение(Результат);
    
    ИДОбсуждения = Результат["response"];
    ПараметрыФункции.Вставить("VK_ConvID", ИДОбсуждения);
    OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("VK_ConvID", ИДОбсуждения);    
    
    OPI_Инструменты.Пауза(5);
        
КонецПроцедуры

Процедура VK_ЗакрытьОбсуждение(ПараметрыФункции)
    
    Параметры    = ПолучитьПараметрыВК();
    ИДОбсуждения = ПараметрыФункции["VK_ConvID"];
    Результат    = OPI_VK.ЗакрытьОбсуждение(ИДОбсуждения, Ложь, Параметры);
    
    // END
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ЗакрытьОбсуждение", "VK");
        
    Проверка_ВКИстина(Результат);
    
    OPI_Инструменты.Пауза(5);
    
КонецПроцедуры

Процедура VK_ОткрытьОбсуждение(ПараметрыФункции)
    
    Параметры    = ПолучитьПараметрыВК();
    ИДОбсуждения = ПараметрыФункции["VK_ConvID"];
    Результат    = OPI_VK.ОткрытьОбсуждение(ИДОбсуждения, Параметры);
    
    // END
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОткрытьОбсуждение", "VK");
        
    Проверка_ВКИстина(Результат);
    
    OPI_Инструменты.Пауза(5);
    
КонецПроцедуры

Процедура VK_НаписатьВОбсуждение(ПараметрыФункции)
    
    Параметры    = ПолучитьПараметрыВК();
    ИДОбсуждения = ПараметрыФункции["VK_ConvID"];
    Сообщение    = "Мне больше нравится желтый";
    
    Результат = OPI_VK.НаписатьВОбсуждение(ИДОбсуждения, Сообщение, Параметры);
    
    // END
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "НаписатьВОбсуждение", "VK");
    
    Проверка_ВКОбсуждение(Результат);
    
КонецПроцедуры

#КонецОбласти

#Область Dropbox

Процедура Dropbox_ПолучитьСсылкуАвторизации(ПараметрыФункции)

    КлючПриложения = ПараметрыФункции["Dropbox_Appkey"];
    Результат      = OPI_Dropbox.ПолучитьСсылкуАвторизации(КлючПриложения);
    
    // END
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСсылкуАвторизации", "Dropbox");
        
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Строка");
    
КонецПроцедуры

Процедура Dropbox_ПолучитьТокен(ПараметрыФункции)
    
    КлючПриложения   = ПараметрыФункции["Dropbox_Appkey"];
    СекретПриложения = ПараметрыФункции["Dropbox_Appsecret"];
    Код              = ПараметрыФункции["Dropbox_Code"];

    Результат = OPI_Dropbox.ПолучитьТокен(КлючПриложения, СекретПриложения, Код);
    
    // END
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьТокен");
    
    Токен  = Результат["access_token"];
    Рефреш = Результат["refresh_token"];
   
    Если ЗначениеЗаполнено(Токен) Тогда
        OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("Dropbox_Token", Токен);
    КонецЕсли;
   
    Если ЗначениеЗаполнено(Рефреш) Тогда
        OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("Dropbox_Refresh", Рефреш);
    КонецЕсли;
    
КонецПроцедуры

Процедура Dropbox_ОбновитьТокен(ПараметрыФункции)

    КлючПриложения   = ПараметрыФункции["Dropbox_Appkey"];
    СекретПриложения = ПараметрыФункции["Dropbox_Appsecret"];
    РефрешТокен      = ПараметрыФункции["Dropbox_Refresh"];
    
    Результат = OPI_Dropbox.ОбновитьТокен(КлючПриложения, СекретПриложения, РефрешТокен);
    
    // END
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОбновитьТокен");
    
    Токен = Результат["access_token"];
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Токен).Заполнено();

    OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("Dropbox_Token", Токен);
        
КонецПроцедуры

Процедура Dropbox_ПолучитьИнформациюОбОбъекте(ПараметрыФункции)
   
    Путь      = "/New/pic.png";  
    Токен     = ПараметрыФункции["Dropbox_Token"];
     
    Результат = OPI_Dropbox.ПолучитьИнформациюОбОбъекте(Токен, Путь, Истина);
    
    // END
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьИнформациюОбОбъекте", "Dropbox");

    Проверка_ДропБоксФайл(Результат, Путь);
    
    OPI_Инструменты.Пауза(5); 
    
КонецПроцедуры

Процедура Dropbox_ПолучитьПревью(ПараметрыФункции)
   
    Токен     = ПараметрыФункции["Dropbox_Token"];
    Путь      = "/New/mydoc.docx"; 
    
    Результат = OPI_Dropbox.ПолучитьПревью(Токен, Путь);
    
    // END
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьПревью", "Dropbox");
        
    Проверка_ДвоичныеДанные(Результат, 190834);
        
    OPI_Инструменты.Пауза(5); 
     
КонецПроцедуры

Процедура Dropbox_ЗагрузитьФайл(ПараметрыФункции)

    Путь      = "/New/pic.png";  
    Токен     = ПараметрыФункции["Dropbox_Token"];
    Картинка  = ПараметрыФункции["Picture"];
    
    КартинкаПуть = ПолучитьИмяВременногоФайла("png");
    КопироватьФайл(Картинка, КартинкаПуть);
    
    Результат = OPI_Dropbox.ЗагрузитьФайл(Токен, КартинкаПуть, Путь, Истина);
    
    // END
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ЗагрузитьФайл", "Dropbox");
        
    Проверка_ДропБоксФайл(Результат, Путь);
    УдалитьФайлы(КартинкаПуть);
    
    OPI_Инструменты.Пауза(5); 
     
КонецПроцедуры

Процедура Dropbox_ЗагрузитьФайлПоURL(ПараметрыФункции)
   
    Путь  = "/New/url_doc.docx";  
    Токен = ПараметрыФункции["Dropbox_Token"];
    URL   = ПараметрыФункции["Document"];
    
    Результат = OPI_Dropbox.ЗагрузитьФайлПоURL(Токен, URL, Путь);
    
    // END
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ЗагрузитьФайлПоURL", "Dropbox");
        
    Проверка_ДропБоксРабота(Результат);
   
    Работа = Результат["async_job_id"];
   
    ПараметрыФункции.Вставить("Dropbox_Job", Работа);
    OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("Dropbox_Job", Работа);
    
    OPI_Инструменты.Пауза(5); 
     
КонецПроцедуры

Процедура Dropbox_ПолучитьСтатусЗагрузкиПоURL(ПараметрыФункции)

    Токен    = ПараметрыФункции["Dropbox_Token"];
    ИДРаботы = ПараметрыФункции["Dropbox_Job"];
    Статус   = "in_progress";    
    
    Пока Статус = "in_progress" Цикл 
        
        Результат = OPI_Dropbox.ПолучитьСтатусЗагрузкиПоURL(Токен, ИДРаботы);
        Статус    = Результат[".tag"];
        
        OPI_Инструменты.Пауза(5);
        
        OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСтатусЗагрузкиПоURL", "Dropbox");
        
    КонецЦикла;
    
    // END
    
    Проверка_ДропБоксСтатус(Результат);
    
    Путь      = "/New/url_doc.docx";
    Результат = OPI_Dropbox.УдалитьОбъект(Токен, Путь);
    
    Проверка_ДропБоксМетаданные(Результат, Путь);
    OPI_Инструменты.Пауза(5); 
        
КонецПроцедуры

Процедура Dropbox_УдалитьОбъект(ПараметрыФункции)
 
    Путь      = "/New/pic.png";  
    Токен     = ПараметрыФункции["Dropbox_Token"];  
    
    Результат = OPI_Dropbox.УдалитьОбъект(Токен, Путь);
    
    // END
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьОбъект", "Dropbox");

    Проверка_ДропБоксМетаданные(Результат, Путь);
    
    OPI_Инструменты.Пауза(5); 
     
КонецПроцедуры

Процедура Dropbox_КопироватьОбъект(ПараметрыФункции)
    
    Оригинал  = "/New/pic.png";
    Копия     = "/New/pic_copy.png";  
    Токен     = ПараметрыФункции["Dropbox_Token"];
    
    Результат = OPI_Dropbox.КопироватьОбъект(Токен, Оригинал, Копия);
    
    // END
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "КопироватьОбъект", "Dropbox");
        
    Проверка_ДропБоксМетаданные(Результат, Копия);
    
    Результат = OPI_Dropbox.УдалитьОбъект(Токен, Копия);
    Проверка_ДропБоксМетаданные(Результат, Копия);
        
    OPI_Инструменты.Пауза(5); 
    
КонецПроцедуры

Процедура Dropbox_ПереместитьОбъект(ПараметрыФункции)
    
    ОригиналныйПуть  = "/New/pic.png";
    ЦелевойПуть      = "/pic.png";  
    Токен            = ПараметрыФункции["Dropbox_Token"];
    
    Результат = OPI_Dropbox.ПереместитьОбъект(Токен, ОригиналныйПуть, ЦелевойПуть);
    
    // END
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПереместитьОбъект", "Dropbox");
        
    Проверка_ДропБоксМетаданные(Результат, ЦелевойПуть);
    
    Результат = OPI_Dropbox.ПереместитьОбъект(Токен, ЦелевойПуть, ОригиналныйПуть);
    Проверка_ДропБоксМетаданные(Результат, ОригиналныйПуть);
        
    OPI_Инструменты.Пауза(5); 
    
КонецПроцедуры

Процедура Dropbox_СоздатьПапку(ПараметрыФункции)
    
    Токен     = ПараметрыФункции["Dropbox_Token"];
    Путь      = "/Новый каталог";
    
    Результат = OPI_Dropbox.СоздатьПапку(Токен, Путь);
    
    // END
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СоздатьПапку", "Dropbox");
        
    Проверка_ДропБоксМетаданные(Результат, Путь);
    
    Результат = OPI_Dropbox.УдалитьОбъект(Токен, Путь);
    Проверка_ДропБоксМетаданные(Результат, Путь);
        
    OPI_Инструменты.Пауза(5); 
    
КонецПроцедуры

Процедура Dropbox_СкачатьФайл(ПараметрыФункции)

    Токен     = ПараметрыФункции["Dropbox_Token"];
    Путь      = "/New/pic.png"; 
    
    Результат = OPI_Dropbox.СкачатьФайл(Токен, Путь);
    
    // END
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СкачатьФайл", "Dropbox");
        
    Проверка_ДвоичныеДанные(Результат, 2114023);
        
    OPI_Инструменты.Пауза(5); 
        
КонецПроцедуры

Процедура Dropbox_СкачатьПапку(ПараметрыФункции)
    
    Токен     = ПараметрыФункции["Dropbox_Token"];
    Путь      = "/New";
    
    Результат = OPI_Dropbox.СкачатьПапку(Токен, Путь);
    
    // END
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СкачатьПапку", "Dropbox");
        
    Проверка_ДвоичныеДанные(Результат);
        
    OPI_Инструменты.Пауза(5); 
    
КонецПроцедуры

Процедура Dropbox_ПолучитьСписокФайловПапки(ПараметрыФункции)
 
    Путь      = "/New";  
    Токен     = ПараметрыФункции["Dropbox_Token"];
     
    Результат = OPI_Dropbox.ПолучитьСписокФайловПапки(Токен, Путь, Истина);
    
    // END
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокФайловПапки", "Dropbox");

    Проверка_ДропБоксМассив(Результат);
    
    OPI_Инструменты.Пауза(5);
    
КонецПроцедуры 

Процедура Dropbox_ПолучитьСписокВерсийОбъекта(ПараметрыФункции)

    Токен     = ПараметрыФункции["Dropbox_Token"];
    Путь      = "/New/pic.png"; 
    
    Результат = OPI_Dropbox.ПолучитьСписокВерсийОбъекта(Токен, Путь, 1);
    
    // END
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокВерсийОбъекта", "Dropbox");
        
   Проверка_ДропБоксМассив(Результат, 1);
   
   Ревизия = Результат["entries"][0]["rev"];
   
   ПараметрыФункции.Вставить("Dropbox_FileRevision", Ревизия);
   OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("Dropbox_FileRevision", Ревизия);
        
   OPI_Инструменты.Пауза(5); 
        
КонецПроцедуры

Процедура Dropbox_ВосстановитьОбъектКВерсии(ПараметрыФункции)
   
    Версия    = ПараметрыФункции["Dropbox_FileRevision"];
    Токен     = ПараметрыФункции["Dropbox_Token"];
    Путь      = "/New/pic.png";  
    
    Результат = OPI_Dropbox.ВосстановитьОбъектКВерсии(Токен, Путь, Версия);
    
    // END
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ВосстановитьОбъектКВерсии", "Dropbox");
    
    Проверка_ДропБоксФайл(Результат, Путь);
    
    OPI_Инструменты.Пауза(5);  
    
КонецПроцедуры

Процедура Dropbox_ПолучитьСписокТегов(ПараметрыФункции)

    Токен = ПараметрыФункции["Dropbox_Token"];
    
    МассивПутей = Новый Массив;
    МассивПутей.Добавить("/New/Dogs.mp3");
    МассивПутей.Добавить("/New/mydoc.docx");  
    
    Результат = OPI_Dropbox.ПолучитьСписокТегов(Токен, МассивПутей);
    
    // END
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокТегов", "Dropbox");
    
    Проверка_ДропБоксТеги(Результат, МассивПутей.Количество());
    
    Результат = OPI_Dropbox.ПолучитьСписокТегов(Токен, "/New/mydoc.docx");
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокТегов (одиночный)");
    
    Проверка_ДропБоксТеги(Результат, 1);
    
    ЕстьТег = Ложь;
    
    Для Каждого Тег Из Результат["paths_to_tags"][0]["tags"] Цикл
        Если Тег["tag_text"] = "важное" Тогда
            ЕстьТег = Истина;    
        КонецЕсли;
    КонецЦикла;
    
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(ЕстьТег).Равно(Истина);
    
    OPI_Инструменты.Пауза(5);  
        
КонецПроцедуры

Процедура Dropbox_ДобавитьТег(ПараметрыФункции)
    
    Тег       = "Важное";
    Токен     = ПараметрыФункции["Dropbox_Token"];
    Путь      = "/New/mydoc.docx";  
    
    Результат = OPI_Dropbox.ДобавитьТег(Токен, Путь, Тег);
    
    // END
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ДобавитьТег", "Dropbox");
    
    Проверка_Пусто(Результат);
    
    OPI_Инструменты.Пауза(5);  
    
КонецПроцедуры

Процедура Dropbox_УдалитьТег(ПараметрыФункции)
    
    Тег       = "Важное";
    Токен     = ПараметрыФункции["Dropbox_Token"];
    Путь      = "/New/mydoc.docx";  
    
    Результат = OPI_Dropbox.УдалитьТег(Токен, Путь, Тег);
    
    // END
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьТег", "Dropbox");
    
    Проверка_Пусто(Результат);
    
    OPI_Инструменты.Пауза(5);  
    
КонецПроцедуры

Процедура Dropbox_ПолучитьИнформациюОбАккаунте(ПараметрыФункции)
    
    Токен = ПараметрыФункции["Dropbox_Token"];
    
    Результат = OPI_Dropbox.ПолучитьИнформациюОбАккаунте(Токен);
    
    // END
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьИнформациюОбАккаунте", "Dropbox");
    
    Проверка_ДропбоксАккаунт(Результат);
    
    Результат = OPI_Dropbox.ПолучитьИнформациюОбАккаунте(Токен, Результат["account_id"]);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьИнформациюОбАккаунте (сторонний)");
    
    Проверка_ДропбоксАккаунт(Результат);
    
    OPI_Инструменты.Пауза(5);
    
КонецПроцедуры

Процедура Dropbox_ПолучитьДанныеИспользованияПространства(ПараметрыФункции)
  
    Токен = ПараметрыФункции["Dropbox_Token"];
    
    Результат = OPI_Dropbox.ПолучитьДанныеИспользованияПространства(Токен);
    
    // END
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьДанныеИспользованияПространства", "Dropbox");
    
    Проверка_ДропбоксПространство(Результат);
      
КонецПроцедуры

Процедура Dropbox_ДобавитьПользователейКФайлу(ПараметрыФункции)
    
    Токен = ПараметрыФункции["Dropbox_Token"];
    Почта = ПараметрыФункции["Dropbox_OtherUser"];
    Файл  = ПараметрыФункции["Dropbox_FileID"];
    
    Результат = OPI_Dropbox.ДобавитьПользователейКФайлу(Токен, Файл, Почта, Ложь);
    
    // END
        
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ДобавитьПользователейКФайлу", "Dropbox");
    
    Проверка_ДропбоксУчастник(Результат, Почта, Ложь);
    
    Почты = Новый Массив;
    Почты.Добавить(Почта);
    
    Результат = OPI_Dropbox.ДобавитьПользователейКФайлу(Токен, Файл, Почты, Истина);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ДобавитьПользователейКФайлу (доп.) ");
    
    Проверка_ДропбоксУчастник(Результат, Почта, Истина);
    
КонецПроцедуры

Процедура Dropbox_ОпубликоватьПапку(ПараметрыФункции)
    
    Токен     = ПараметрыФункции["Dropbox_Token"];
    Путь      = "/New"; 
   
    Результат = OPI_Dropbox.ОпубликоватьПапку(Токен, Путь);
    
    // END
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОпубликоватьПапку", "Dropbox");
        
    Проверка_ДропБоксПубличнаяПапка(Результат);
   
    IDПапки = Результат["shared_folder_id"];
   
    ПараметрыФункции.Вставить("Dropbox_SharedFolder", IDПапки);
    OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("Dropbox_SharedFolder", IDПапки);
        
    OPI_Инструменты.Пауза(5); 

КонецПроцедуры

Процедура Dropbox_ОтменитьПубликациюПапки(ПараметрыФункции)
    
    Токен  = ПараметрыФункции["Dropbox_Token"];
    Папка  = ПараметрыФункции["Dropbox_SharedFolder"];
 
    Результат     = OPI_Dropbox.ОтменитьПубликациюПапки(Токен, Папка);
    ТекущийСтатус = "in_progress";
    IDРаботы      = Результат["async_job_id"];
    
    Пока ТекущийСтатус = "in_progress" Цикл
        Результат     = OPI_Dropbox.ПолучитьСтатусАсинхронногоИзменения(Токен, IDРаботы);
        ТекущийСтатус = Результат[".tag"];
        OPI_Инструменты.Пауза(3);
    КонецЦикла;
    
    // END
    
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтменитьПубликациюПапки", "Dropbox");
    
   Проверка_ДропБоксСтатус(Результат);
   
   OPI_Инструменты.Пауза(5); 
   
КонецПроцедуры

Процедура Dropbox_ДобавитьПользователейКПапке(ПараметрыФункции)
    
    Токен  = ПараметрыФункции["Dropbox_Token"];
    Почта  = ПараметрыФункции["Dropbox_OtherUser"];
    Папка  = ПараметрыФункции["Dropbox_SharedFolder"]; // shared_folder_id
    
    Результат = OPI_Dropbox.ДобавитьПользователейКПапке(Токен, Папка, Почта, Ложь);
    
    // END
        
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ДобавитьПользователейКПапке", "Dropbox");
    
    Проверка_Пусто(Результат);
    
    Почты = Новый Массив;
    Почты.Добавить(Почта);
    
    Результат = OPI_Dropbox.ДобавитьПользователейКПапке(Токен, Папка, Почты, Истина);
    
    Проверка_Пусто(Результат);
    
КонецПроцедуры

Процедура Dropbox_ОтменитьПубликациюФайла(ПараметрыФункции)
	
	Токен = ПараметрыФункции["Dropbox_Token"];
    Файл  = ПараметрыФункции["Dropbox_FileID"];
    
    Результат = OPI_Dropbox.ОтменитьПубликациюФайла(Токен, Файл);
    
    // END
        
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтменитьПубликациюФайла", "Dropbox");
    
    Проверка_Пусто(Результат);
    
КонецПроцедуры

#КонецОбласти

#Область Bitrix24

Процедура Bitrix24_ПолучитьСсылкуАвторизации(ПараметрыФункции)
    
    Домен    = ПараметрыФункции["Bitrix24_Domain"];
    ClientID = ПараметрыФункции["Bitrix24_ClientID"];
	
	Результат = OPI_Bitrix24.ПолучитьСсылкуАвторизацииПриложения(Домен, ClientID);
    
    // END
        
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСсылкуАвторизацииПриложения", "Bitrix24");
    
    Проверка_Строка(Результат);
    
    OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("Bitrix24_AuthURL", Результат);

КонецПроцедуры

Процедура Bitrix24_ПолучитьТокен(ПараметрыФункции)
    
    
    ClientID     = ПараметрыФункции["Bitrix24_ClientID"];
    ClientSecret = ПараметрыФункции["Bitrix24_ClientSecret"];
    Code         = ПараметрыФункции["Bitrix24_Code"];
    
	Результат = OPI_Bitrix24.ПолучитьТокен(ClientID, ClientSecret, Code);
    
    // END
        
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьТокен", "Bitrix24");
    
    Если ЗначениеЗаполнено(Результат["access_token"]) И ЗначениеЗаполнено(Результат["refresh_token"]) Тогда
        OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("Bitrix24_Token"  , Результат["access_token"]);
        OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("Bitrix24_Refresh", Результат["refresh_token"]);
    КонецЕсли;
    
КонецПроцедуры

Процедура Bitrix24_ОбновитьТокен(ПараметрыФункции)
    
    
    ClientID     = ПараметрыФункции["Bitrix24_ClientID"];
    ClientSecret = ПараметрыФункции["Bitrix24_ClientSecret"];
    Refresh      = ПараметрыФункции["Bitrix24_Refresh"];
    
	Результат = OPI_Bitrix24.ОбновитьТокен(ClientID, ClientSecret, Refresh);
    
    // END
        
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОбновитьТокен", "Bitrix24");
    
    Проверка_БитриксАвторизация(Результат);
    
    Если ЗначениеЗаполнено(Результат["access_token"]) И ЗначениеЗаполнено(Результат["refresh_token"]) Тогда
        OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("Bitrix24_Token"  , Результат["access_token"]);
        OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("Bitrix24_Refresh", Результат["refresh_token"]);
    КонецЕсли;
    
КонецПроцедуры

Процедура Bitrix24_СерверноеВремя(ПараметрыФункции)
	
	URL = ПараметрыФункции["Bitrix24_URL"];
	
	Результат = OPI_Bitrix24.СерверноеВремя(URL);
        
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СерверноеВремя (хук)", "Bitrix24");
    
    Проверка_БитриксВремя(Результат); // SKIP
    
    URL   = ПараметрыФункции["Bitrix24_Domain"];
    Токен = ПараметрыФункции["Bitrix24_Token"];
    
    Результат = OPI_Bitrix24.СерверноеВремя(URL, Токен);
    
    // END
        
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СерверноеВремя", "Bitrix24");
    
    Проверка_БитриксВремя(Результат); 
  
КонецПроцедуры

Процедура Bitrix24_СоздатьНовость(ПараметрыФункции)
    
    Текст     = "Текст новости";
    Заголовок = "Заголовок новости";
    Картинка1 = ПараметрыФункции["Picture"];
    Картинка2 = ПараметрыФункции["Picture2"];
    
    Файлы     = Новый Соответствие;
    Файлы.Вставить("1.png", Картинка1);
    Файлы.Вставить("2.png", Картинка2);
    
    URL = ПараметрыФункции["Bitrix24_URL"];
	
	Результат = OPI_Bitrix24.СоздатьНовость(URL, Текст, , Файлы, Заголовок);
        
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СоздатьНовость (хук)", "Bitrix24");
    
    Проверка_БитриксНовость(Результат);                                           // SKIP
    
    IDНовости = Результат["result"];                                              // SKIP
    OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("Bitrix24_HookPostID", IDНовости); // SKIP    
    ПараметрыФункции.Вставить("Bitrix24_HookPostID", IDНовости);                  // SKIP

    URL   = ПараметрыФункции["Bitrix24_Domain"];
    Токен = ПараметрыФункции["Bitrix24_Token"];
    
    Результат = OPI_Bitrix24.СоздатьНовость(URL, Текст, , Файлы, Заголовок, Токен);
    
    // END
        
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СоздатьНовость", "Bitrix24");
    
    Проверка_БитриксНовость(Результат); 
    
    IDНовости = Результат["result"];
    
    OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("Bitrix24_PostID", IDНовости);    
    ПараметрыФункции.Вставить("Bitrix24_PostID", IDНовости);
    
КонецПроцедуры

Процедура Bitrix24_УдалитьНовость(ПараметрыФункции)
    
    IDНовости = ПараметрыФункции["Bitrix24_HookPostID"]; 
    URL       = ПараметрыФункции["Bitrix24_URL"];
	
	Результат = OPI_Bitrix24.УдалитьНовость(URL, IDНовости);
        
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьНовость (хук)", "Bitrix24");
    
    Проверка_БитриксИстина(Результат); // SKIP
    
    IDНовости = ПараметрыФункции["Bitrix24_PostID"];
    URL       = ПараметрыФункции["Bitrix24_Domain"];
    Токен     = ПараметрыФункции["Bitrix24_Token"];
    
    Результат = OPI_Bitrix24.УдалитьНовость(URL, IDНовости, Токен);
    
    // END
        
    OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьНовость", "Bitrix24");
    
    Проверка_БитриксИстина(Результат); 
    
КонецПроцедуры

#КонецОбласти

#КонецОбласти

#КонецОбласти
