1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2026-04-30 20:49:04 +02:00

Конвертация CLI тестов

This commit is contained in:
Anton Titovets
2026-03-31 20:35:30 +03:00
parent 6290502a27
commit 901ea26fab
166 changed files with 180045 additions and 90371 deletions
+5 -5
View File
@@ -66,7 +66,7 @@
ПутиСохраненияМодулейCLI = Новый Массив;
ПутиСохраненияМодулейCLI.Добавить(Корень + Язык + "/OInt/tests/Modules/" + ИмяМодуляТестовCLI + ".os");
ПутиСохраненияМодулейCLI.Добавить(Корень + Язык + "/BSL/OpenIntegrations/src/CommonModules/" + ИмяМодуляТестовCLI + "/Module.bsl");
ПутиСохраненияМодулейCLI.Добавить(Корень + Язык + "/BSL/Tests/src/CommonModules/" + ИмяМодуляТестовCLI + "/Module.bsl");
ПреобразоватьТестыВCLI(Язык);
@@ -110,8 +110,8 @@
, "#Использовать oint"
,
"#Использовать ""../../tools/main""
| #Использовать ""../../tools/http""
| #Использовать ""../../api""");
|#Использовать ""../../tools/http""
|#Использовать ""../../api""");
ТекстМодуля = СтрЗаменить(ТекстМодуля, "СформироватьТестыЯкс()", "СформироватьТестыЯксCLI()");
ТекстМодуля = СтрЗаменить(ТекстМодуля, "СформироватьТестыАссертс()", "СформироватьТестыАссертсCLI()");
@@ -122,8 +122,8 @@
, "#Use oint"
,
"#Use ""../../tools/main""
| #Use ""../../tools/http""
| #Use ""../../api""");
|#Use ""../../tools/http""
|#Use ""../../api""");
ТекстМодуля = СтрЗаменить(ТекстМодуля, "FormYAXTests()", "FormYAXTestsCLI()");
ТекстМодуля = СтрЗаменить(ТекстМодуля, "FormAssertsTests()", "FormAssertsTestsCLI()");
@@ -189,9 +189,9 @@
ФайлDebCLI = СтрШаблон("%1/cli_deb_test_%2.jenkinsfile", КаталогWorkflow, Язык);
ФайлWindows1c = СтрШаблон("%1/1c_test_%2.jenkinsfile", КаталогWorkflow, Язык);
ТекстВыполненияOS = ПолучитьТекстВыполненияOs(ТаблицаТестов, СписокБиблиотек, МодульТестов, Язык);
ТекстВыполненияCLI = ПолучитьТекстВыполненияOs(ТаблицаТестов, СписокБиблиотек, МодульТестовCLI, Язык);
ТекстВыполнения1С = ПолучитьТекстВыполнения1c(ТаблицаТестов, СписокБиблиотек, МодульТестов, Язык);
ТекстВыполненияOS = ПолучитьТекстВыполненияOs(ТаблицаТестов, СписокБиблиотек, Язык, "OPIt_");
ТекстВыполненияCLI = ПолучитьТекстВыполненияOs(ТаблицаТестов, СписокБиблиотек, Язык, "OPItc_");
ТекстВыполнения1С = ПолучитьТекстВыполнения1c(ТаблицаТестов, СписокБиблиотек, Язык);
ТекстJFCLI = СтрШаблон(ШаблонCliWindows, Язык, ТекстВыполненияCLI, КаталогOscript);
ТекстJFOS = СтрШаблон(ШаблонOsWindows, Язык, ТекстВыполненияOS, КаталогOscript);
@@ -250,7 +250,7 @@
КонецПроцедуры
Функция ПолучитьТекстВыполненияOs(Знач ТаблицаТестов, Знач СписокБиблиотек, Знач МодульТестов, Знач Язык)
Функция ПолучитьТекстВыполненияOs(Знач ТаблицаТестов, Знач СписокБиблиотек, Знач Язык, Знач Префикс)
СтрокаРаздел = ДанныеПроекта.ПолучитьЗначениеНастройкиЛокализации("sectionsString", Язык);
СтрокаМетод = ДанныеПроекта.ПолучитьЗначениеНастройкиЛокализации("methodString", Язык);
@@ -278,7 +278,7 @@
Метод = Тест[СтрокаМетод];
МассивВыполнений.Добавить(СтрШаблон(ШаблонВыполнения, МодульТестов, Метод))
МассивВыполнений.Добавить(СтрШаблон(ШаблонВыполнения, Префикс + Раздел, Метод))
КонецЦикла;
@@ -294,13 +294,12 @@
КонецФункции
Функция ПолучитьТекстВыполнения1c(Знач ТаблицаТестов, Знач СписокБиблиотек, Знач МодульТестов, Знач Язык)
Функция ПолучитьТекстВыполнения1c(Знач ТаблицаТестов, Знач СписокБиблиотек, Знач Язык)
СтрокаРаздел = ДанныеПроекта.ПолучитьЗначениеНастройкиЛокализации("sectionsString", Язык);
СтрокаМетод = ДанныеПроекта.ПолучитьЗначениеНастройкиЛокализации("methodString", Язык);
СтрокаСиноним = ДанныеПроекта.ПолучитьЗначениеНастройкиЛокализации("synonymString", Язык);
ИмяМодуляТестов = ДанныеПроекта.ПолучитьЗначениеНастройкиЛокализации("testsModule", Язык);
Если Не ТипЗнч(СписокБиблиотек) = Тип("Структура") Тогда
СписокБиблиотек_ = Новый Структура;
@@ -328,7 +327,7 @@
Для Каждого Тест Из ТестыТекущегоРаздела Цикл
Метод = Тест[СтрокаМетод];
МассивМетодов.Добавить("""" + ИмяМодуляТестов + "." + Метод + """" );
МассивМетодов.Добавить("""OPIt_" + Раздел + "." + Метод + """" );
КонецЦикла;
+10904 -10904
View File
File diff suppressed because it is too large Load Diff
@@ -1,9 +1,9 @@
Процедура ЗапуститьЭхоСервер() Экспорт
Порт = 9876;
Порт = 9876;
РазмерПула = 10;
НастройкиЛога = OPI_TCP.ПолучитьНастройкиЛогирования(Истина, 500, "D:\SERVER_LOG.txt");
НастройкиЛога = OPI_TCP.ПолучитьНастройкиЛогирования(Истина, 500, "D:\SERVER_LOG.txt");
ОбъектСервера = OPI_TCP.ЗапуститьСервер(Порт, РазмерПула, НастройкиЛога);
Если Не OPI_TCP.ЭтоОбъектСервера(ОбъектСервера) Тогда
@@ -220,7 +220,7 @@
ТипРезультата = ТипЗнч(Результат);
Если ТипРезультата = Тип("ДвоичныеДанные") Тогда
Результат = Новый Структура("result,data", Истина, Результат);
Результат = Новый Структура("result,data", Истина, Результат);
ИначеЕсли Не Тип("Структура") Тогда
Результат = JsonВСтруктуру(Результат, Ложь);
КонецЕсли;
+609 -4
View File
@@ -1,3 +1,5 @@
// OneScript: ./OInt/tests/Modules/OPItc_Airtable.os
// MIT License
// Copyright (c) 2023-2026 Anton Tsitavets
@@ -9,7 +11,7 @@
// 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
// 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
@@ -22,6 +24,8 @@
// https://github.com/Bayselonarrend/OpenIntegrations
// Test suite for YAxUnit
// BSLLS:Typo-off
// BSLLS:LatinAndCyrillicSymbolInWord-off
// BSLLS:IncorrectLineBreak-off
@@ -63,6 +67,607 @@
//@skip-check missing-temporary-file-deletion
//@skip-check module-unused-method
// #Use oint
// #Use asserts
// #Use "internal"
//#Use "../../tools/main"
//#Use "../../tools/http"
//#Use "../../api"
//#Use asserts
//#Use "internal"
#Region Internal
// For YAxUnit
Procedure ИсполняемыеСценарии() Export
OPI_TestDataRetrieval.FormYAXTests("Airtable");
EndProcedure
// For Asserts
Function ПолучитьСписокТестов(UnitTesting) Export
Return OPI_TestDataRetrieval.FormAssertsTests("Airtable");
EndFunction
#Region RunnableTests
#Region Airtable
Procedure AT_CreateDatabase() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Airtable_Token" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Airtable_Workspace", TestParameters);
Airtable_CreateDatabase(TestParameters);
Airtable_GetDatabaseTables(TestParameters);
Airtable_GetListOfBases(TestParameters);
EndProcedure
Procedure AT_CreateTable() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Airtable_Token", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Airtable_Base" , TestParameters);
Airtable_GetNumberField(TestParameters);
Airtable_GetStringField(TestParameters);
Airtable_GetAttachmentField(TestParameters);
Airtable_GetCheckboxField(TestParameters);
Airtable_GetDateField(TestParameters);
Airtable_GetPhoneField(TestParameters);
Airtable_GetEmailField(TestParameters);
Airtable_GetLinkField(TestParameters);
Airtable_CreateTable(TestParameters);
Airtable_ModifyTable(TestParameters);
EndProcedure
Procedure AT_CreateField() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Airtable_Token", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Airtable_Base" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Airtable_Table", TestParameters);
Airtable_CreateField(TestParameters);
Airtable_ModifyField(TestParameters);
EndProcedure
Procedure AT_CreateDeleteRecords() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Airtable_Token", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Airtable_Base" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Airtable_Table", TestParameters);
Airtable_CreatePosts(TestParameters);
Airtable_GetRecord(TestParameters);
Airtable_CreateComment(TestParameters);
Airtable_EditComment(TestParameters);
Airtable_GetComments(TestParameters);
Airtable_DeleteComment(TestParameters);
Airtable_GetListOfRecords(TestParameters);
Airtable_DeleteRecords(TestParameters);
EndProcedure
#EndRegion // Airtable
#EndRegion // RunnableTests
#EndRegion // Internal
#Region Private
#Region AtomicTests
#Region Airtable
Procedure Airtable_CreateDatabase(FunctionParameters)
Token = FunctionParameters["Airtable_Token"];
Region = FunctionParameters["Airtable_Workspace"];
Name = "TestDatabase";
FieldArray = New Array;
FieldArray.Add(OPI_Airtable.GetNumberField("Number"));
FieldArray.Add(OPI_Airtable.GetStringField("String"));
TableName = "TestTable";
TableMapping = New Map;
TableMapping.Insert(TableName, FieldArray);
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("ws", Region);
Options.Insert("title", Name);
Options.Insert("tablesdata", TableMapping);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("airtable", "CreateDatabase", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Airtable", "CreateDatabase", , FunctionParameters, TableName);
EndProcedure
Procedure Airtable_GetDatabaseTables(FunctionParameters)
Token = FunctionParameters["Airtable_Token"];
Base = FunctionParameters["Airtable_Base"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("base", Base);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("airtable", "GetDatabaseTables", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Airtable", "GetDatabaseTables");
EndProcedure
Procedure Airtable_GetListOfBases(FunctionParameters)
Token = FunctionParameters["Airtable_Token"];
Options = New Structure;
Options.Insert("token", Token);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("airtable", "GetListOfBases", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Airtable", "GetListOfBases");
EndProcedure
Procedure Airtable_GetNumberField(FunctionParameters)
Options = New Structure;
Options.Insert("title", "Number");
Result = OPI_TestDataRetrieval.ExecuteTestCLI("airtable", "GetNumberField", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Airtable", "GetNumberField");
EndProcedure
Procedure Airtable_GetStringField(FunctionParameters)
Options = New Structure;
Options.Insert("title", "String");
Result = OPI_TestDataRetrieval.ExecuteTestCLI("airtable", "GetStringField", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Airtable", "GetStringField");
EndProcedure
Procedure Airtable_GetAttachmentField(FunctionParameters)
Options = New Structure;
Options.Insert("title", "Attachment");
Result = OPI_TestDataRetrieval.ExecuteTestCLI("airtable", "GetAttachmentField", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Airtable", "GetAttachmentField");
EndProcedure
Procedure Airtable_GetCheckboxField(FunctionParameters)
Options = New Structure;
Options.Insert("title", "Checkbox");
Result = OPI_TestDataRetrieval.ExecuteTestCLI("airtable", "GetCheckboxField", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Airtable", "GetCheckboxField");
EndProcedure
Procedure Airtable_GetDateField(FunctionParameters)
Options = New Structure;
Options.Insert("title", "Date");
Result = OPI_TestDataRetrieval.ExecuteTestCLI("airtable", "GetDateField", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Airtable", "GetDateField");
EndProcedure
Procedure Airtable_GetPhoneField(FunctionParameters)
Options = New Structure;
Options.Insert("title", "Phone");
Result = OPI_TestDataRetrieval.ExecuteTestCLI("airtable", "GetPhoneField", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Airtable", "GetPhoneField");
EndProcedure
Procedure Airtable_GetEmailField(FunctionParameters)
Options = New Structure;
Options.Insert("title", "Email");
Result = OPI_TestDataRetrieval.ExecuteTestCLI("airtable", "GetEmailField", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Airtable", "GetEmailField");
EndProcedure
Procedure Airtable_GetLinkField(FunctionParameters)
Options = New Structure;
Options.Insert("title", "Link");
Result = OPI_TestDataRetrieval.ExecuteTestCLI("airtable", "GetLinkField", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Airtable", "GetLinkField");
EndProcedure
Procedure Airtable_CreateTable(FunctionParameters)
Token = FunctionParameters["Airtable_Token"];
Base = FunctionParameters["Airtable_Base"];
FieldArray = New Array;
FieldArray.Add(OPI_Airtable.GetNumberField("Number"));
FieldArray.Add(OPI_Airtable.GetStringField("String"));
FieldArray.Add(OPI_Airtable.GetAttachmentField("Attachment"));
FieldArray.Add(OPI_Airtable.GetCheckboxField("Checkbox"));
FieldArray.Add(OPI_Airtable.GetDateField("Date"));
FieldArray.Add(OPI_Airtable.GetPhoneField("Phone"));
FieldArray.Add(OPI_Airtable.GetEmailField("Email"));
FieldArray.Add(OPI_Airtable.GetLinkField("Link"));
Name = "TestTable2";
Description = "NewTable";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("base", Base);
Options.Insert("title", Name);
Options.Insert("fieldsdata", FieldArray);
Options.Insert("description", Description);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("airtable", "CreateTable", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Airtable", "CreateTable", , FunctionParameters, Name, Description);
EndProcedure
Procedure Airtable_ModifyTable(FunctionParameters)
Token = FunctionParameters["Airtable_Token"];
Base = FunctionParameters["Airtable_Base"];
Table = FunctionParameters["Airtable_Table"];
Name = "Test table 2 (change.)";
Description = "New table (change.)";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("base", Base);
Options.Insert("table", Table);
Options.Insert("title", Name);
Options.Insert("description", Description);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("airtable", "ModifyTable", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Airtable", "ModifyTable", , Name, Description);
EndProcedure
Procedure Airtable_CreateField(FunctionParameters)
Token = FunctionParameters["Airtable_Token"];
Base = FunctionParameters["Airtable_Base"];
Table = FunctionParameters["Airtable_Table"];
Name = String(New UUID);
Options = New Structure;
Options.Insert("title", Name);
Field = OPI_TestDataRetrieval.ExecuteTestCLI("airtable", "GetNumberField", Options);
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("base", Base);
Options.Insert("table", Table);
Options.Insert("fielddata", Field);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("airtable", "CreateField", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Airtable", "CreateField", , FunctionParameters, Name);
EndProcedure
Procedure Airtable_ModifyField(FunctionParameters)
Token = FunctionParameters["Airtable_Token"];
Base = FunctionParameters["Airtable_Base"];
Table = FunctionParameters["Airtable_Table"];
Field = FunctionParameters["Airtable_Field"];
Name = String(New UUID) + "(change.)";
Description = "New description";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("base", Base);
Options.Insert("table", Table);
Options.Insert("field", Field);
Options.Insert("title", Name);
Options.Insert("description", Description);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("airtable", "ModifyField", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Airtable", "ModifyField", , Name, Description);
EndProcedure
Procedure Airtable_CreatePosts(FunctionParameters)
Token = FunctionParameters["Airtable_Token"];
Base = FunctionParameters["Airtable_Base"];
Table = FunctionParameters["Airtable_Table"];
Number = 10;
String = "Hello";
RowDescription1 = New Structure("Number,String", Number, String);
RowDescription2 = New Structure("Number,String", Number, String);
ArrayOfDescriptions = New Array;
ArrayOfDescriptions.Add(RowDescription1);
ArrayOfDescriptions.Add(RowDescription2);
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("base", Base);
Options.Insert("table", Table);
Options.Insert("data", ArrayOfDescriptions);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("airtable", "CreatePosts", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Airtable", "CreatePosts", , FunctionParameters);
ArrayOfDeletions = New Array;
For Each Record In Result["records"] Do
CurrentRecord = Record["id"];
ArrayOfDeletions.Add(CurrentRecord);
EndDo;
OPI_Airtable.DeleteRecords(Token, Base, Table, ArrayOfDeletions);
// Single
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("base", Base);
Options.Insert("table", Table);
Options.Insert("data", RowDescription1);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("airtable", "CreatePosts", Options);
OPI_TestDataRetrieval.Process(Result, "Airtable", "CreatePosts", "Single", FunctionParameters, Number, String);
EndProcedure
Procedure Airtable_GetRecord(FunctionParameters)
Token = FunctionParameters["Airtable_Token"];
Base = FunctionParameters["Airtable_Base"];
Table = FunctionParameters["Airtable_Table"];
Record = FunctionParameters["Airtable_Record"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("base", Base);
Options.Insert("table", Table);
Options.Insert("record", Record);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("airtable", "GetRecord", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Airtable", "GetRecord", , Record);
EndProcedure
Procedure Airtable_CreateComment(FunctionParameters)
Token = FunctionParameters["Airtable_Token"];
Base = FunctionParameters["Airtable_Base"];
Table = FunctionParameters["Airtable_Table"];
Record = FunctionParameters["Airtable_Record"];
Text = "TestComment";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("base", Base);
Options.Insert("table", Table);
Options.Insert("record", Record);
Options.Insert("text", Text);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("airtable", "CreateComment", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Airtable", "CreateComment", , FunctionParameters, Text);
EndProcedure
Procedure Airtable_EditComment(FunctionParameters)
Token = FunctionParameters["Airtable_Token"];
Base = FunctionParameters["Airtable_Base"];
Table = FunctionParameters["Airtable_Table"];
Record = FunctionParameters["Airtable_Record"];
Comment = FunctionParameters["Airtable_Comment"];
Text = "Test comment (change.)";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("base", Base);
Options.Insert("table", Table);
Options.Insert("record", Record);
Options.Insert("comment", Comment);
Options.Insert("text", Text);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("airtable", "EditComment", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Airtable", "EditComment", , Text);
EndProcedure
Procedure Airtable_GetComments(FunctionParameters)
Token = FunctionParameters["Airtable_Token"];
Base = FunctionParameters["Airtable_Base"];
Table = FunctionParameters["Airtable_Table"];
Record = FunctionParameters["Airtable_Record"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("base", Base);
Options.Insert("table", Table);
Options.Insert("record", Record);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("airtable", "GetComments", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Airtable", "GetComments");
EndProcedure
Procedure Airtable_DeleteComment(FunctionParameters)
Token = FunctionParameters["Airtable_Token"];
Base = FunctionParameters["Airtable_Base"];
Table = FunctionParameters["Airtable_Table"];
Record = FunctionParameters["Airtable_Record"];
Comment = FunctionParameters["Airtable_Comment"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("base", Base);
Options.Insert("table", Table);
Options.Insert("record", Record);
Options.Insert("comment", Comment);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("airtable", "DeleteComment", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Airtable", "DeleteComment", , Comment);
EndProcedure
Procedure Airtable_GetListOfRecords(FunctionParameters)
Token = FunctionParameters["Airtable_Token"];
Base = FunctionParameters["Airtable_Base"];
Table = FunctionParameters["Airtable_Table"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("base", Base);
Options.Insert("table", Table);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("airtable", "GetListOfRecords", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Airtable", "GetListOfRecords");
EndProcedure
Procedure Airtable_DeleteRecords(FunctionParameters)
Token = FunctionParameters["Airtable_Token"];
Base = FunctionParameters["Airtable_Base"];
Table = FunctionParameters["Airtable_Table"];
Record = FunctionParameters["Airtable_Record"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("base", Base);
Options.Insert("table", Table);
Options.Insert("records", Record);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("airtable", "DeleteRecords", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Airtable", "DeleteRecords");
EndProcedure
#EndRegion // Airtable
#EndRegion // AtomicTests
#EndRegion // Private
#Region Alternate
Procedure АТ_СоздатьБазу() Export
AT_CreateDatabase();
EndProcedure
Procedure АТ_СоздатьТаблицу() Export
AT_CreateTable();
EndProcedure
Procedure АТ_СоздатьПоле() Export
AT_CreateField();
EndProcedure
Procedure АТ_СоздатьУдалитьЗаписи() Export
AT_CreateDeleteRecords();
EndProcedure
#EndRegion
File diff suppressed because it is too large Load Diff
+855 -4
View File
@@ -1,3 +1,5 @@
// OneScript: ./OInt/tests/Modules/OPItc_CDEK.os
// MIT License
// Copyright (c) 2023-2026 Anton Tsitavets
@@ -9,7 +11,7 @@
// 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
// 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
@@ -22,6 +24,8 @@
// https://github.com/Bayselonarrend/OpenIntegrations
// Test suite for YAxUnit
// BSLLS:Typo-off
// BSLLS:LatinAndCyrillicSymbolInWord-off
// BSLLS:IncorrectLineBreak-off
@@ -63,6 +67,853 @@
//@skip-check missing-temporary-file-deletion
//@skip-check module-unused-method
// #Use oint
// #Use asserts
// #Use "internal"
//#Use "../../tools/main"
//#Use "../../tools/http"
//#Use "../../api"
//#Use asserts
//#Use "internal"
// For YAxUnit
Procedure ИсполняемыеСценарии() Export
OPI_TestDataRetrieval.FormYAXTests("CDEK");
EndProcedure
// For Asserts
Function ПолучитьСписокТестов(UnitTesting) Export
Return OPI_TestDataRetrieval.FormAssertsTests("CDEK");
EndFunction
#Region Internal
#Region RunnableTests
#Region CDEK
Procedure CdekAPI_CommonMethods() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("CDEK_Account" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("CDEK_Password", TestParameters);
CDEK_GetToken(TestParameters);
CDEK_GetCashboxChecksByDate(TestParameters);
CDEK_GetDeliveryCashRegistry(TestParameters);
CDEK_GetDeliveryCashTransfers(TestParameters);
CDEK_GetOfficeFilterDescription(TestParameters);
CDEK_GetOfficeList(TestParameters);
CDEK_GetRegionsList(TestParameters);
EndProcedure
Procedure CDEKAPI_OrdersManagement() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("CDEK_Token", TestParameters);
CDEK_GetOrderDescription(TestParameters);
CDEK_CreateOrder(TestParameters);
OPI_Tools.Pause(25);
CDEK_GetOrder(TestParameters);
CDEK_GetOrderByNumber(TestParameters);
CDEK_CreateReceipt(TestParameters);
CDEK_CreateBarcode(TestParameters);
CDEK_CreatePrealert(TestParameters);
OPI_Tools.Pause(25);
CDEK_GetReceipt(TestParameters);
CDEK_GetBarcode(TestParameters);
CDEK_GetPrealert(TestParameters);
CDEK_GetPassportDataStatus(TestParameters);
CDEK_GetCashboxCheck(TestParameters);
CDEK_UpdateOrder(TestParameters);
CDEK_CreateCustomerRefund(TestParameters);
CDEK_CreateRefusal(TestParameters);
CDEK_DeleteOrder(TestParameters);
EndProcedure
Procedure CdekAPI_CourierInvitationsManagement() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("CDEK_Token", TestParameters);
CDEK_CreateOrder(TestParameters);
OPI_Tools.Pause(25);
CDEK_GetCourierInvitationsDescription(TestParameters);
CDEK_CreateCourierInvitation(TestParameters);
CDEK_GetCourierInvitation(TestParameters);
CDEK_DeleteCourierInvitation(TestParameters);
CDEK_GetAppointmentDescription(TestParameters);
CDEK_GetAvailableDeliveryIntervals(TestParameters);
CDEK_RegisterDeliveryAppointment(TestParameters);
OPI_Tools.Pause(25);
CDEK_GetDeliveryAppointment(TestParameters);
CDEK_DeleteOrder(TestParameters);
EndProcedure
#EndRegion // CDEK
#EndRegion // RunnableTests
#EndRegion // Internal
#Region Private
#Region AtomicTests
#Region CDEK
Procedure CDEK_GetToken(FunctionParameters)
Account = FunctionParameters["CDEK_Account"];
Password = FunctionParameters["CDEK_Password"];
Options = New Structure;
Options.Insert("account", Account);
Options.Insert("pass", Password);
Options.Insert("testapi", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("cdek", "GetToken", Options);
// END
OPI_TestDataRetrieval.Process(Result, "CDEK", "GetToken", , FunctionParameters);
EndProcedure
Procedure CDEK_GetOrderDescription(FunctionParameters)
Options = New Structure;
Result = OPI_TestDataRetrieval.ExecuteTestCLI("cdek", "GetOrderDescription", Options);
// END
OPI_TestDataRetrieval.Process(Result, "CDEK", "GetOrderDescription");
Options = New Structure;
Options.Insert("empty", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("cdek", "GetOrderDescription", Options);
OPI_TestDataRetrieval.Process(Result, "CDEK", "GetOrderDescription", "Clear");
EndProcedure
Procedure CDEK_CreateOrder(FunctionParameters)
Token = FunctionParameters["CDEK_Token"];
OrderDescription = New Structure;
SendLocation = New Structure;
SendLocation.Insert("code" , "44");
SendLocation.Insert("city" , "Moscow");
SendLocation.Insert("address", "Ave. Leningradsky, 4");
DestLocation = New Structure;
DestLocation.Insert("code" , "270");
DestLocation.Insert("city" , "Novosibirsk");
DestLocation.Insert("address", "st. Bluchera, 32");
Recipient = New Structure;
Phones = New Array;
Phones.Add(New Structure("number", "+79134637228"));
Recipient.Insert("phones", Phones);
Recipient.Insert("name" , "Ivaniv Ivan");
Sender = New Structure("name", "Petrov Petr");
Services = New Array;
Service = New Structure;
Service.Insert("code" , "SECURE_PACKAGE_A2");
Service.Insert("parameter", 10);
Services.Add(Service);
Packages = New Array;
Package = New Structure;
Items = New Array;
Item = New Structure;
Payment = New Structure;
Payment.Insert("value", 3000);
Item.Insert("payment" , Payment);
Item.Insert("ware_key", "00055");
Item.Insert("name" , "Product");
Item.Insert("cost" , 300);
Item.Insert("amount" , 2);
Item.Insert("weight" , 700);
Item.Insert("url" , "www.item.ru");
Items.Add(Item);
Package.Insert("items" , Items);
Package.Insert("number" , "bar-001");
Package.Insert("comment", "Packaging");
Package.Insert("height" , 10);
Package.Insert("length" , 10);
Package.Insert("weight" , "4000");
Package.Insert("width" , 10);
Packages.Add(Package);
OrderDescription.Insert("from_location", SendLocation);
OrderDescription.Insert("to_location" , DestLocation);
OrderDescription.Insert("packages" , Packages);
OrderDescription.Insert("recipient" , Recipient);
OrderDescription.Insert("sender" , Sender);
OrderDescription.Insert("services" , Services);
OrderDescription.Insert("number" , String(New UUID));
OrderDescription.Insert("comment" , "New order");
OrderDescription.Insert("tariff_code", 139);
OrderDescription.Insert("delivery_recipient_cost" , New Structure("value" , 50));
OrderDescription.Insert("delivery_recipient_cost_adv", New Structure("sum,threshold", 3000, 200));
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("order", OrderDescription);
Options.Insert("ostore", Истина);
Options.Insert("testapi", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("cdek", "CreateOrder", Options);
// END
OPI_TestDataRetrieval.Process(Result, "CDEK", "CreateOrder", , FunctionParameters);
EndProcedure
Procedure CDEK_GetOrder(FunctionParameters)
Token = FunctionParameters["CDEK_Token"];
UUID = FunctionParameters["CDEK_OrderUUID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("uuid", UUID);
Options.Insert("testapi", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("cdek", "GetOrder", Options);
// END
OPI_TestDataRetrieval.Process(Result, "CDEK", "GetOrder", , FunctionParameters);
EndProcedure
Procedure CDEK_GetOrderByNumber(FunctionParameters)
Token = FunctionParameters["CDEK_Token"];
OrderNumber = FunctionParameters["CDEK_OrderIMN"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("number", OrderNumber);
Options.Insert("internal", Истина);
Options.Insert("testapi", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("cdek", "GetOrderByNumber", Options);
// END
OPI_TestDataRetrieval.Process(Result, "CDEK", "GetOrderByNumber");
EndProcedure
Procedure CDEK_UpdateOrder(FunctionParameters)
Token = FunctionParameters["CDEK_Token"];
UUID = FunctionParameters["CDEK_OrderUUID"];
OrderDescription = New Structure("comment", "NewComment");
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("uuid", UUID);
Options.Insert("order", OrderDescription);
Options.Insert("testapi", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("cdek", "UpdateOrder", Options);
// END
OPI_TestDataRetrieval.Process(Result, "CDEK", "UpdateOrder");
EndProcedure
Procedure CDEK_DeleteOrder(FunctionParameters)
Token = FunctionParameters["CDEK_Token"];
UUID = FunctionParameters["CDEK_OrderUUID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("uuid", UUID);
Options.Insert("testapi", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("cdek", "DeleteOrder", Options);
// END
OPI_TestDataRetrieval.Process(Result, "CDEK", "DeleteOrder");
EndProcedure
Procedure CDEK_CreateCustomerRefund(FunctionParameters)
Token = FunctionParameters["CDEK_Token"];
UUID = FunctionParameters["CDEK_OrderUUID"];
Tariff = 139;
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("uuid", UUID);
Options.Insert("tariff", Tariff);
Options.Insert("testapi", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("cdek", "CreateCustomerRefund", Options);
// END
OPI_TestDataRetrieval.Process(Result, "CDEK", "CreateCustomerRefund");
EndProcedure
Procedure CDEK_CreateRefusal(FunctionParameters)
Token = FunctionParameters["CDEK_Token"];
UUID = FunctionParameters["CDEK_OrderUUID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("uuid", UUID);
Options.Insert("testapi", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("cdek", "CreateRefusal", Options);
// END
OPI_TestDataRetrieval.Process(Result, "CDEK", "CreateRefusal");
EndProcedure
Procedure CDEK_GetCourierInvitationsDescription(FunctionParameters)
Options = New Structure;
Result = OPI_TestDataRetrieval.ExecuteTestCLI("cdek", "GetCourierInvitationsDescription", Options);
// END
OPI_TestDataRetrieval.Process(Result, "CDEK", "GetCourierInvitationsDescription");
Options = New Structure;
Options.Insert("empty", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("cdek", "GetCourierInvitationsDescription", Options);
OPI_TestDataRetrieval.Process(Result, "CDEK", "GetCourierInvitationsDescription", "Clear");
EndProcedure
Procedure CDEK_CreateCourierInvitation(FunctionParameters)
Token = FunctionParameters["CDEK_Token"];
CurrentDate = OPI_Tools.GetCurrentDate();
InvitationDescription = New Structure;
InvitationDescription.Insert("intake_date" , Format(CurrentDate + 60 * 60 * 24, "DF=yyyy-MM-dd"));
InvitationDescription.Insert("intake_time_from", "10:00");
InvitationDescription.Insert("intake_time_to" , "17:00");
InvitationDescription.Insert("name" , "Consolidated cargo");
InvitationDescription.Insert("weight" , 1000);
InvitationDescription.Insert("length" , 10);
InvitationDescription.Insert("width" , 10);
InvitationDescription.Insert("height" , 10);
InvitationDescription.Insert("comment" , "Comment to courier");
InvitationDescription.Insert("need_call" , False);
Sender = New Structure;
Sender.Insert("company", "Company");
Sender.Insert("name" , "Ivaniv Ivan");
Phones = New Array;
Phone = New Structure("number", "+79589441654");
Phones.Add(Phone);
Sender.Insert("phones", Phones);
InvitationDescription.Insert("sender", Sender);
ShippingPoint = New Structure;
ShippingPoint.Insert("code" , "44");
ShippingPoint.Insert("fias_guid" , "0c5b2444-70a0-4932-980c-b4dc0d3f02b5");
ShippingPoint.Insert("postal_code" , "109004");
ShippingPoint.Insert("longitude" , 37.6204);
ShippingPoint.Insert("latitude" , 55.754);
ShippingPoint.Insert("country_code", "RU");
ShippingPoint.Insert("region" , "Moscow");
ShippingPoint.Insert("sub_region" , "Moscow");
ShippingPoint.Insert("city" , "Moscow");
ShippingPoint.Insert("kladr_code" , "7700000000000");
ShippingPoint.Insert("address" , "st. Bluchera, 32");
InvitationDescription.Insert("from_location", ShippingPoint);
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("intake", InvitationDescription);
Options.Insert("testapi", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("cdek", "CreateCourierInvitation", Options);
// END
OPI_TestDataRetrieval.Process(Result, "CDEK", "CreateCourierInvitation", , FunctionParameters);
EndProcedure
Procedure CDEK_GetCourierInvitation(FunctionParameters)
Token = FunctionParameters["CDEK_Token"];
UUID = FunctionParameters["CDEK_IntakeUUID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("uuid", UUID);
Options.Insert("testapi", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("cdek", "GetCourierInvitation", Options);
// END
OPI_TestDataRetrieval.Process(Result, "CDEK", "GetCourierInvitation");
EndProcedure
Procedure CDEK_DeleteCourierInvitation(FunctionParameters)
Token = FunctionParameters["CDEK_Token"];
UUID = FunctionParameters["CDEK_IntakeUUID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("uuid", UUID);
Options.Insert("testapi", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("cdek", "DeleteCourierInvitation", Options);
// END
OPI_TestDataRetrieval.Process(Result, "CDEK", "DeleteCourierInvitation");
EndProcedure
Procedure CDEK_CreateReceipt(FunctionParameters)
Token = FunctionParameters["CDEK_Token"];
UUID = FunctionParameters["CDEK_OrderUUID"];
Type = "tpl_russia";
Copies = 1;
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("uuids", UUID);
Options.Insert("type", Type);
Options.Insert("count", Copies);
Options.Insert("testapi", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("cdek", "CreateReceipt", Options);
// END
OPI_TestDataRetrieval.Process(Result, "CDEK", "CreateReceipt", , FunctionParameters);
EndProcedure
Procedure CDEK_GetReceipt(FunctionParameters)
Token = FunctionParameters["CDEK_Token"];
UUID = FunctionParameters["CDEK_PrintUUID"];
Result = OPI_CDEK.GetReceipt(Token, UUID, , True); // Server response with a URL
// END
OPI_TestDataRetrieval.Process(Result, "CDEK", "GetReceipt");
EndProcedure
Procedure CDEK_CreateBarcode(FunctionParameters)
Token = FunctionParameters["CDEK_Token"];
UUID = FunctionParameters["CDEK_OrderUUID"];
Format = "A5";
Copies = 1;
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("uuids", UUID);
Options.Insert("count", Copies);
Options.Insert("format", Format);
Options.Insert("testapi", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("cdek", "CreateBarcode", Options);
// END
OPI_TestDataRetrieval.Process(Result, "CDEK", "CreateBarcode", , FunctionParameters);
EndProcedure
Procedure CDEK_GetBarcode(FunctionParameters)
Token = FunctionParameters["CDEK_Token"];
UUID = FunctionParameters["CDEK_BarcodeUUID"];
Result = OPI_CDEK.GetBarcode(Token, UUID, , True); // Server response with a URL
// END
OPI_TestDataRetrieval.Process(Result, "CDEK", "GetBarcode");
EndProcedure
Procedure CDEK_GetAvailableDeliveryIntervals(FunctionParameters)
Token = FunctionParameters["CDEK_Token"];
UUID = FunctionParameters["CDEK_OrderUUID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("uuid", UUID);
Options.Insert("testapi", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("cdek", "GetAvailableDeliveryIntervals", Options);
// END
OPI_TestDataRetrieval.Process(Result, "CDEK", "GetAvailableDeliveryIntervals");
EndProcedure
Procedure CDEK_GetAppointmentDescription(FunctionParameters)
Options = New Structure;
Result = OPI_TestDataRetrieval.ExecuteTestCLI("cdek", "GetAppointmentDescription", Options);
// END
OPI_TestDataRetrieval.Process(Result, "CDEK", "GetAppointmentDescription");
Options = New Structure;
Options.Insert("empty", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("cdek", "GetAppointmentDescription", Options);
OPI_TestDataRetrieval.Process(Result, "CDEK", "GetAppointmentDescription", "Clear");
EndProcedure
Procedure CDEK_RegisterDeliveryAppointment(FunctionParameters)
Token = FunctionParameters["CDEK_Token"];
OrderUUID = FunctionParameters["CDEK_OrderUUID"];
Day = 60 * 60 * 24;
CurrentDate = BegOfDay(OPI_Tools.GetCurrentDate());
DeliveryDate = CurrentDate + Day * 14;
While WeekDay(DeliveryDate) > 5 Do
DeliveryDate = DeliveryDate + Day;
EndDo;
Appointment = New Structure;
Appointment.Insert("cdek_number", "1106207236");
Appointment.Insert("order_uuid" , OrderUUID);
Appointment.Insert("date" , Format(DeliveryDate, "DF=yyyy-MM-dd"));
Appointment.Insert("time_from" , "10:00");
Appointment.Insert("time_to" , "17:00");
Appointment.Insert("comment" , "Group office");
DeliveryLocation = New Structure;
DeliveryLocation.Insert("code" , "270");
DeliveryLocation.Insert("fias_guid" , "0c5b2444-70a0-4932-980c-b4dc0d3f02b5");
DeliveryLocation.Insert("postal_code" , "109004");
DeliveryLocation.Insert("longitude" , 37.6204);
DeliveryLocation.Insert("latitude" , 55.754);
DeliveryLocation.Insert("country_code", "RU");
DeliveryLocation.Insert("region" , "Novosibirsk");
DeliveryLocation.Insert("sub_region" , "Novosibirsk");
DeliveryLocation.Insert("city" , "Novosibirsk");
DeliveryLocation.Insert("kladr_code" , "7700000000000");
DeliveryLocation.Insert("address" , "st. Bluchera, 33");
Appointment.Insert("to_location", DeliveryLocation);
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("appt", Appointment);
Options.Insert("testapi", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("cdek", "RegisterDeliveryAppointment", Options);
// END
OPI_TestDataRetrieval.Process(Result, "CDEK", "RegisterDeliveryAppointment", , FunctionParameters);
EndProcedure
Procedure CDEK_GetDeliveryAppointment(FunctionParameters)
Token = FunctionParameters["CDEK_Token"];
UUID = FunctionParameters["CDEK_ApptUUID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("uuid", UUID);
Options.Insert("testapi", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("cdek", "GetDeliveryAppointment", Options);
// END
OPI_TestDataRetrieval.Process(Result, "CDEK", "GetDeliveryAppointment");
EndProcedure
Procedure CDEK_CreatePrealert(FunctionParameters)
Token = FunctionParameters["CDEK_Token"];
UUID = FunctionParameters["CDEK_OrderUUID"];
Point = "NSK27";
TransferDate = OPI_Tools.GetCurrentDate() + 60 * 60 * 24;
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("uuids", UUID);
Options.Insert("date", TransferDate);
Options.Insert("point", Point);
Options.Insert("testapi", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("cdek", "CreatePrealert", Options);
// END
OPI_TestDataRetrieval.Process(Result, "CDEK", "CreatePrealert", , FunctionParameters);
EndProcedure
Procedure CDEK_GetPrealert(FunctionParameters)
Token = FunctionParameters["CDEK_Token"];
UUID = FunctionParameters["CDEK_PrealertUUID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("uuid", UUID);
Options.Insert("testapi", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("cdek", "GetPrealert", Options);
// END
OPI_TestDataRetrieval.Process(Result, "CDEK", "GetPrealert");
EndProcedure
Procedure CDEK_GetPassportDataStatus(FunctionParameters)
Token = FunctionParameters["CDEK_Token"];
UUID = FunctionParameters["CDEK_OrderUUID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("uuid", UUID);
Options.Insert("testapi", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("cdek", "GetPassportDataStatus", Options);
// END
OPI_TestDataRetrieval.Process(Result, "CDEK", "GetPassportDataStatus");
EndProcedure
Procedure CDEK_GetCashboxCheck(FunctionParameters)
Token = FunctionParameters["CDEK_Token"];
UUID = FunctionParameters["CDEK_OrderUUID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("uuid", UUID);
Options.Insert("testapi", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("cdek", "GetCashboxCheck", Options);
// END
OPI_TestDataRetrieval.Process(Result, "CDEK", "GetCashboxCheck");
EndProcedure
Procedure CDEK_GetCashboxChecksByDate(FunctionParameters)
Token = FunctionParameters["CDEK_Token"];
ReceivingDate = OPI_Tools.GetCurrentDate();
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("date", ReceivingDate);
Options.Insert("testapi", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("cdek", "GetCashboxChecksByDate", Options);
// END
OPI_TestDataRetrieval.Process(Result, "CDEK", "GetCashboxChecksByDate");
EndProcedure
Procedure CDEK_GetDeliveryCashRegistry(FunctionParameters)
Token = FunctionParameters["CDEK_Token"];
ReceivingDate = OPI_Tools.GetCurrentDate();
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("date", ReceivingDate);
Options.Insert("testapi", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("cdek", "GetDeliveryCashRegistry", Options);
// END
OPI_TestDataRetrieval.Process(Result, "CDEK", "GetDeliveryCashRegistry");
EndProcedure
Procedure CDEK_GetDeliveryCashTransfers(FunctionParameters)
Token = FunctionParameters["CDEK_Token"];
ReceivingDate = OPI_Tools.GetCurrentDate();
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("date", ReceivingDate);
Options.Insert("testapi", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("cdek", "GetDeliveryCashTransfers", Options);
// END
OPI_TestDataRetrieval.Process(Result, "CDEK", "GetDeliveryCashTransfers");
EndProcedure
Procedure CDEK_GetOfficeFilterDescription(FunctionParameters)
Options = New Structure;
Result = OPI_TestDataRetrieval.ExecuteTestCLI("cdek", "GetOfficeFilterDescription", Options);
// END
OPI_TestDataRetrieval.Process(Result, "CDEK", "GetOfficeFilterDescription");
Options = New Structure;
Options.Insert("empty", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("cdek", "GetOfficeFilterDescription", Options);
OPI_TestDataRetrieval.Process(Result, "CDEK", "GetOfficeFilterDescription", "Clear");
EndProcedure
Procedure CDEK_GetOfficeList(FunctionParameters)
Token = FunctionParameters["CDEK_Token"];
Filter = New Structure;
Filter.Insert("weight_max" , 50);
Filter.Insert("city_code" , 270);
Filter.Insert("allowed_cod", True);
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("filter", Filter);
Options.Insert("testapi", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("cdek", "GetOfficeList", Options);
// END
OPI_TestDataRetrieval.Process(Result, "CDEK", "GetOfficeList");
EndProcedure
Procedure CDEK_GetRegionsList(FunctionParameters)
Token = FunctionParameters["CDEK_Token"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("testapi", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("cdek", "GetRegionsList", Options);
// END
OPI_TestDataRetrieval.Process(Result, "CDEK", "GetRegionsList");
EndProcedure
#EndRegion // CDEK
#EndRegion // AtomicTests
#EndRegion // Private
#Region Alternate
Procedure СдэкАПИ_ОбщиеМетоды() Export
CdekAPI_CommonMethods();
EndProcedure
Procedure СдэкАПИ_РаботаСЗаказами() Export
CDEKAPI_OrdersManagement();
EndProcedure
Procedure СдэкАПИ_РаботаСЗаявкамиНаВызовКурьера() Export
CdekAPI_CourierInvitationsManagement();
EndProcedure
#EndRegion
File diff suppressed because it is too large Load Diff
+794 -4
View File
@@ -1,3 +1,5 @@
// OneScript: ./OInt/tests/Modules/OPItc_Dropbox.os
// MIT License
// Copyright (c) 2023-2026 Anton Tsitavets
@@ -9,7 +11,7 @@
// 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
// 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
@@ -22,6 +24,8 @@
// https://github.com/Bayselonarrend/OpenIntegrations
// Test suite for YAxUnit
// BSLLS:Typo-off
// BSLLS:LatinAndCyrillicSymbolInWord-off
// BSLLS:IncorrectLineBreak-off
@@ -63,6 +67,792 @@
//@skip-check missing-temporary-file-deletion
//@skip-check module-unused-method
// #Use oint
// #Use asserts
// #Use "internal"
//#Use "../../tools/main"
//#Use "../../tools/http"
//#Use "../../api"
//#Use asserts
//#Use "internal"
// For YAxUnit
Procedure ИсполняемыеСценарии() Export
OPI_TestDataRetrieval.FormYAXTests("Dropbox");
EndProcedure
// For Asserts
Function ПолучитьСписокТестов(UnitTesting) Export
Return OPI_TestDataRetrieval.FormAssertsTests("Dropbox");
EndFunction
#Region Internal
#Region RunnableTests
#Region Dropbox
Procedure DropboxAPI_GetUpdateToken() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Dropbox_Appkey" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Dropbox_Appsecret", TestParameters);
Dropbox_GetAuthorizationLink(TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Dropbox_Code", TestParameters);
Dropbox_GetToken(TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Dropbox_Refresh", TestParameters);
Dropbox_RefreshToken(TestParameters);
EndProcedure
Procedure DropboxAPI_UploadFile() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Dropbox_Token", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Picture" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Big" , TestParameters);
Dropbox_UploadFile(TestParameters);
Dropbox_GetObjectInformation(TestParameters);
Dropbox_GetObjectVersionList(TestParameters);
Dropbox_RestoreObjectToVersion(TestParameters);
Dropbox_GetPreview(TestParameters);
Dropbox_DownloadFile(TestParameters);
Dropbox_MoveObject(TestParameters);
Dropbox_CopyObject(TestParameters);
Dropbox_DeleteObject(TestParameters);
EndProcedure
Procedure DropboxAPI_CreateFolder() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Dropbox_Token", TestParameters);
Dropbox_CreateFolder(TestParameters);
Dropbox_DownloadFolder(TestParameters);
EndProcedure
Procedure DropboxAPI_GetFolderFileList() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Dropbox_Token", TestParameters);
Dropbox_GetListOfFolderFiles(TestParameters);
EndProcedure
Procedure DropboxAPI_UploadFileByURL() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Dropbox_Token", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Document" , TestParameters);
Dropbox_UploadFileByURL(TestParameters);
Dropbox_GetUploadStatusByURL(TestParameters);
EndProcedure
Procedure DropboxAPI_CreateDeleteTag() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Dropbox_Token", TestParameters);
Dropbox_AddTag(TestParameters);
Dropbox_GetTagList(TestParameters);
Dropbox_DeleteTag(TestParameters);
EndProcedure
Procedure DropboxAPI_GetAccount() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Dropbox_Token", TestParameters);
Dropbox_GetAccountInformation(TestParameters);
Dropbox_GetSpaceUsageData(TestParameters);
EndProcedure
Procedure DropboxAPI_AccessManagement() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Dropbox_Token" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Dropbox_OtherUser", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Dropbox_FileID" , TestParameters);
Dropbox_AddUsersToFile(TestParameters);
Dropbox_PublishFolder(TestParameters);
Dropbox_AddUsersToFolder(TestParameters);
Dropbox_CancelFolderPublication(TestParameters);
Dropbox_GetAsynchronousChangeStatus(TestParameters);
Dropbox_CancelFilePublication(TestParameters);
EndProcedure
#EndRegion // Dropbox
#EndRegion // RunnableTests
#EndRegion // Internal
#Region Private
#Region AtomicTests
#Region Dropbox
Procedure Dropbox_GetAuthorizationLink(FunctionParameters)
AppKey = FunctionParameters["Dropbox_Appkey"];
Options = New Structure;
Options.Insert("appkey", AppKey);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("dropbox", "GetAuthorizationLink", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Dropbox", "GetAuthorizationLink");
EndProcedure
Procedure Dropbox_GetToken(FunctionParameters)
AppKey = FunctionParameters["Dropbox_Appkey"];
AppSecret = FunctionParameters["Dropbox_Appsecret"];
Code = FunctionParameters["Dropbox_Code"];
Options = New Structure;
Options.Insert("appkey", AppKey);
Options.Insert("appsecret", AppSecret);
Options.Insert("code", Code);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("dropbox", "GetToken", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Dropbox", "GetToken");
EndProcedure
Procedure Dropbox_RefreshToken(FunctionParameters)
AppKey = FunctionParameters["Dropbox_Appkey"];
AppSecret = FunctionParameters["Dropbox_Appsecret"];
RefreshToken = FunctionParameters["Dropbox_Refresh"];
Options = New Structure;
Options.Insert("appkey", AppKey);
Options.Insert("appsecret", AppSecret);
Options.Insert("refresh", RefreshToken);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("dropbox", "RefreshToken", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Dropbox", "RefreshToken");
EndProcedure
Procedure Dropbox_GetObjectInformation(FunctionParameters)
Path = "/New/pic.png";
Token = FunctionParameters["Dropbox_Token"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("path", Path);
Options.Insert("detail", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("dropbox", "GetObjectInformation", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Dropbox", "GetObjectInformation", , Path);
EndProcedure
Procedure Dropbox_GetPreview(FunctionParameters)
Token = FunctionParameters["Dropbox_Token"];
Path = "/New/mydoc.docx";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("path", Path);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("dropbox", "GetPreview", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Dropbox", "GetPreview");
EndProcedure
Procedure Dropbox_UploadFile(FunctionParameters)
Path = "/New/pic.png";
Token = FunctionParameters["Dropbox_Token"];
Image = FunctionParameters["Picture"];
ImagePath = GetTempFileName("png");
FileCopy(Image, ImagePath);
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("file", ImagePath);
Options.Insert("path", Path);
Options.Insert("overwrite", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("dropbox", "UploadFile", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Dropbox", "UploadFile", , Path);
OPI_Tools.RemoveFileWithTry(ImagePath, "Failed to delete the temporary file after the test!!");
If Not OPI_Tools.IsOneScript() And FunctionParameters.Property("Big") Then
BigFile = FunctionParameters["Big"];
Path = "/giant.tmp";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("file", BigFile);
Options.Insert("path", Path);
Options.Insert("overwrite", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("dropbox", "UploadFile", Options);
OPI_TestDataRetrieval.Process(Result, "Dropbox", "UploadFile", "Big", Path);
EndIf;
EndProcedure
Procedure Dropbox_UploadFileByURL(FunctionParameters)
Path = "/New/url_doc.docx";
Token = FunctionParameters["Dropbox_Token"];
URL = FunctionParameters["Document"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("url", URL);
Options.Insert("path", Path);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("dropbox", "UploadFileByURL", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Dropbox", "UploadFileByURL", , FunctionParameters);
EndProcedure
Procedure Dropbox_GetUploadStatusByURL(FunctionParameters)
Token = FunctionParameters["Dropbox_Token"];
WorkID = FunctionParameters["Dropbox_Job"];
Status = "in_progress";
While Status = "in_progress" Do
Result = OPI_Dropbox.GetUploadStatusByURL(Token, WorkID);
Status = Result[".tag"];
OPI_Tools.Pause(5);
OPI_TestDataRetrieval.Process(Result, "Dropbox", "GetUploadStatusByURL", "Progress"); // SKIP
EndDo;
// END
OPI_TestDataRetrieval.Process(Result, "Dropbox", "GetUploadStatusByURL");
Token = FunctionParameters["Dropbox_Token"];
Path = "/New/url_doc.docx";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("path", Path);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("dropbox", "DeleteObject", Options);
OPI_TestDataRetrieval.Process(Result, "Dropbox", "GetUploadStatusByURL", "Deletion", Path);
EndProcedure
Procedure Dropbox_DeleteObject(FunctionParameters)
Path = "/New/pic.png";
Token = FunctionParameters["Dropbox_Token"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("path", Path);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("dropbox", "DeleteObject", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Dropbox", "DeleteObject", , Path);
EndProcedure
Procedure Dropbox_CopyObject(FunctionParameters)
Original = "/New/pic.png";
Copy = "/New/pic_copy.png";
Token = FunctionParameters["Dropbox_Token"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("from", Original);
Options.Insert("to", Copy);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("dropbox", "CopyObject", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Dropbox", "CopyObject", , Copy);
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("path", Copy);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("dropbox", "DeleteObject", Options);
OPI_TestDataRetrieval.Process(Result, "Dropbox", "CopyObject", "Deletion", Copy);
EndProcedure
Procedure Dropbox_MoveObject(FunctionParameters)
OriginalPath = "/New/pic.png";
TargetPath = "/pic.png";
Token = FunctionParameters["Dropbox_Token"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("from", OriginalPath);
Options.Insert("to", TargetPath);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("dropbox", "MoveObject", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Dropbox", "MoveObject", , TargetPath);
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("from", TargetPath);
Options.Insert("to", OriginalPath);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("dropbox", "MoveObject", Options);
OPI_TestDataRetrieval.Process(Result, "Dropbox", "MoveObject", "Deletion", OriginalPath);
EndProcedure
Procedure Dropbox_CreateFolder(FunctionParameters)
Token = FunctionParameters["Dropbox_Token"];
Path = "/New catalog";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("path", Path);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("dropbox", "CreateFolder", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Dropbox", "CreateFolder", , Path);
OPI_Dropbox.DeleteObject(Token, Path);
EndProcedure
Procedure Dropbox_DownloadFile(FunctionParameters)
Token = FunctionParameters["Dropbox_Token"];
Path = "/New/pic.png";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("path", Path);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("dropbox", "DownloadFile", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Dropbox", "DownloadFile");
EndProcedure
Procedure Dropbox_DownloadFolder(FunctionParameters)
Token = FunctionParameters["Dropbox_Token"];
Path = "/New";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("path", Path);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("dropbox", "DownloadFolder", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Dropbox", "DownloadFolder");
EndProcedure
Procedure Dropbox_GetListOfFolderFiles(FunctionParameters)
Path = "/New";
Token = FunctionParameters["Dropbox_Token"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("path", Path);
Options.Insert("detail", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("dropbox", "GetListOfFolderFiles", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Dropbox", "GetListOfFolderFiles");
EndProcedure
Procedure Dropbox_GetObjectVersionList(FunctionParameters)
Token = FunctionParameters["Dropbox_Token"];
Path = "/New/pic.png";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("path", Path);
Options.Insert("amount", 1);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("dropbox", "GetObjectVersionList", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Dropbox", "GetObjectVersionList", , FunctionParameters);
EndProcedure
Procedure Dropbox_RestoreObjectToVersion(FunctionParameters)
Version = FunctionParameters["Dropbox_FileRevision"];
Token = FunctionParameters["Dropbox_Token"];
Path = "/New/pic.png";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("path", Path);
Options.Insert("rev", Version);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("dropbox", "RestoreObjectToVersion", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Dropbox", "RestoreObjectToVersion", , Path);
EndProcedure
Procedure Dropbox_GetTagList(FunctionParameters)
Token = FunctionParameters["Dropbox_Token"];
PathsArray = New Array;
PathsArray.Add("/New/Dogs.mp3");
PathsArray.Add("/New/mydoc.docx");
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("paths", PathsArray);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("dropbox", "GetTagList", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Dropbox", "GetTagList", , FunctionParameters, PathsArray);
EndProcedure
Procedure Dropbox_AddTag(FunctionParameters)
Tag = "Important";
Token = FunctionParameters["Dropbox_Token"];
Path = "/New/mydoc.docx";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("path", Path);
Options.Insert("tag", Tag);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("dropbox", "AddTag", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Dropbox", "AddTag");
EndProcedure
Procedure Dropbox_DeleteTag(FunctionParameters)
Tag = "Important";
Token = FunctionParameters["Dropbox_Token"];
Path = "/New/mydoc.docx";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("path", Path);
Options.Insert("tag", Tag);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("dropbox", "DeleteTag", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Dropbox", "DeleteTag");
EndProcedure
Procedure Dropbox_GetAccountInformation(FunctionParameters)
Token = FunctionParameters["Dropbox_Token"];
Options = New Structure;
Options.Insert("token", Token);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("dropbox", "GetAccountInformation", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Dropbox", "GetAccountInformation");
AccountID = Result["account_id"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("account", AccountID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("dropbox", "GetAccountInformation", Options);
OPI_TestDataRetrieval.Process(Result, "Dropbox", "GetAccountInformation", "By ID");
EndProcedure
Procedure Dropbox_GetSpaceUsageData(FunctionParameters)
Token = FunctionParameters["Dropbox_Token"];
Options = New Structure;
Options.Insert("token", Token);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("dropbox", "GetSpaceUsageData", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Dropbox", "GetSpaceUsageData");
EndProcedure
Procedure Dropbox_AddUsersToFile(FunctionParameters)
Token = FunctionParameters["Dropbox_Token"];
Email = FunctionParameters["Dropbox_OtherUser"];
File = FunctionParameters["Dropbox_FileID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("fileid", File);
Options.Insert("emails", Email);
Options.Insert("readonly", Ложь);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("dropbox", "AddUsersToFile", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Dropbox", "AddUsersToFile", , Email, False);
Mails = New Array;
Mails.Add(Email);
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("fileid", File);
Options.Insert("emails", Mails);
Options.Insert("readonly", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("dropbox", "AddUsersToFile", Options);
OPI_TestDataRetrieval.Process(Result, "Dropbox", "AddUsersToFile", , Email, True);
EndProcedure
Procedure Dropbox_PublishFolder(FunctionParameters)
Token = FunctionParameters["Dropbox_Token"];
Path = "/New";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("path", Path);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("dropbox", "PublishFolder", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Dropbox", "PublishFolder", , FunctionParameters);
EndProcedure
Procedure Dropbox_CancelFolderPublication(FunctionParameters)
Token = FunctionParameters["Dropbox_Token"];
Folder = FunctionParameters["Dropbox_SharedFolder"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("folder", Folder);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("dropbox", "CancelFolderPublication", Options);
OPI_TestDataRetrieval.Process(Result, "Dropbox", "CancelFolderPublication"); // SKIP
CurrentStatus = "in_progress";
JobID = Result["async_job_id"];
While CurrentStatus = "in_progress" Do
Result = OPI_Dropbox.GetAsynchronousChangeStatus(Token, JobID);
CurrentStatus = Result[".tag"];
OPI_Tools.Pause(3);
EndDo;
// END
OPI_TestDataRetrieval.Process(Result, "Dropbox", "CancelFolderPublication", "Ending", FunctionParameters, JobID);
EndProcedure
Procedure Dropbox_GetAsynchronousChangeStatus(FunctionParameters)
Token = FunctionParameters["Dropbox_Token"];
JobID = FunctionParameters["Dropbox_NewJobID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("job", JobID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("dropbox", "GetAsynchronousChangeStatus", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Dropbox", "GetAsynchronousChangeStatus");
EndProcedure
Procedure Dropbox_AddUsersToFolder(FunctionParameters)
Token = FunctionParameters["Dropbox_Token"];
Email = FunctionParameters["Dropbox_OtherUser"];
Folder = FunctionParameters["Dropbox_SharedFolder"]; // shared_folder_id
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("folder", Folder);
Options.Insert("emails", Email);
Options.Insert("readonly", Ложь);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("dropbox", "AddUsersToFolder", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Dropbox", "AddUsersToFolder");
Mails = New Array;
Mails.Add(Email);
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("folder", Folder);
Options.Insert("emails", Mails);
Options.Insert("readonly", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("dropbox", "AddUsersToFolder", Options);
OPI_TestDataRetrieval.Process(Result, "Dropbox", "AddUsersToFolder", "Additional");
EndProcedure
Procedure Dropbox_CancelFilePublication(FunctionParameters)
Token = FunctionParameters["Dropbox_Token"];
File = FunctionParameters["Dropbox_FileID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("fileid", File);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("dropbox", "CancelFilePublication", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Dropbox", "CancelFilePublication");
EndProcedure
#EndRegion // Dropbox
#EndRegion // AtomicTests
#EndRegion // Private
#Region Alternate
Procedure ДропБокс_ПолучитьОбновитьТокен() Export
DropboxAPI_GetUpdateToken();
EndProcedure
Procedure ДропБокс_ЗагрузитьФайл() Export
DropboxAPI_UploadFile();
EndProcedure
Procedure ДропБокс_СоздатьКаталог() Export
DropboxAPI_CreateFolder();
EndProcedure
Procedure ДропБокс_ПолучитьСписокФайловПапки() Export
DropboxAPI_GetFolderFileList();
EndProcedure
Procedure ДропБокс_ЗагрузитьФайлПоURL() Export
DropboxAPI_UploadFileByURL();
EndProcedure
Procedure ДропБокс_СоздатьУдалитьТег() Export
DropboxAPI_CreateDeleteTag();
EndProcedure
Procedure ДропБокс_ПолучитьАккаунт() Export
DropboxAPI_GetAccount();
EndProcedure
Procedure ДропБокс_РаботаСДоступами() Export
DropboxAPI_AccessManagement();
EndProcedure
#EndRegion
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -1,3 +1,5 @@
// OneScript: ./OInt/tests/Modules/OPItc_GoogleCalendar.os
// MIT License
// Copyright (c) 2023-2026 Anton Tsitavets
@@ -9,7 +11,7 @@
// 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
// 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
@@ -22,6 +24,8 @@
// https://github.com/Bayselonarrend/OpenIntegrations
// Test suite for YAxUnit
// BSLLS:Typo-off
// BSLLS:LatinAndCyrillicSymbolInWord-off
// BSLLS:IncorrectLineBreak-off
@@ -63,6 +67,565 @@
//@skip-check missing-temporary-file-deletion
//@skip-check module-unused-method
// #Use oint
// #Use asserts
// #Use "internal"
//#Use "../../tools/main"
//#Use "../../tools/http"
//#Use "../../api"
//#Use asserts
//#Use "internal"
// For YAxUnit
Procedure ИсполняемыеСценарии() Export
OPI_TestDataRetrieval.FormYAXTests("GoogleCalendar");
EndProcedure
// For Asserts
Function ПолучитьСписокТестов(UnitTesting) Export
Return OPI_TestDataRetrieval.FormAssertsTests("GoogleCalendar");
EndFunction
#Region Internal
#Region RunnableTests
#Region GoogleCalendar
Procedure GC_Authorization() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Google_ClientID" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Google_ClientSecret", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Google_Code" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Google_Refresh" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Google_ServiceData" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Access_Token" , TestParameters);
GoogleCalendar_FormCodeRetrievalLink(TestParameters);
GoogleCalendar_GetTokenByCode(TestParameters);
GoogleCalendar_RefreshToken(TestParameters);
GoogleCalendar_GetServiceAccountToken(TestParameters);
EndProcedure
Procedure GC_GetCalendarList() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Google_Token", TestParameters);
GoogleCalendar_GetCalendarList(TestParameters);
EndProcedure
Procedure GC_CreateDeleteCalendar() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Google_Token", TestParameters);
GoogleCalendar_CreateCalendar(TestParameters);
GoogleCalendar_EditCalendarMetadata(TestParameters);
GoogleCalendar_GetCalendarMetadata(TestParameters);
GoogleCalendar_AddCalendarToList(TestParameters);
GoogleCalendar_EditListCalendar(TestParameters);
GoogleCalendar_GetListCalendar(TestParameters);
GoogleCalendar_ClearMainCalendar(TestParameters);
// !DISABLED! GoogleCalendar_DeleteCalendarFromList(TestParameters);
GoogleCalendar_DeleteCalendar(TestParameters);
OPI_Tools.Pause(5);
EndProcedure
Procedure GC_CreateDeleteEvent() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Google_Token" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Google_NewCalendarID", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Google_CalendarID" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Picture" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Picture2" , TestParameters);
GoogleCalendar_CreateCalendar(TestParameters);
GoogleCalendar_CreateEvent(TestParameters);
GoogleCalendar_EditEvent(TestParameters);
GoogleCalendar_GetEvent(TestParameters);
GoogleCalendar_MoveEvent(TestParameters);
GoogleCalendar_GetEventList(TestParameters);
GoogleCalendar_GetEventDescription(TestParameters);
GoogleCalendar_DeleteEvent(TestParameters);
GoogleCalendar_DeleteCalendar(TestParameters);
OPI_Tools.Pause(5);
EndProcedure
#EndRegion // GoogleCalendar
#EndRegion // RunnableTests
#EndRegion // Internal
#Region Private
#Region AtomicTests
#Region GoogleCalendar
Procedure GoogleCalendar_FormCodeRetrievalLink(FunctionParameters)
ClientID = FunctionParameters["Google_ClientID"];
Options = New Structure;
Options.Insert("id", ClientID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gcalendar", "FormCodeRetrievalLink", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleCalendar", "FormCodeRetrievalLink");
EndProcedure
Procedure GoogleCalendar_GetTokenByCode(FunctionParameters)
ClientID = FunctionParameters["Google_ClientID"];
ClientSecret = FunctionParameters["Google_ClientSecret"];
Code = FunctionParameters["Google_Code"];
Options = New Structure;
Options.Insert("id", ClientID);
Options.Insert("secret", ClientSecret);
Options.Insert("code", Code);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gcalendar", "GetTokenByCode", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleCalendar", "GetTokenByCode");
EndProcedure
Procedure GoogleCalendar_RefreshToken(FunctionParameters)
ClientID = FunctionParameters["Google_ClientID"];
ClientSecret = FunctionParameters["Google_ClientSecret"];
RefreshToken = FunctionParameters["Google_Refresh"];
Options = New Structure;
Options.Insert("id", ClientID);
Options.Insert("secret", ClientSecret);
Options.Insert("refresh", RefreshToken);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gcalendar", "RefreshToken", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleCalendar", "RefreshToken");
EndProcedure
Procedure GoogleCalendar_GetServiceAccountToken(FunctionParameters)
Data = FunctionParameters["Google_ServiceData"]; // URL, binary Data, file or collection
Token = FunctionParameters["Access_Token"]; // SKIP
Data = OPI_HTTPRequests // SKIP
.NewRequest() // SKIP
.Initialize(Data) // SKIP
.AddBearerAuthorization(Token) // SKIP
.ProcessRequest("GET") // SKIP
.ReturnResponseAsBinaryData(); // SKIP
Scope = New Array;
Scope.Add("https://www.googleapis.com/auth/calendar");
Scope.Add("https://www.googleapis.com/auth/drive");
Scope.Add("https://www.googleapis.com/auth/spreadsheets");
Options = New Structure;
Options.Insert("auth", Data);
Options.Insert("scope", Scope);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gcalendar", "GetServiceAccountToken", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleCalendar", "GetServiceAccountToken");
EndProcedure
Procedure GoogleCalendar_GetCalendarList(FunctionParameters)
Token = FunctionParameters["Google_Token"];
Options = New Structure;
Options.Insert("token", Token);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gcalendar", "GetCalendarList", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleCalendar", "GetCalendarList");
EndProcedure
Procedure GoogleCalendar_CreateCalendar(FunctionParameters)
Token = FunctionParameters["Google_Token"];
Name = "TestCalendar";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("title", Name);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gcalendar", "CreateCalendar", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleCalendar", "CreateCalendar", , FunctionParameters, Name);
EndProcedure
Procedure GoogleCalendar_EditCalendarMetadata(FunctionParameters)
Token = FunctionParameters["Google_Token"];
Calendar = FunctionParameters["Google_NewCalendarID"];
Name = "New name";
Description = "New description";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("calendar", Calendar);
Options.Insert("title", Name);
Options.Insert("description", Description);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gcalendar", "EditCalendarMetadata", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleCalendar", "EditCalendarMetadata", , Name, Description);
EndProcedure
Procedure GoogleCalendar_GetCalendarMetadata(FunctionParameters)
Token = FunctionParameters["Google_Token"];
Calendar = FunctionParameters["Google_NewCalendarID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("calendar", Calendar);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gcalendar", "GetCalendarMetadata", Options);
// END
Name = "New name";
Description = "New description";
OPI_TestDataRetrieval.Process(Result, "GoogleCalendar", "GetCalendarMetadata", , Name, Description);
EndProcedure
Procedure GoogleCalendar_AddCalendarToList(FunctionParameters)
Token = FunctionParameters["Google_Token"];
Calendar = FunctionParameters["Google_NewCalendarID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("calendar", Calendar);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gcalendar", "AddCalendarToList", Options);
// END
Name = "New name";
Description = "New description";
OPI_TestDataRetrieval.Process(Result, "GoogleCalendar", "AddCalendarToList", , Name, Description);
EndProcedure
Procedure GoogleCalendar_EditListCalendar(FunctionParameters)
Token = FunctionParameters["Google_Token"];
Calendar = FunctionParameters["Google_NewCalendarID"];
PrimaryColor = "#000000";
SecondaryColor = "#ffd800";
Hidden = False;
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("calendar", Calendar);
Options.Insert("primary", PrimaryColor);
Options.Insert("secondary", SecondaryColor);
Options.Insert("hidden", Hidden);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gcalendar", "EditListCalendar", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleCalendar", "EditListCalendar", , PrimaryColor, SecondaryColor);
EndProcedure
Procedure GoogleCalendar_GetListCalendar(FunctionParameters)
Token = FunctionParameters["Google_Token"];
Calendar = FunctionParameters["Google_NewCalendarID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("calendar", Calendar);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gcalendar", "GetListCalendar", Options);
// END
PrimaryColor = "#000000";
SecondaryColor = "#ffd800";
OPI_TestDataRetrieval.Process(Result, "GoogleCalendar", "GetListCalendar", , PrimaryColor, SecondaryColor);
EndProcedure
Procedure GoogleCalendar_ClearMainCalendar(FunctionParameters)
Token = FunctionParameters["Google_Token"];
Options = New Structure;
Options.Insert("token", Token);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gcalendar", "ClearMainCalendar", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleCalendar", "ClearMainCalendar");
EndProcedure
Procedure GoogleCalendar_DeleteCalendarFromList(FunctionParameters)
Token = FunctionParameters["Google_Token"];
Calendar = FunctionParameters["Google_NewCalendarID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("calendar", Calendar);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gcalendar", "DeleteCalendarFromList", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleCalendar", "DeleteCalendarFromList");
EndProcedure
Procedure GoogleCalendar_DeleteCalendar(FunctionParameters)
Token = FunctionParameters["Google_Token"];
Calendar = FunctionParameters["Google_NewCalendarID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("calendar", Calendar);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gcalendar", "DeleteCalendar", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleCalendar", "DeleteCalendar");
EndProcedure
Procedure GoogleCalendar_CreateEvent(FunctionParameters)
CurrentDate = OPI_Tools.GetCurrentDate();
Token = FunctionParameters["Google_Token"];
Calendar = FunctionParameters["Google_NewCalendarID"];
Name = "New event";
Description = "TestEventDescription";
Hour = 3600;
Image1 = FunctionParameters["Picture"]; // URL, Binary or File path
Image2 = FunctionParameters["Picture2"]; // URL, Binary or File path
Attachments = New Map;
Attachments.Insert("Image1", Image1);
Attachments.Insert("Image2", Image2);
EventDescription = New Map;
EventDescription.Insert("Description" , Description);
EventDescription.Insert("Title" , Name);
EventDescription.Insert("Venue" , "InOffice");
EventDescription.Insert("StartDate" , CurrentDate);
EventDescription.Insert("EndDate" , EventDescription["StartDate"] + Hour);
EventDescription.Insert("ArrayOfAttachmentURLs", Attachments);
EventDescription.Insert("SendNotifications" , True);
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("calendar", Calendar);
Options.Insert("props", EventDescription);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gcalendar", "CreateEvent", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleCalendar", "CreateEvent", , FunctionParameters, Name, Description);
EndProcedure
Procedure GoogleCalendar_EditEvent(FunctionParameters)
Token = FunctionParameters["Google_Token"];
Calendar = FunctionParameters["Google_NewCalendarID"];
Event = FunctionParameters["Google_EventID"];
Description = "New event description";
EventDescription = New Map;
EventDescription.Insert("Description", Description);
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("calendar", Calendar);
Options.Insert("props", EventDescription);
Options.Insert("event", Event);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gcalendar", "EditEvent", Options);
// END
Name = "New event";
OPI_TestDataRetrieval.Process(Result, "GoogleCalendar", "EditEvent", , Name, Description);
EndProcedure
Procedure GoogleCalendar_GetEvent(FunctionParameters)
Token = FunctionParameters["Google_Token"];
Calendar = FunctionParameters["Google_NewCalendarID"];
Event = FunctionParameters["Google_EventID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("calendar", Calendar);
Options.Insert("event", Event);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gcalendar", "GetEvent", Options);
// END
Name = "New event";
Description = "New event description";
OPI_TestDataRetrieval.Process(Result, "GoogleCalendar", "GetEvent", , Name, Description);
EndProcedure
Procedure GoogleCalendar_MoveEvent(FunctionParameters)
Token = FunctionParameters["Google_Token"];
Event = FunctionParameters["Google_EventID"];
SourceCalendar = FunctionParameters["Google_NewCalendarID"];
TargetCalendar = FunctionParameters["Google_CalendarID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("from", SourceCalendar);
Options.Insert("to", TargetCalendar);
Options.Insert("event", Event);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gcalendar", "MoveEvent", Options);
// END
Name = "New event";
Description = "New event description";
OPI_TestDataRetrieval.Process(Result, "GoogleCalendar", "MoveEvent", , Name, Description);
OPI_GoogleCalendar.MoveEvent(Token, TargetCalendar, SourceCalendar, Event);
EndProcedure
Procedure GoogleCalendar_DeleteEvent(FunctionParameters)
Token = FunctionParameters["Google_Token"];
Calendar = FunctionParameters["Google_NewCalendarID"];
Event = FunctionParameters["Google_EventID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("calendar", Calendar);
Options.Insert("event", Event);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gcalendar", "DeleteEvent", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleCalendar", "DeleteEvent");
EndProcedure
Procedure GoogleCalendar_GetEventList(FunctionParameters)
Token = FunctionParameters["Google_Token"];
Calendar = FunctionParameters["Google_NewCalendarID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("calendar", Calendar);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gcalendar", "GetEventList", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleCalendar", "GetEventList");
EndProcedure
Procedure GoogleCalendar_GetEventDescription(FunctionParameters)
Clear = False;
Options = New Structure;
Options.Insert("empty", Clear);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gcalendar", "GetEventDescription", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleCalendar", "GetEventDescription");
EndProcedure
#EndRegion // GoogleCalendar
#EndRegion // AtomicTests
#EndRegion // Private
#Region Alternate
Procedure ГК_Авторизация() Export
GC_Authorization();
EndProcedure
Procedure ГК_ПолучитьСписокКалендарей() Export
GC_GetCalendarList();
EndProcedure
Procedure ГК_СоздатьУдалитьКалендарь() Export
GC_CreateDeleteCalendar();
EndProcedure
Procedure ГК_СоздатьУдалитьСобытие() Export
GC_CreateDeleteEvent();
EndProcedure
#EndRegion
@@ -1,3 +1,5 @@
// OneScript: ./OInt/tests/Modules/OPItc_GoogleDrive.os
// MIT License
// Copyright (c) 2023-2026 Anton Tsitavets
@@ -9,7 +11,7 @@
// 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
// 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
@@ -22,6 +24,8 @@
// https://github.com/Bayselonarrend/OpenIntegrations
// Test suite for YAxUnit
// BSLLS:Typo-off
// BSLLS:LatinAndCyrillicSymbolInWord-off
// BSLLS:IncorrectLineBreak-off
@@ -63,6 +67,543 @@
//@skip-check missing-temporary-file-deletion
//@skip-check module-unused-method
// #Use oint
// #Use asserts
// #Use "internal"
//#Use "../../tools/main"
//#Use "../../tools/http"
//#Use "../../api"
//#Use asserts
//#Use "internal"
// For YAxUnit
Procedure ИсполняемыеСценарии() Export
OPI_TestDataRetrieval.FormYAXTests("GoogleDrive");
EndProcedure
// For Asserts
Function ПолучитьСписокТестов(UnitTesting) Export
Return OPI_TestDataRetrieval.FormAssertsTests("GoogleDrive");
EndFunction
#Region Internal
#Region RunnableTests
#Region GoogleDrive
Procedure GD_Authorization() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Google_ClientID" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Google_ClientSecret", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Google_Code" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Google_Refresh" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Google_ServiceData" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Access_Token" , TestParameters);
GoogleDrive_FormCodeRetrievalLink(TestParameters);
GoogleDrive_GetTokenByCode(TestParameters);
GoogleDrive_RefreshToken(TestParameters);
GoogleDrive_GetServiceAccountToken(TestParameters);
EndProcedure
Procedure GD_GetCatalogList() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Google_Token", TestParameters);
GoogleDrive_GetDirectoriesList(TestParameters);
GoogleDrive_GetObjectInformation(TestParameters);
EndProcedure
Procedure GD_UploadDeleteFile() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Google_Token", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("GD_Catalog" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Picture" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Picture2" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Big" , TestParameters);
TestParameters.Insert("ArrayOfDeletions", New Array);
GoogleDrive_UploadFile(TestParameters);
GoogleDrive_CopyObject(TestParameters);
GoogleDrive_DownloadFile(TestParameters);
GoogleDrive_UpdateFile(TestParameters);
GoogleDrive_GetFilesList(TestParameters);
GoogleDrive_DeleteObject(TestParameters);
GoogleDrive_GetFileDescription(TestParameters);
OPI_Tools.Pause(5);
EndProcedure
Procedure GD_CreateDeleteComment() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Google_Token", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("GD_Catalog" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Picture" , TestParameters);
TestParameters.Insert("ArrayOfDeletions", New Array);
GoogleDrive_UploadFile(TestParameters);
GoogleDrive_CreateComment(TestParameters);
GoogleDrive_GetComment(TestParameters);
GoogleDrive_GetCommentList(TestParameters);
GoogleDrive_DeleteComment(TestParameters);
GoogleDrive_DeleteObject(TestParameters);
EndProcedure
Procedure GD_CreateCatalog() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Google_Token", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("GD_Catalog" , TestParameters);
GoogleDrive_CreateFolder(TestParameters);
EndProcedure
#EndRegion // GoogleDrive
#EndRegion // RunnableTests
#EndRegion // Internal
#Region Private
#Region AtomicTests
#Region GoogleDrive
Procedure GoogleDrive_FormCodeRetrievalLink(FunctionParameters)
ClientID = FunctionParameters["Google_ClientID"];
Options = New Structure;
Options.Insert("id", ClientID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gdrive", "FormCodeRetrievalLink", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleDrive", "FormCodeRetrievalLink");
EndProcedure
Procedure GoogleDrive_GetTokenByCode(FunctionParameters)
ClientID = FunctionParameters["Google_ClientID"];
ClientSecret = FunctionParameters["Google_ClientSecret"];
Code = FunctionParameters["Google_Code"];
Options = New Structure;
Options.Insert("id", ClientID);
Options.Insert("secret", ClientSecret);
Options.Insert("code", Code);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gdrive", "GetTokenByCode", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleDrive", "GetTokenByCode");
EndProcedure
Procedure GoogleDrive_RefreshToken(FunctionParameters)
ClientID = FunctionParameters["Google_ClientID"];
ClientSecret = FunctionParameters["Google_ClientSecret"];
RefreshToken = FunctionParameters["Google_Refresh"];
Options = New Structure;
Options.Insert("id", ClientID);
Options.Insert("secret", ClientSecret);
Options.Insert("refresh", RefreshToken);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gdrive", "RefreshToken", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleDrive", "RefreshToken");
EndProcedure
Procedure GoogleDrive_GetServiceAccountToken(FunctionParameters)
Data = FunctionParameters["Google_ServiceData"]; // URL, binary Data, file or collection
Token = FunctionParameters["Access_Token"]; // SKIP
Data = OPI_HTTPRequests // SKIP
.NewRequest() // SKIP
.Initialize(Data) // SKIP
.AddBearerAuthorization(Token) // SKIP
.ProcessRequest("GET") // SKIP
.ReturnResponseAsBinaryData(); // SKIP
Scope = New Array;
Scope.Add("https://www.googleapis.com/auth/calendar");
Scope.Add("https://www.googleapis.com/auth/drive");
Scope.Add("https://www.googleapis.com/auth/spreadsheets");
Options = New Structure;
Options.Insert("auth", Data);
Options.Insert("scope", Scope);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gdrive", "GetServiceAccountToken", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleDrive", "GetServiceAccountToken");
EndProcedure
Procedure GoogleDrive_GetDirectoriesList(FunctionParameters)
Name = "TestFolder";
Token = FunctionParameters["Google_Token"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("query", Name);
Options.Insert("depth", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gdrive", "GetDirectoriesList", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleDrive", "GetDirectoriesList", , FunctionParameters);
EndProcedure
Procedure GoogleDrive_GetObjectInformation(FunctionParameters)
Token = FunctionParameters["Google_Token"];
Identifier = FunctionParameters["GD_Catalog"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("object", Identifier);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gdrive", "GetObjectInformation", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleDrive", "GetObjectInformation");
EndProcedure
Procedure GoogleDrive_UploadFile(FunctionParameters)
Token = FunctionParameters["Google_Token"];
Directory = FunctionParameters["GD_Catalog"];
Image = FunctionParameters["Picture"]; // URL, Binary Data or File path
Clear = False;
Options = New Structure;
Options.Insert("empty", Clear);
Description = OPI_TestDataRetrieval.ExecuteTestCLI("gdrive", "GetFileDescription", Options);
Description.Insert("Parent", Directory);
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("file", Image);
Options.Insert("props", Description);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gdrive", "UploadFile", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleDrive", "UploadFile", , FunctionParameters, Description);
If Not OPI_Tools.IsOneScript() And FunctionParameters.Property("Big") Then
BigFile = FunctionParameters["Big"];
Description.Insert("Name", "big.rar");
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("file", BigFile);
Options.Insert("props", Description);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gdrive", "UploadFile", Options);
OPI_TestDataRetrieval.Process(Result, "GoogleDrive", "UploadFile", "Big", FunctionParameters, Description);
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("object", Result);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gdrive", "DownloadFile", Options);
OPI_TestDataRetrieval.Process(Result, "GoogleDrive", "UploadFile", "Check", FunctionParameters, Description);
EndIf;
EndProcedure
Procedure GoogleDrive_CopyObject(FunctionParameters)
Token = FunctionParameters["Google_Token"];
Identifier = FunctionParameters["GD_File"];
NewName = "CopiedFile.jpeg";
NewParent = "root";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("object", Identifier);
Options.Insert("title", NewName);
Options.Insert("catalog", NewParent);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gdrive", "CopyObject", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleDrive", "CopyObject", , FunctionParameters, NewName);
EndProcedure
Procedure GoogleDrive_DownloadFile(FunctionParameters)
Token = FunctionParameters["Google_Token"];
Identifier = FunctionParameters["GD_File"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("object", Identifier);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gdrive", "DownloadFile", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleDrive", "DownloadFile", , FunctionParameters);
EndProcedure
Procedure GoogleDrive_UpdateFile(FunctionParameters)
Token = FunctionParameters["Google_Token"];
NewName = "UpdatedFile.jpg";
Identifier = FunctionParameters["GD_File"];
File = FunctionParameters["Picture2"]; // URL, Binary Data or File path
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("object", Identifier);
Options.Insert("file", File);
Options.Insert("title", NewName);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gdrive", "UpdateFile", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleDrive", "UpdateFile", , NewName);
EndProcedure
Procedure GoogleDrive_GetFilesList(FunctionParameters)
Token = FunctionParameters["Google_Token"];
Directory = "root";
NameContains = "data";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("query", NameContains);
Options.Insert("catalog", Directory);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gdrive", "GetFilesList", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleDrive", "GetFilesList");
EndProcedure
Procedure GoogleDrive_DeleteObject(FunctionParameters)
Token = FunctionParameters["Google_Token"];
Identifier = FunctionParameters["GD_File"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("object", Identifier);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gdrive", "DeleteObject", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleDrive", "DeleteObject");
For Each Deletable In FunctionParameters["ArrayOfDeletions"] Do
Result = OPI_GoogleDrive.DeleteObject(Token, Deletable);
OPI_TestDataRetrieval.Process(Result, "GoogleDrive", "DeleteObject", "Additional");
OPI_Tools.Pause(2);
EndDo;
EndProcedure
Procedure GoogleDrive_GetFileDescription(FunctionParameters)
Options = New Structure;
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gdrive", "GetFileDescription", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleDrive", "GetFileDescription");
EndProcedure
Procedure GoogleDrive_CreateComment(FunctionParameters)
Token = FunctionParameters["Google_Token"];
Identifier = FunctionParameters["GD_File"];
Comment = "Comment text";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("object", Identifier);
Options.Insert("text", Comment);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gdrive", "CreateComment", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleDrive", "CreateComment", , FunctionParameters, Comment);
EndProcedure
Procedure GoogleDrive_GetComment(FunctionParameters)
Token = FunctionParameters["Google_Token"];
Identifier = FunctionParameters["GD_File"];
CommentID = FunctionParameters["GD_Comment"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("object", Identifier);
Options.Insert("comment", CommentID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gdrive", "GetComment", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleDrive", "GetComment");
EndProcedure
Procedure GoogleDrive_GetCommentList(FunctionParameters)
Token = FunctionParameters["Google_Token"];
Identifier = FunctionParameters["GD_File"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("object", Identifier);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gdrive", "GetCommentList", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleDrive", "GetCommentList");
EndProcedure
Procedure GoogleDrive_DeleteComment(FunctionParameters)
Token = FunctionParameters["Google_Token"];
Identifier = FunctionParameters["GD_File"];
CommentID = FunctionParameters["GD_Comment"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("object", Identifier);
Options.Insert("comment", CommentID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gdrive", "DeleteComment", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleDrive", "DeleteComment");
EndProcedure
Procedure GoogleDrive_CreateFolder(FunctionParameters)
Token = FunctionParameters["Google_Token"];
Directory = FunctionParameters["GD_Catalog"];
Name = "TestFolder";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("title", Name);
Options.Insert("catalog", Directory);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gdrive", "CreateFolder", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleDrive", "CreateFolder");
CatalogID = Result["id"];
OPI_GoogleDrive.DeleteObject(Token, CatalogID);
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("title", Name);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gdrive", "CreateFolder", Options);
OPI_TestDataRetrieval.Process(Result, "GoogleDrive", "CreateFolder", "Root");
CatalogID = Result["id"];
OPI_GoogleDrive.DeleteObject(Token, CatalogID);
EndProcedure
#EndRegion // GoogleDrive
#EndRegion // AtomicTests
#EndRegion // Private
#Region Alternate
Procedure ГД_Авторизация() Export
GD_Authorization();
EndProcedure
Procedure ГД_ПолучитьСписокКаталогов() Export
GD_GetCatalogList();
EndProcedure
Procedure ГД_ЗагрузитьУдалитьФайл() Export
GD_UploadDeleteFile();
EndProcedure
Procedure ГД_СоздатьУдалитьКомментарий() Export
GD_CreateDeleteComment();
EndProcedure
Procedure ГД_СоздатьКаталог() Export
GD_CreateCatalog();
EndProcedure
#EndRegion
@@ -1,3 +1,5 @@
// OneScript: ./OInt/tests/Modules/OPItc_GoogleSheets.os
// MIT License
// Copyright (c) 2023-2026 Anton Tsitavets
@@ -9,7 +11,7 @@
// 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
// 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
@@ -22,6 +24,8 @@
// https://github.com/Bayselonarrend/OpenIntegrations
// Test suite for YAxUnit
// BSLLS:Typo-off
// BSLLS:LatinAndCyrillicSymbolInWord-off
// BSLLS:IncorrectLineBreak-off
@@ -63,6 +67,428 @@
//@skip-check missing-temporary-file-deletion
//@skip-check module-unused-method
// #Use oint
// #Use asserts
// #Use "internal"
//#Use "../../tools/main"
//#Use "../../tools/http"
//#Use "../../api"
//#Use asserts
//#Use "internal"
// For YAxUnit
Procedure ИсполняемыеСценарии() Export
OPI_TestDataRetrieval.FormYAXTests("GoogleSheets");
EndProcedure
// For Asserts
Function ПолучитьСписокТестов(UnitTesting) Export
Return OPI_TestDataRetrieval.FormAssertsTests("GoogleSheets");
EndFunction
#Region Internal
#Region RunnableTests
#Region GoogleSheets
Procedure GT_Authorization() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Google_ClientID" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Google_ClientSecret", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Google_Code" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Google_Refresh" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Google_ServiceData" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Access_Token" , TestParameters);
GoogleSheets_FormCodeRetrievalLink(TestParameters);
GoogleSheets_GetTokenByCode(TestParameters);
GoogleSheets_RefreshToken(TestParameters);
GoogleSheets_GetServiceAccountToken(TestParameters);
EndProcedure
Procedure GT_CreateTable() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Google_Token", TestParameters);
GoogleSheets_CreateSpreadsheet(TestParameters);
GoogleSheets_GetSpreadsheet(TestParameters);
GoogleSheets_CopySheet(TestParameters);
GoogleSheets_AddSheet(TestParameters);
GoogleSheets_DeleteSheet(TestParameters);
GoogleSheets_EditSpreadsheetTitle(TestParameters);
GoogleSheets_GetTable(TestParameters);
OPI_GoogleDrive.DeleteObject(TestParameters["Google_Token"], TestParameters["GS_Spreadsheet"]);
OPI_GoogleDrive.DeleteObject(TestParameters["Google_Token"], TestParameters["GS_Spreadsheet2"]);
EndProcedure
Procedure GT_FillClearCells() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Google_Token", TestParameters);
GoogleSheets_CreateSpreadsheet(TestParameters);
GoogleSheets_SetCellValues(TestParameters);
GoogleSheets_GetCellValues(TestParameters);
GoogleSheets_ClearCells(TestParameters);
OPI_GoogleDrive.DeleteObject(TestParameters["Google_Token"], TestParameters["GS_Spreadsheet"]);
OPI_GoogleDrive.DeleteObject(TestParameters["Google_Token"], TestParameters["GS_Spreadsheet2"]);
EndProcedure
#EndRegion // GoogleSheets
#EndRegion // RunnableTests
#EndRegion // Internal
#Region Private
#Region AtomicTests
#Region GoogleSheets
Procedure GoogleSheets_FormCodeRetrievalLink(FunctionParameters)
ClientID = FunctionParameters["Google_ClientID"];
Options = New Structure;
Options.Insert("id", ClientID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gsheets", "FormCodeRetrievalLink", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleSheets", "FormCodeRetrievalLink");
EndProcedure
Procedure GoogleSheets_GetTokenByCode(FunctionParameters)
ClientID = FunctionParameters["Google_ClientID"];
ClientSecret = FunctionParameters["Google_ClientSecret"];
Code = FunctionParameters["Google_Code"];
Options = New Structure;
Options.Insert("id", ClientID);
Options.Insert("secret", ClientSecret);
Options.Insert("code", Code);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gsheets", "GetTokenByCode", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleSheets", "GetTokenByCode");
EndProcedure
Procedure GoogleSheets_RefreshToken(FunctionParameters)
ClientID = FunctionParameters["Google_ClientID"];
ClientSecret = FunctionParameters["Google_ClientSecret"];
RefreshToken = FunctionParameters["Google_Refresh"];
Options = New Structure;
Options.Insert("id", ClientID);
Options.Insert("secret", ClientSecret);
Options.Insert("refresh", RefreshToken);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gsheets", "RefreshToken", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleSheets", "RefreshToken");
EndProcedure
Procedure GoogleSheets_GetServiceAccountToken(FunctionParameters)
Data = FunctionParameters["Google_ServiceData"]; // URL, binary Data, file or collection
Token = FunctionParameters["Access_Token"]; // SKIP
Data = OPI_HTTPRequests // SKIP
.NewRequest() // SKIP
.Initialize(Data) // SKIP
.AddBearerAuthorization(Token) // SKIP
.ProcessRequest("GET") // SKIP
.ReturnResponseAsBinaryData(); // SKIP
Scope = New Array;
Scope.Add("https://www.googleapis.com/auth/calendar");
Scope.Add("https://www.googleapis.com/auth/drive");
Scope.Add("https://www.googleapis.com/auth/spreadsheets");
Options = New Structure;
Options.Insert("auth", Data);
Options.Insert("scope", Scope);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gsheets", "GetServiceAccountToken", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleSheets", "GetServiceAccountToken");
EndProcedure
Procedure GoogleSheets_CreateSpreadsheet(FunctionParameters)
Token = FunctionParameters["Google_Token"];
Name = "TestTable";
SheetArray = New Array;
SheetArray.Add("Sheet1");
SheetArray.Add("Sheet2");
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("title", Name);
Options.Insert("sheets", SheetArray);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gsheets", "CreateSpreadsheet", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleSheets", "CreateSpreadsheet", , FunctionParameters, Name, SheetArray);
Name = "Test table (new.)";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("title", Name);
Options.Insert("sheets", SheetArray);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gsheets", "CreateSpreadsheet", Options);
OPI_TestDataRetrieval.Process(Result, "GoogleSheets", "CreateSpreadsheet", "Additionally", FunctionParameters, Name);
EndProcedure
Procedure GoogleSheets_GetSpreadsheet(FunctionParameters)
Token = FunctionParameters["Google_Token"];
Identifier = FunctionParameters["GS_Spreadsheet"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("spreadsheet", Identifier);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gsheets", "GetSpreadsheet", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleSheets", "GetSpreadsheet");
EndProcedure
Procedure GoogleSheets_CopySheet(FunctionParameters)
Token = FunctionParameters["Google_Token"];
From = FunctionParameters["GS_Spreadsheet"];
Target = FunctionParameters["GS_Spreadsheet2"];
Sheet = FunctionParameters["GS_Sheet"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("from", From);
Options.Insert("to", Target);
Options.Insert("sheet", Sheet);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gsheets", "CopySheet", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleSheets", "CopySheet");
EndProcedure
Procedure GoogleSheets_AddSheet(FunctionParameters)
Token = FunctionParameters["Google_Token"];
Spreadsheet = FunctionParameters["GS_Spreadsheet"];
Name = "TestSheet";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("spreadsheet", Spreadsheet);
Options.Insert("title", Name);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gsheets", "AddSheet", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleSheets", "AddSheet");
EndProcedure
Procedure GoogleSheets_DeleteSheet(FunctionParameters)
Token = FunctionParameters["Google_Token"];
Spreadsheet = FunctionParameters["GS_Spreadsheet"];
Sheet = FunctionParameters["GS_Sheet"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("spreadsheet", Spreadsheet);
Options.Insert("sheet", Sheet);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gsheets", "DeleteSheet", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleSheets", "DeleteSheet", , Spreadsheet);
EndProcedure
Procedure GoogleSheets_EditSpreadsheetTitle(FunctionParameters)
Token = FunctionParameters["Google_Token"];
Spreadsheet = FunctionParameters["GS_Spreadsheet"];
Name = "Test table (changed.)";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("spreadsheet", Spreadsheet);
Options.Insert("title", Name);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gsheets", "EditSpreadsheetTitle", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleSheets", "EditSpreadsheetTitle", , Spreadsheet);
EndProcedure
Procedure GoogleSheets_GetTable(FunctionParameters)
Token = FunctionParameters["Google_Token"];
Spreadsheet = FunctionParameters["GS_Spreadsheet"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("spreadsheet", Spreadsheet);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gsheets", "GetSpreadsheet", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleSheets", "GetTable");
EndProcedure
Procedure GoogleSheets_SetCellValues(FunctionParameters)
Token = FunctionParameters["Google_Token"];
Spreadsheet = FunctionParameters["GS_Spreadsheet"];
Sheet = "Sheet2";
ValueMapping = New Map;
ValueMapping.Insert("A1", "ThisIsA1");
ValueMapping.Insert("A2", "ThisIsA2");
ValueMapping.Insert("B2", "ThisIsB2");
ValueMapping.Insert("B3", "ThisIsB3");
ValueMapping.Insert("A3", "ThisIsA3");
ValueMapping.Insert("A4", "ThisIsA4");
ValueMapping.Insert("B1", "ThisIsB1");
ValueMapping.Insert("B4", "ThisIsB4");
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("spreadsheet", Spreadsheet);
Options.Insert("data", ValueMapping);
Options.Insert("sheetname", Sheet);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gsheets", "SetCellValues", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleSheets", "SetCellValues", , ValueMapping.Count());
EndProcedure
Procedure GoogleSheets_GetCellValues(FunctionParameters)
Token = FunctionParameters["Google_Token"];
Spreadsheet = FunctionParameters["GS_Spreadsheet"];
Sheet = "Sheet2";
CellsArray = New Array;
CellsArray.Add("B2");
CellsArray.Add("A3");
CellsArray.Add("B4");
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("spreadsheet", Spreadsheet);
Options.Insert("cells", CellsArray);
Options.Insert("sheetname", Sheet);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gsheets", "GetCellValues", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleSheets", "GetCellValues", , CellsArray.Count());
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("spreadsheet", Spreadsheet);
Options.Insert("sheetname", Sheet);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gsheets", "GetCellValues", Options);
OPI_TestDataRetrieval.Process(Result, "GoogleSheets", "GetCellValues", "All", Spreadsheet);
EndProcedure
Procedure GoogleSheets_ClearCells(FunctionParameters)
Token = FunctionParameters["Google_Token"];
Spreadsheet = FunctionParameters["GS_Spreadsheet"];
Sheet = "Sheet2";
CellsArray = New Array;
CellsArray.Add("B2");
CellsArray.Add("A3");
CellsArray.Add("B4");
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("spreadsheet", Spreadsheet);
Options.Insert("cells", CellsArray);
Options.Insert("sheetname", Sheet);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gsheets", "ClearCells", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleSheets", "ClearCells", , CellsArray.Count());
EndProcedure
#EndRegion // GoogleSheets
#EndRegion // AtomicTests
#EndRegion // Private
#Region Alternate
Procedure ГТ_Авторизация() Export
GT_Authorization();
EndProcedure
Procedure ГТ_СоздатьТаблицу() Export
GT_CreateTable();
EndProcedure
Procedure ГТ_ЗаполнитьОчиститьЯчейки() Export
GT_FillClearCells();
EndProcedure
#EndRegion
@@ -1,3 +1,5 @@
// OneScript: ./OInt/tests/Modules/OPItc_GoogleWorkspace.os
// MIT License
// Copyright (c) 2023-2026 Anton Tsitavets
@@ -9,7 +11,7 @@
// 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
// 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
@@ -22,6 +24,8 @@
// https://github.com/Bayselonarrend/OpenIntegrations
// Test suite for YAxUnit
// BSLLS:Typo-off
// BSLLS:LatinAndCyrillicSymbolInWord-off
// BSLLS:IncorrectLineBreak-off
@@ -63,6 +67,155 @@
//@skip-check missing-temporary-file-deletion
//@skip-check module-unused-method
// #Use oint
// #Use asserts
// #Use "internal"
//#Use "../../tools/main"
//#Use "../../tools/http"
//#Use "../../api"
//#Use asserts
//#Use "internal"
// For YAxUnit
Procedure ИсполняемыеСценарии() Export
OPI_TestDataRetrieval.FormYAXTests("GoogleWorkspace");
EndProcedure
// For Asserts
Function ПолучитьСписокТестов(UnitTesting) Export
Return OPI_TestDataRetrieval.FormAssertsTests("GoogleWorkspace");
EndFunction
#Region Internal
#Region RunnableTests
#Region GoogleWorkspace
Procedure GW_Auth() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Google_ClientID" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Google_ClientSecret", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Google_Code" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Google_Refresh" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Google_ServiceData" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Access_Token" , TestParameters);
GoogleWorkspace_FormCodeRetrievalLink(TestParameters);
GoogleWorkspace_GetTokenByCode(TestParameters);
GoogleWorkspace_RefreshToken(TestParameters);
GoogleWorkspace_GetServiceAccountToken(TestParameters);
EndProcedure
#EndRegion // GoogleWorkspace
#EndRegion // RunnableTests
#EndRegion // Internal
#Region Private
#Region AtomicTests
#Region GoogleWorkspace
Procedure GoogleWorkspace_FormCodeRetrievalLink(FunctionParameters)
ClientID = FunctionParameters["Google_ClientID"];
Options = New Structure;
Options.Insert("id", ClientID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("google", "FormCodeRetrievalLink", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleWorkspace", "FormCodeRetrievalLink");
EndProcedure
Procedure GoogleWorkspace_GetTokenByCode(FunctionParameters)
ClientID = FunctionParameters["Google_ClientID"];
ClientSecret = FunctionParameters["Google_ClientSecret"];
Code = FunctionParameters["Google_Code"];
Options = New Structure;
Options.Insert("id", ClientID);
Options.Insert("secret", ClientSecret);
Options.Insert("code", Code);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("google", "GetTokenByCode", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleWorkspace", "GetTokenByCode");
EndProcedure
Procedure GoogleWorkspace_RefreshToken(FunctionParameters)
ClientID = FunctionParameters["Google_ClientID"];
ClientSecret = FunctionParameters["Google_ClientSecret"];
RefreshToken = FunctionParameters["Google_Refresh"];
Options = New Structure;
Options.Insert("id", ClientID);
Options.Insert("secret", ClientSecret);
Options.Insert("refresh", RefreshToken);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("google", "RefreshToken", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleWorkspace", "RefreshToken");
EndProcedure
Procedure GoogleWorkspace_GetServiceAccountToken(FunctionParameters)
Data = FunctionParameters["Google_ServiceData"]; // URL, binary Data, file or collection
Token = FunctionParameters["Access_Token"]; // SKIP
Data = OPI_HTTPRequests // SKIP
.NewRequest() // SKIP
.Initialize(Data) // SKIP
.AddBearerAuthorization(Token) // SKIP
.ProcessRequest("GET") // SKIP
.ReturnResponseAsBinaryData(); // SKIP
Scope = New Array;
Scope.Add("https://www.googleapis.com/auth/calendar");
Scope.Add("https://www.googleapis.com/auth/drive");
Scope.Add("https://www.googleapis.com/auth/spreadsheets");
Options = New Structure;
Options.Insert("auth", Data);
Options.Insert("scope", Scope);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("google", "GetServiceAccountToken", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleWorkspace", "GetServiceAccountToken");
EndProcedure
#EndRegion // GoogleWorkspace
#EndRegion // AtomicTests
#EndRegion // Private
#Region Alternate
Procedure ГВ_Авторизация() Export
GW_Auth();
EndProcedure
#EndRegion
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+259 -4
View File
@@ -1,3 +1,5 @@
// OneScript: ./OInt/tests/Modules/OPItc_Neocities.os
// MIT License
// Copyright (c) 2023-2026 Anton Tsitavets
@@ -9,7 +11,7 @@
// 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
// 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
@@ -22,6 +24,8 @@
// https://github.com/Bayselonarrend/OpenIntegrations
// Test suite for YAxUnit
// BSLLS:Typo-off
// BSLLS:LatinAndCyrillicSymbolInWord-off
// BSLLS:IncorrectLineBreak-off
@@ -63,6 +67,257 @@
//@skip-check missing-temporary-file-deletion
//@skip-check module-unused-method
// #Use oint
// #Use asserts
// #Use "internal"
//#Use "../../tools/main"
//#Use "../../tools/http"
//#Use "../../api"
//#Use asserts
//#Use "internal"
// For YAxUnit
Procedure ИсполняемыеСценарии() Export
OPI_TestDataRetrieval.FormYAXTests("Neocities");
EndProcedure
// For Asserts
Function ПолучитьСписокТестов(UnitTesting) Export
Return OPI_TestDataRetrieval.FormAssertsTests("Neocities");
EndFunction
#Region Internal
#Region RunnableTests
#Region Neocities
Procedure NC_FilesManagement() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("NC_Token", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Picture" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Picture2", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Gif" , TestParameters);
Neocities_UploadFile(TestParameters);
Neocities_UploadFiles(TestParameters);
Neocities_GetFilesList(TestParameters);
Neocities_DeleteSelectedFiles(TestParameters);
Neocities_SynchronizeFolders(TestParameters);
EndProcedure
Procedure NC_DataRetrieving() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("NC_Token" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("NC_Login" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("NC_Password", TestParameters);
Neocities_GetSiteData(TestParameters);
Neocities_GetToken(TestParameters);
EndProcedure
#EndRegion // Neocities
#EndRegion // RunnableTests
#EndRegion // Internal
#Region Private
#Region AtomicTests
#Region Neocities
Procedure Neocities_UploadFile(FunctionParameters)
Token = FunctionParameters["NC_Token"];
Data = FunctionParameters["Picture"]; // URL, Path or Binary Data
Path = "testfolder/test_pic.png";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("path", Path);
Options.Insert("file", Data);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("neocities", "UploadFile", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Neocities", "UploadFile");
EndProcedure
Procedure Neocities_UploadFiles(FunctionParameters)
Token = FunctionParameters["NC_Token"];
Image1 = FunctionParameters["Picture"]; // URL, Path or Binary Data
Image2 = FunctionParameters["Picture2"]; // URL, Path or Binary Data
GIF = FunctionParameters["Gif"]; // URL, Path or Binary Data
FileMapping = New Map;
FileMapping.Insert("test/pic1.png", Image1);
FileMapping.Insert("test/gif.gif" , Image2);
FileMapping.Insert("pic2.png" , GIF);
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("files", FileMapping);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("neocities", "UploadFiles", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Neocities", "UploadFiles");
EndProcedure
Procedure Neocities_DeleteSelectedFiles(FunctionParameters)
Token = FunctionParameters["NC_Token"];
Paths = New Array;
Paths.Add("/test/pic1.png");
Paths.Add("/test/gif.gif");
Paths.Add("/pic2.png");
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("paths", Paths);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("neocities", "DeleteSelectedFiles", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Neocities", "DeleteSelectedFiles");
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("paths", "/testfolder");
Result = OPI_TestDataRetrieval.ExecuteTestCLI("neocities", "DeleteSelectedFiles", Options);
OPI_TestDataRetrieval.Process(Result, "Neocities", "DeleteSelectedFiles", "Directory 1");
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("paths", "/test");
Result = OPI_TestDataRetrieval.ExecuteTestCLI("neocities", "DeleteSelectedFiles", Options);
OPI_TestDataRetrieval.Process(Result, "Neocities", "DeleteSelectedFiles", "Directory 2");
EndProcedure
Procedure Neocities_GetFilesList(FunctionParameters)
Token = FunctionParameters["NC_Token"];
Path = "test";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("path", Path);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("neocities", "GetFilesList", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Neocities", "GetFilesList");
Options = New Structure;
Options.Insert("token", Token);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("neocities", "GetFilesList", Options);
OPI_TestDataRetrieval.Process(Result, "Neocities", "GetFilesList", "All");
EndProcedure
Procedure Neocities_GetSiteData(FunctionParameters)
Token = FunctionParameters["NC_Token"];
Website = "2athenaeum";
Options = New Structure;
Options.Insert("token", Token);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("neocities", "GetSiteData", Options);
OPI_TestDataRetrieval.Process(Result, "Neocities", "GetSiteData"); // SKIP
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("sitename", Website);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("neocities", "GetSiteData", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Neocities", "GetSiteData", "Website");
EndProcedure
Procedure Neocities_GetToken(FunctionParameters)
Login = FunctionParameters["NC_Login"];
Password = FunctionParameters["NC_Password"];
Options = New Structure;
Options.Insert("login", Login);
Options.Insert("password", Password);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("neocities", "GetToken", Options);
// END
Result["api_key"] = "***";
OPI_TestDataRetrieval.Process(Result, "Neocities", "GetToken");
EndProcedure
Procedure Neocities_SynchronizeFolders(FunctionParameters)
Token = FunctionParameters["NC_Token"];
LocalFolder = "C:\test_site";
RemoteFolder = "test_sync";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("local", LocalFolder);
Options.Insert("remote", RemoteFolder);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("neocities", "SynchronizeFolders", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Neocities", "SynchronizeFolders");
EndProcedure
#EndRegion // Neocities
#EndRegion // AtomicTests
#EndRegion // Private
#Region Alternate
Procedure НС_РаботаСФайлами() Export
NC_FilesManagement();
EndProcedure
Procedure НС_ПолучениеДанных() Export
NC_DataRetrieving();
EndProcedure
#EndRegion
+412 -4
View File
@@ -1,3 +1,5 @@
// OneScript: ./OInt/tests/Modules/OPItc_Notion.os
// MIT License
// Copyright (c) 2023-2026 Anton Tsitavets
@@ -9,7 +11,7 @@
// 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
// 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
@@ -22,6 +24,8 @@
// https://github.com/Bayselonarrend/OpenIntegrations
// Test suite for YAxUnit
// BSLLS:Typo-off
// BSLLS:LatinAndCyrillicSymbolInWord-off
// BSLLS:IncorrectLineBreak-off
@@ -63,6 +67,410 @@
//@skip-check missing-temporary-file-deletion
//@skip-check module-unused-method
// #Use oint
// #Use asserts
// #Use "internal"
//#Use "../../tools/main"
//#Use "../../tools/http"
//#Use "../../api"
//#Use asserts
//#Use "internal"
// For YAxUnit
Procedure ИсполняемыеСценарии() Export
OPI_TestDataRetrieval.FormYAXTests("Notion");
EndProcedure
// For Asserts
Function ПолучитьСписокТестов(UnitTesting) Export
Return OPI_TestDataRetrieval.FormAssertsTests("Notion");
EndFunction
#Region Internal
#Region RunnableTests
#Region Notion
Procedure NotionAPI_CreatePage() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Notion_Token" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Notion_Parent", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Picture" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Picture2" , TestParameters);
Notion_CreatePage(TestParameters);
Notion_GetPage(TestParameters);
Notion_EditPageProperties(TestParameters);
EndProcedure
Procedure NotionAPI_CreateUpdateBase() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Notion_Token" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Notion_Parent", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Picture" , TestParameters);
Notion_CreateDatabase(TestParameters);
Notion_EditDatabaseProperties(TestParameters);
Notion_GetDatabase(TestParameters);
Notion_CreatePageInDatabase(TestParameters);
EndProcedure
Procedure NotionAPI_CreateDeleteBlock() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Notion_Token" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Notion_Parent", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Notion_Block" , TestParameters);
Notion_ReturnBlock(TestParameters);
Notion_CreateBlock(TestParameters);
Notion_ReturnChildBlocks(TestParameters);
Notion_DeleteBlock(TestParameters);
EndProcedure
Procedure NotionAPI_GetUsers() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Notion_Token", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Notion_User" , TestParameters);
Notion_UserList(TestParameters);
Notion_GetUserData(TestParameters);
EndProcedure
#EndRegion // Notion
#EndRegion // RunnableTests
#EndRegion // Internal
#Region Private
#Region AtomicTests
#Region Notion
Procedure Notion_CreatePage(FunctionParameters)
Token = FunctionParameters["Notion_Token"];
Parent = FunctionParameters["Notion_Parent"];
Title = "TestTitle";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("page", Parent);
Options.Insert("title", Title);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("notion", "CreatePage", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Notion", "CreatePage", , FunctionParameters);
EndProcedure
Procedure Notion_CreateDatabase(FunctionParameters)
Token = FunctionParameters["Notion_Token"];
Parent = FunctionParameters["Notion_Parent"];
Title = "TestTitle";
Properties = New Map;
Properties.Insert("Name" , "title");
Properties.Insert("Description" , "rich_text");
Properties.Insert("Number" , "number");
Properties.Insert("CreationDate", "date");
Properties.Insert("Image" , "files");
Properties.Insert("Active" , "checkbox");
Properties.Insert("Website" , "url");
Properties.Insert("Email" , "email");
Properties.Insert("Phone" , "phone_number");
Properties.Insert("User" , "people");
ValueSelection = New Map;
ValueSelection.Insert("New" , "green");
ValueSelection.Insert("InProgress" , "yellow");
ValueSelection.Insert("Remote" , "red");
Properties.Insert("Status", ValueSelection);
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("page", Parent);
Options.Insert("title", Title);
Options.Insert("props", Properties);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("notion", "CreateDatabase", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Notion", "CreateDatabase", , FunctionParameters);
EndProcedure
Procedure Notion_EditDatabaseProperties(FunctionParameters)
Token = FunctionParameters["Notion_Token"];
Base = FunctionParameters["Notion_Base"];
Title = "TestTitle";
Description = "TestDescription";
Properties = New Map;
Properties.Insert("Email", "rich_text"); // Type fields "Email" will changed with email to text
Properties.Insert("Website"); // Field "Website" will deleted
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("base", Base);
Options.Insert("props", Properties);
Options.Insert("title", Title);
Options.Insert("description", Description);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("notion", "EditDatabaseProperties", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Notion", "EditDatabaseProperties");
EndProcedure
Procedure Notion_GetPage(FunctionParameters)
Token = FunctionParameters["Notion_Token"];
Page = FunctionParameters["Notion_Page"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("page", Page);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("notion", "GetPage", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Notion", "GetPage");
EndProcedure
Procedure Notion_GetDatabase(FunctionParameters)
Token = FunctionParameters["Notion_Token"];
Base = FunctionParameters["Notion_Base"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("base", Base);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("notion", "GetDatabase", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Notion", "GetDatabase");
EndProcedure
Procedure Notion_CreatePageInDatabase(FunctionParameters)
Token = FunctionParameters["Notion_Token"];
Base = FunctionParameters["Notion_Base"];
Image_ = FunctionParameters["Picture"]; // URL, Binary Data or File path
Image = New Map;
Image.Insert("Logo", Image_);
Properties = New Map;
Properties.Insert("Name" , "LLC Vector");
Properties.Insert("Description" , "OurFirstClient");
Properties.Insert("Number" , 1);
Properties.Insert("CreationDate", OPI_Tools.GetCurrentDate());
Properties.Insert("Image" , Image);
Properties.Insert("Active" , True);
Properties.Insert("Website" , "https://vector.ru");
Properties.Insert("Email" , "mail@vector.ru");
Properties.Insert("Phone" , "88005553535");
Properties.Insert("Status" , "New");
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("base", Base);
Options.Insert("data", Properties);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("notion", "CreatePageInDatabase", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Notion", "CreatePageInDatabase", , Base);
EndProcedure
Procedure Notion_EditPageProperties(FunctionParameters)
Token = FunctionParameters["Notion_Token"];
Page = FunctionParameters["Notion_Page"];
Icon = FunctionParameters["Picture"];
Cover = FunctionParameters["Picture2"];
Archive = False;
Properties = New Map;
Properties.Insert("Active", False);
Properties.Insert("Email" , "vector@mail.ru");
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("page", Page);
Options.Insert("data", Properties);
Options.Insert("icon", Icon);
Options.Insert("cover", Cover);
Options.Insert("archive", Archive);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("notion", "EditPageProperties", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Notion", "EditPageProperties");
EndProcedure
Procedure Notion_ReturnBlock(FunctionParameters)
Token = FunctionParameters["Notion_Token"];
Block = FunctionParameters["Notion_Block"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("block", Block);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("notion", "ReturnBlock", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Notion", "ReturnBlock");
EndProcedure
Procedure Notion_CreateBlock(FunctionParameters)
Token = FunctionParameters["Notion_Token"];
Parent = FunctionParameters["Notion_Parent"];
Block = FunctionParameters["Notion_Block"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("block", Block);
BlockData = OPI_TestDataRetrieval.ExecuteTestCLI("notion", "ReturnBlock", Options);
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("page", Parent);
Options.Insert("block", BlockData);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("notion", "CreateBlock", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Notion", "CreateBlock", , FunctionParameters);
EndProcedure
Procedure Notion_ReturnChildBlocks(FunctionParameters)
Token = FunctionParameters["Notion_Token"];
Block = FunctionParameters["Notion_NewBlock"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("block", Block);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("notion", "ReturnChildBlocks", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Notion", "ReturnChildBlocks");
EndProcedure
Procedure Notion_DeleteBlock(FunctionParameters)
Token = FunctionParameters["Notion_Token"];
Block = FunctionParameters["Notion_NewBlock"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("block", Block);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("notion", "DeleteBlock", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Notion", "DeleteBlock");
EndProcedure
Procedure Notion_UserList(FunctionParameters)
Token = FunctionParameters["Notion_Token"];
Options = New Structure;
Options.Insert("token", Token);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("notion", "UserList", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Notion", "UserList");
EndProcedure
Procedure Notion_GetUserData(FunctionParameters)
Token = FunctionParameters["Notion_Token"];
User = FunctionParameters["Notion_User"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("user", User);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("notion", "GetUserData", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Notion", "GetUserData");
EndProcedure
#EndRegion // Notion
#EndRegion // AtomicTests
#EndRegion // Private
#Region Alternate
Procedure НоушнАпи_СоздатьСтраницу() Export
NotionAPI_CreatePage();
EndProcedure
Procedure НоушнАпи_СоздатьИзменитьБазу() Export
NotionAPI_CreateUpdateBase();
EndProcedure
Procedure НоушнАпи_СоздатьУдалитьБлок() Export
NotionAPI_CreateDeleteBlock();
EndProcedure
Procedure НоушнАпи_ПолучитьПользователей() Export
NotionAPI_GetUsers();
EndProcedure
#EndRegion
+754 -4
View File
@@ -1,3 +1,5 @@
// OneScript: ./OInt/tests/Modules/OPItc_Ollama.os
// MIT License
// Copyright (c) 2023-2026 Anton Tsitavets
@@ -9,7 +11,7 @@
// 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
// 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
@@ -22,6 +24,8 @@
// https://github.com/Bayselonarrend/OpenIntegrations
// Test suite for YAxUnit
// BSLLS:Typo-off
// BSLLS:LatinAndCyrillicSymbolInWord-off
// BSLLS:IncorrectLineBreak-off
@@ -63,6 +67,752 @@
//@skip-check missing-temporary-file-deletion
//@skip-check module-unused-method
// #Use oint
// #Use asserts
// #Use "internal"
//#Use "../../tools/main"
//#Use "../../tools/http"
//#Use "../../api"
//#Use asserts
//#Use "internal"
// For YAxUnit
Procedure ИсполняемыеСценарии() Export
OPI_TestDataRetrieval.FormYAXTests("Ollama");
EndProcedure
// For Asserts
Function ПолучитьСписокТестов(UnitTesting) Export
Return OPI_TestDataRetrieval.FormAssertsTests("Ollama");
EndFunction
#Region Internal
#Region RunnableTests
#Region Ollama
Procedure OLLM_RequestsProcessing() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Ollama_URL" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Ollama_Token", TestParameters);
Ollama_PullModel(TestParameters);
Ollama_GetVersion(TestParameters);
Ollama_GetResponse(TestParameters);
Ollama_GetContextResponse(TestParameters);
Ollama_GetEmbeddings(TestParameters);
Ollama_GetRequestParameterStructure(TestParameters);
Ollama_GetContextParameterStructure(TestParameters);
Ollama_GetContextMessageStructure(TestParameters);
Ollama_GetEmbeddingsParameterStructure(TestParameters);
EndProcedure
Procedure OLLM_ModelsManagement() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Ollama_URL" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Ollama_Token", TestParameters);
Ollama_PullModel(TestParameters);
Ollama_LoadModelToMemory(TestParameters);
Ollama_UnloadModelFromMemory(TestParameters);
Ollama_CreateModel(TestParameters);
Ollama_GetModelInformation(TestParameters);
Ollama_GetModelList(TestParameters);
Ollama_ListRunningModels(TestParameters);
Ollama_CopyModel(TestParameters);
Ollama_PushModel(TestParameters);
Ollama_GetModelSettingsStructure(TestParameters);
Ollama_DeleteModel(TestParameters);
EndProcedure
Procedure OLLM_WorkingWithBlob() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Ollama_URL" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Ollama_Token", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Picture" , TestParameters);
Ollama_PushBlob(TestParameters);
Ollama_CheckBlob(TestParameters);
EndProcedure
#EndRegion // Ollama
#EndRegion // RunnableTests
#EndRegion // Internal
#Region Private
#Region AtomicTests
#Region Ollama
Procedure Ollama_GetResponse(FunctionParameters)
URL = FunctionParameters["Ollama_URL"];
Token = FunctionParameters["Ollama_Token"]; // Authorization - not part API Ollama
Prompt = "What is 1C:Enterprise?";
Model = "tinyllama";
AdditionalHeaders = New Map;
AdditionalHeaders.Insert("Authorization", StrTemplate("Bearer %1", Token));
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("model", Model);
Options.Insert("prompt", Prompt);
Options.Insert("headers", AdditionalHeaders);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "GetResponse", Options);
OPI_TestDataRetrieval.Process(Result, "Ollama", "GetResponse"); // SKIP
// With paramether
Prompt = "Ollama is 22 years old and is busy saving the world. Respond using JSON";
Format = OPI_Tools.JSONToStructure("
|{
|""type"": ""object"",
|""properties"": {
| ""age"": {
| ""type"": ""integer""
| },
| ""available"": {
| ""type"": ""boolean""
| }
|},
|""required"": [
| ""age"",
| ""available""
|]
|}");
AdditionalParameters = New Structure("format", Format);
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("model", Model);
Options.Insert("prompt", Prompt);
Options.Insert("options", AdditionalParameters);
Options.Insert("headers", AdditionalHeaders);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "GetResponse", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Ollama", "GetResponse", "Parameters");
EndProcedure
Procedure Ollama_GetContextResponse(FunctionParameters)
URL = FunctionParameters["Ollama_URL"];
Token = FunctionParameters["Ollama_Token"]; // Authorization - not part API Ollama
AdditionalHeaders = New Map;
AdditionalHeaders.Insert("Authorization", StrTemplate("Bearer %1", Token));
Model = "tinyllama";
MessagesArray = New Array;
Options = New Structure;
Options.Insert("role", "user");
Options.Insert("text", "What is 1C:Enterprise?");
Question1 = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "GetContextMessageStructure", Options);
Question2 = OPI_Ollama.GetContextMessageStructure("user", "When the first version was released?"); // Question without specifics
// Adding the first question to the context
MessagesArray.Add(Question1);
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("model", Model);
Options.Insert("msgs", MessagesArray);
Options.Insert("headers", AdditionalHeaders);
Response1 = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "GetContextResponse", Options);
OPI_TestDataRetrieval.Process(Response1, "Ollama", "GetContextResponse", "Preliminary"); // SKIP
MessagesArray.Add(Response1["message"]); // Add response to first question in context
MessagesArray.Add(Question2); // Add second question in context
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("model", Model);
Options.Insert("msgs", MessagesArray);
Options.Insert("headers", AdditionalHeaders);
Response2 = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "GetContextResponse", Options);
MessagesArray.Add(Response2["message"]);
// ...
// END
OPI_TestDataRetrieval.Process(Response2, "Ollama", "GetContextResponse");
MessagesArray = New Array;
Question = New Structure("role,content", "user", "Hello!");
MessagesArray.Add(Question);
Options = New Structure("seed,temperature", 101, 0);
AdditionalParameters = New Structure("options", Options);
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("model", Model);
Options.Insert("msgs", MessagesArray);
Options.Insert("options", AdditionalParameters);
Options.Insert("headers", AdditionalHeaders);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "GetContextResponse", Options);
OPI_TestDataRetrieval.Process(Result, "Ollama", "GetContextResponse", "Seed 1");
Message1 = Result["message"]["content"];
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("model", Model);
Options.Insert("msgs", MessagesArray);
Options.Insert("options", AdditionalParameters);
Options.Insert("headers", AdditionalHeaders);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "GetContextResponse", Options);
OPI_TestDataRetrieval.Process(Result, "Ollama", "GetContextResponse", "Seed 2");
Message2 = Result["message"]["content"];
Options = New Structure("seed,temperature", 555, 10);
AdditionalParameters = New Structure("options", Options);
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("model", Model);
Options.Insert("msgs", MessagesArray);
Options.Insert("options", AdditionalParameters);
Options.Insert("headers", AdditionalHeaders);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "GetContextResponse", Options);
OPI_TestDataRetrieval.Process(Result, "Ollama", "GetContextResponse", "Seed 3");
Message3 = Result["message"]["content"];
OPI_TestDataRetrieval.Process(Message3, "Ollama", "GetContextResponse", "Comparison", Message1, Message2, Message3);
EndProcedure
Procedure Ollama_LoadModelToMemory(FunctionParameters)
URL = FunctionParameters["Ollama_URL"];
Token = FunctionParameters["Ollama_Token"]; // Authorization - not part API Ollama
Model = "tinyllama";
Period = 500;
AdditionalHeaders = New Map;
AdditionalHeaders.Insert("Authorization", StrTemplate("Bearer %1", Token));
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("model", Model);
Options.Insert("keep", Period);
Options.Insert("headers", AdditionalHeaders);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "LoadModelToMemory", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Ollama", "LoadModelToMemory");
EndProcedure
Procedure Ollama_UnloadModelFromMemory(FunctionParameters)
URL = FunctionParameters["Ollama_URL"];
Token = FunctionParameters["Ollama_Token"]; // Authorization - not part API Ollama
Model = "tinyllama";
AdditionalHeaders = New Map;
AdditionalHeaders.Insert("Authorization", StrTemplate("Bearer %1", Token));
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("model", Model);
Options.Insert("headers", AdditionalHeaders);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "UnloadModelFromMemory", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Ollama", "UnloadModelFromMemory");
EndProcedure
Procedure Ollama_GetRequestParameterStructure(FunctionParameters)
Options = New Structure;
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "GetRequestParameterStructure", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Ollama", "GetRequestParameterStructure");
Options = New Structure;
Options.Insert("empty", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "GetRequestParameterStructure", Options);
OPI_TestDataRetrieval.Process(Result, "Ollama", "GetRequestParameterStructure", "Clear");
EndProcedure
Procedure Ollama_GetContextParameterStructure(FunctionParameters)
Options = New Structure;
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "GetContextParameterStructure", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Ollama", "GetContextParameterStructure");
Options = New Structure;
Options.Insert("empty", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "GetContextParameterStructure", Options);
OPI_TestDataRetrieval.Process(Result, "Ollama", "GetContextParameterStructure", "Clear");
EndProcedure
Procedure Ollama_GetContextMessageStructure(FunctionParameters)
Options = New Structure;
Options.Insert("role", "user");
Options.Insert("text", "Hello!");
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "GetContextMessageStructure", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Ollama", "GetContextMessageStructure");
EndProcedure
Procedure Ollama_GetModelSettingsStructure(FunctionParameters)
Options = New Structure;
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "GetModelSettingsStructure", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Ollama", "GetModelSettingsStructure");
Options = New Structure;
Options.Insert("empty", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "GetModelSettingsStructure", Options);
OPI_TestDataRetrieval.Process(Result, "Ollama", "GetModelSettingsStructure", "Clear");
EndProcedure
Procedure Ollama_CreateModel(FunctionParameters)
URL = FunctionParameters["Ollama_URL"];
Token = FunctionParameters["Ollama_Token"]; // Authorization - not part API Ollama
Model = "mario";
AdditionalHeaders = New Map;
AdditionalHeaders.Insert("Authorization", StrTemplate("Bearer %1", Token));
Settings = New Structure("from,system", "tinyllama", "You are Mario from Super Mario Bros.");
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("model", Model);
Options.Insert("settings", Settings);
Options.Insert("headers", AdditionalHeaders);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "CreateModel", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Ollama", "CreateModel");
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("model", Model);
Options.Insert("prompt", "How are you?");
Options.Insert("headers", AdditionalHeaders);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "GetResponse", Options);
OPI_TestDataRetrieval.Process(Result, "Ollama", "CreateModel", "Request");
EndProcedure
Procedure Ollama_DeleteModel(FunctionParameters)
URL = FunctionParameters["Ollama_URL"];
Token = FunctionParameters["Ollama_Token"]; // Authorization - not part API Ollama
Model = "mario";
AdditionalHeaders = New Map;
AdditionalHeaders.Insert("Authorization", StrTemplate("Bearer %1", Token));
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("model", Model);
Options.Insert("headers", AdditionalHeaders);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "DeleteModel", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Ollama", "DeleteModel");
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("model", "library/tinyllama:latest");
Options.Insert("headers", AdditionalHeaders);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "DeleteModel", Options);
OPI_TestDataRetrieval.Process(Result, "Ollama", "DeleteModel", "Tiny");
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("model", "bayselonarrend/tinyllama:latest");
Options.Insert("headers", AdditionalHeaders);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "DeleteModel", Options);
OPI_TestDataRetrieval.Process(Result, "Ollama", "DeleteModel", "Tiny, account");
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("headers", AdditionalHeaders);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "GetModelList", Options);
OPI_TestDataRetrieval.Process(Result, "Ollama", "DeleteModel", "List");
EndProcedure
Procedure Ollama_GetModelList(FunctionParameters)
URL = FunctionParameters["Ollama_URL"];
Token = FunctionParameters["Ollama_Token"]; // Authorization - not part API Ollama
AdditionalHeaders = New Map;
AdditionalHeaders.Insert("Authorization", StrTemplate("Bearer %1", Token));
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("headers", AdditionalHeaders);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "GetModelList", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Ollama", "GetModelList");
EndProcedure
Procedure Ollama_ListRunningModels(FunctionParameters)
URL = FunctionParameters["Ollama_URL"];
Token = FunctionParameters["Ollama_Token"]; // Authorization - not part API Ollama
AdditionalHeaders = New Map;
AdditionalHeaders.Insert("Authorization", StrTemplate("Bearer %1", Token));
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("headers", AdditionalHeaders);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "ListRunningModels", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Ollama", "ListRunningModels");
EndProcedure
Procedure Ollama_GetModelInformation(FunctionParameters)
URL = FunctionParameters["Ollama_URL"];
Token = FunctionParameters["Ollama_Token"]; // Authorization - not part API Ollama
Model = "mario";
AdditionalHeaders = New Map;
AdditionalHeaders.Insert("Authorization", StrTemplate("Bearer %1", Token));
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("model", Model);
Options.Insert("verbose", Ложь);
Options.Insert("headers", AdditionalHeaders);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "GetModelInformation", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Ollama", "GetModelInformation");
EndProcedure
Procedure Ollama_CopyModel(FunctionParameters)
URL = FunctionParameters["Ollama_URL"];
Token = FunctionParameters["Ollama_Token"]; // Authorization - not part API Ollama
Model = "mario";
Name = "mario2";
AdditionalHeaders = New Map;
AdditionalHeaders.Insert("Authorization", StrTemplate("Bearer %1", Token));
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("model", Model);
Options.Insert("name", Name);
Options.Insert("headers", AdditionalHeaders);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "CopyModel", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Ollama", "CopyModel");
OPI_Ollama.DeleteModel(URL, Name, AdditionalHeaders);
EndProcedure
Procedure Ollama_GetVersion(FunctionParameters)
URL = FunctionParameters["Ollama_URL"];
Token = FunctionParameters["Ollama_Token"]; // Authorization - not part API Ollama
AdditionalHeaders = New Map;
AdditionalHeaders.Insert("Authorization", StrTemplate("Bearer %1", Token));
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("headers", AdditionalHeaders);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "GetVersion", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Ollama", "GetVersion");
EndProcedure
Procedure Ollama_GetEmbeddings(FunctionParameters)
URL = FunctionParameters["Ollama_URL"];
Token = FunctionParameters["Ollama_Token"]; // Authorization - not part API Ollama
StingsArray = New Array;
StingsArray.Add("Why is the sky blue?");
StingsArray.Add("Why is the grass green?");
Model = "tinyllama";
AdditionalHeaders = New Map;
AdditionalHeaders.Insert("Authorization", StrTemplate("Bearer %1", Token));
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("model", Model);
Options.Insert("input", StingsArray);
Options.Insert("headers", AdditionalHeaders);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "GetEmbeddings", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Ollama", "GetEmbeddings");
EndProcedure
Procedure Ollama_GetEmbeddingsParameterStructure(FunctionParameters)
Options = New Structure;
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "GetEmbeddingsParameterStructure", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Ollama", "GetEmbeddingsParameterStructure");
Options = New Structure;
Options.Insert("empty", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "GetEmbeddingsParameterStructure", Options);
OPI_TestDataRetrieval.Process(Result, "Ollama", "GetEmbeddingsParameterStructure", "Clear");
EndProcedure
Procedure Ollama_PushModel(FunctionParameters)
URL = FunctionParameters["Ollama_URL"];
Token = FunctionParameters["Ollama_Token"]; // Authorization - not part API Ollama
Model = "bayselonarrend/tinyllama:latest";
AdditionalHeaders = New Map;
AdditionalHeaders.Insert("Authorization", StrTemplate("Bearer %1", Token));
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("model", Model);
Options.Insert("headers", AdditionalHeaders);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "PushModel", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Ollama", "PushModel");
EndProcedure
Procedure Ollama_PullModel(FunctionParameters)
URL = FunctionParameters["Ollama_URL"];
Token = FunctionParameters["Ollama_Token"]; // Authorization - not part API Ollama
Model = "tinyllama";
AdditionalHeaders = New Map;
AdditionalHeaders.Insert("Authorization", StrTemplate("Bearer %1", Token));
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("model", Model);
Options.Insert("headers", AdditionalHeaders);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "PullModel", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Ollama", "PullModel");
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("model", "bayselonarrend/tinyllama:latest");
Options.Insert("headers", AdditionalHeaders);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "PullModel", Options);
OPI_TestDataRetrieval.Process(Result, "Ollama", "PullModel", "Account");
EndProcedure
Procedure Ollama_PushBlob(FunctionParameters)
URL = FunctionParameters["Ollama_URL"];
Token = FunctionParameters["Ollama_Token"]; // Authorization - not part API Ollama
Image = FunctionParameters["Picture"]; // URL, Path or Binary Data
OPI_TypeConversion.GetBinaryData(Image, True); // SKIP
Random = GetBinaryDataFromString(String(New UUID)); // SKIP
Image = OPI_Tools.MergeData(Image, Random); // SKIP
AdditionalHeaders = New Map;
AdditionalHeaders.Insert("Authorization", StrTemplate("Bearer %1", Token));
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("data", Image);
Options.Insert("headers", AdditionalHeaders);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "PushBlob", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Ollama", "PushBlob", , FunctionParameters);
EndProcedure
Procedure Ollama_CheckBlob(FunctionParameters)
URL = FunctionParameters["Ollama_URL"];
Token = FunctionParameters["Ollama_Token"]; // Authorization - not part API Ollama
SHA256 = FunctionParameters["Ollama_Blob"];
AdditionalHeaders = New Map;
AdditionalHeaders.Insert("Authorization", StrTemplate("Bearer %1", Token));
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("digest", SHA256);
Options.Insert("headers", AdditionalHeaders);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "CheckBlob", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Ollama", "CheckBlob");
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("digest", "yoyoyo");
Options.Insert("headers", AdditionalHeaders);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "CheckBlob", Options);
OPI_TestDataRetrieval.Process(Result, "Ollama", "CheckBlob", "Error");
EndProcedure
#EndRegion // Ollama
#EndRegion // AtomicTests
#EndRegion // Private
#Region Alternate
Procedure OLLM_ОбработкаЗапросов() Export
OLLM_RequestsProcessing();
EndProcedure
Procedure OLLM_РаботаСМоделями() Export
OLLM_ModelsManagement();
EndProcedure
Procedure OLLM_РаботаСBlob() Export
OLLM_WorkingWithBlob();
EndProcedure
#EndRegion
+618 -4
View File
@@ -1,3 +1,5 @@
// OneScript: ./OInt/tests/Modules/OPItc_OpenAI.os
// MIT License
// Copyright (c) 2023-2026 Anton Tsitavets
@@ -9,7 +11,7 @@
// 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
// 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
@@ -22,6 +24,8 @@
// https://github.com/Bayselonarrend/OpenIntegrations
// Test suite for YAxUnit
// BSLLS:Typo-off
// BSLLS:LatinAndCyrillicSymbolInWord-off
// BSLLS:IncorrectLineBreak-off
@@ -63,6 +67,616 @@
//@skip-check missing-temporary-file-deletion
//@skip-check module-unused-method
// #Use oint
// #Use asserts
// #Use "internal"
//#Use "../../tools/main"
//#Use "../../tools/http"
//#Use "../../api"
//#Use asserts
//#Use "internal"
// For YAxUnit
Procedure ИсполняемыеСценарии() Export
OPI_TestDataRetrieval.FormYAXTests("OpenAI");
EndProcedure
// For Asserts
Function ПолучитьСписокТестов(UnitTesting) Export
Return OPI_TestDataRetrieval.FormAssertsTests("OpenAI");
EndFunction
#Region Internal
#Region RunnableTests
#Region OpenAI
Procedure OAI_RequestsProcessing() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("OpenAI_Token" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("OpenAI_URL" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("OpenAI_Token2" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("OpenAI_URL2" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("OpenAI_File" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Picture" , TestParameters);
OpenAI_GetResponse(TestParameters);
OpenAI_GetEmbeddings(TestParameters);
OpenAI_GetMessageStructure(TestParameters);
OpenAI_GetImageMessageStructure(TestParameters);
OpenAI_GetImages(TestParameters);
OpenAI_GetAssistantMessage(TestParameters);
OpenAI_GetUserMessage(TestParameters);
OpenAI_GetSystemMessage(TestParameters);
EndProcedure
Procedure OAI_Assistants() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("OpenAI_Token" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("OpenAI_URL" , TestParameters);
OpenAI_CreateAssistant(TestParameters);
OpenAI_RetrieveAssistant(TestParameters);
OpenAI_GetAssistantsList(TestParameters);
OpenAI_DeleteAssistant(TestParameters);
EndProcedure
Procedure OAI_FileManagement() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("OpenAI_Token" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("OpenAI_URL" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Picture" , TestParameters);
OpenAI_UploadFile(TestParameters);
OpenAI_GetFileInformation(TestParameters);
OpenAI_GetFilesList(TestParameters);
OpenAI_DownloadFile(TestParameters);
OpenAI_DeleteFile(TestParameters);
EndProcedure
Procedure OAI_AudioProcessing() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("OpenAI_Token" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("OpenAI_URL" , TestParameters);
OpenAI_GenerateSpeech(TestParameters);
OpenAI_CreateTranscription(TestParameters);
EndProcedure
Procedure OAI_ModelsManagement() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("OpenAI_Token" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("OpenAI_URL" , TestParameters);
OpenAI_GetModelList(TestParameters);
EndProcedure
#EndRegion // OpenAI
#EndRegion // RunnableTests
#EndRegion // Internal
#Region Private
#Region AtomicTests
#Region OpenAI
Procedure OpenAI_GetResponse(FunctionParameters)
URL = FunctionParameters["OpenAI_URL"];
Token = FunctionParameters["OpenAI_Token"];
// Text messages
Messages = New Array;
Messages.Add(OPI_OpenAI.GetMessageStructure("user" , "What is 1C:Enterprise?"));
Messages.Add(OPI_OpenAI.GetMessageStructure("assistant", "1C:Enterprise is a full-stack, low-code platform"));
Messages.Add(OPI_OpenAI.GetMessageStructure("user" , "When the first version was released?"));
Model = "smolvlm-256m-instruct";
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("token", Token);
Options.Insert("model", Model);
Options.Insert("msgs", Messages);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("openai", "GetResponse", Options);
OPI_TestDataRetrieval.Process(Result, "OpenAI", "GetResponse"); // SKIP
// Pictures
Model = "moondream2-20250414";
File = FunctionParameters["Picture"]; // URL, Path or Binary Data
FileName = StrTemplate("%1.png", String(New UUID()));
Destination = "user_data";
Messages = New Array;
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("token", Token);
Options.Insert("name", FileName);
Options.Insert("data", File);
Options.Insert("purpose", Destination);
ImageUpload = OPI_TestDataRetrieval.ExecuteTestCLI("openai", "UploadFile", Options);
OPI_TestDataRetrieval.Process(ImageUpload, "OpenAI", "GetResponse", "Image upload"); // SKIP
ImageID = ImageUpload["id"];
Options = New Structure;
Options.Insert("role", "user");
Options.Insert("file", ImageID);
Options.Insert("prompt", "What is in this image?");
Description = OPI_TestDataRetrieval.ExecuteTestCLI("openai", "GetImageMessageStructure", Options);
Messages.Add(Description);
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("token", Token);
Options.Insert("model", Model);
Options.Insert("msgs", Messages);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("openai", "GetResponse", Options);
OPI_OpenAI.DeleteFile(URL, Token, ImageID);
// END
OPI_TestDataRetrieval.Process(Result, "OpenAI", "GetResponse", "Image");
EndProcedure
Procedure OpenAI_GetEmbeddings(FunctionParameters)
URL = FunctionParameters["OpenAI_URL"];
Token = FunctionParameters["OpenAI_Token"];
Text = "What is 1C:Enterprise?";
Model = "arcee-ai_afm-4.5b";
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("token", Token);
Options.Insert("model", Model);
Options.Insert("input", Text);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("openai", "GetEmbeddings", Options);
// END
OPI_TestDataRetrieval.Process(Result, "OpenAI", "GetEmbeddings");
EndProcedure
Procedure OpenAI_CreateAssistant(FunctionParameters)
URL = FunctionParameters["OpenAI_URL"];
Token = FunctionParameters["OpenAI_Token"];
Instruction = "You are a personal math tutor. When asked a question, write and run Python code to answer the question.";
Model = "smolvlm-256m-instruct";
Name = "Math tutor";
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("token", Token);
Options.Insert("model", Model);
Options.Insert("name", Name);
Options.Insert("inst", Instruction);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("openai", "CreateAssistant", Options);
// END
OPI_TestDataRetrieval.Process(Result, "OpenAI", "CreateAssistant", , FunctionParameters);
EndProcedure
Procedure OpenAI_DeleteAssistant(FunctionParameters)
URL = FunctionParameters["OpenAI_URL"];
Token = FunctionParameters["OpenAI_Token"];
AssistantID = FunctionParameters["OpenAI_Assistant"];
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("token", Token);
Options.Insert("id", AssistantID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("openai", "DeleteAssistant", Options);
// END
OPI_TestDataRetrieval.Process(Result, "OpenAI", "DeleteAssistant", , AssistantID);
EndProcedure
Procedure OpenAI_RetrieveAssistant(FunctionParameters)
URL = FunctionParameters["OpenAI_URL"];
Token = FunctionParameters["OpenAI_Token"];
AssistantID = FunctionParameters["OpenAI_Assistant"];
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("token", Token);
Options.Insert("id", AssistantID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("openai", "RetrieveAssistant", Options);
// END
OPI_TestDataRetrieval.Process(Result, "OpenAI", "RetrieveAssistant");
EndProcedure
Procedure OpenAI_GetAssistantsList(FunctionParameters)
URL = FunctionParameters["OpenAI_URL"];
Token = FunctionParameters["OpenAI_Token"];
Count = 2;
AdditionalParameters = New Structure("after,order", "asst_2", "desc");
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("token", Token);
Options.Insert("limit", Count);
Options.Insert("options", AdditionalParameters);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("openai", "GetAssistantsList", Options);
// END
OPI_TestDataRetrieval.Process(Result, "OpenAI", "GetAssistantsList");
EndProcedure
Procedure OpenAI_UploadFile(FunctionParameters)
URL = FunctionParameters["OpenAI_URL"];
Token = FunctionParameters["OpenAI_Token"];
File = FunctionParameters["Picture"]; // URL, Path or Binary Data
FileName = StrTemplate("%1.png", String(New UUID()));
Destination = "assistants";
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("token", Token);
Options.Insert("name", FileName);
Options.Insert("data", File);
Options.Insert("purpose", Destination);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("openai", "UploadFile", Options);
// END
OPI_TypeConversion.GetBinaryData(File);
OPI_TestDataRetrieval.Process(Result, "OpenAI", "UploadFile", , FunctionParameters, FileName, File.Size() + 2);
EndProcedure
Procedure OpenAI_DeleteFile(FunctionParameters)
URL = FunctionParameters["OpenAI_URL"];
Token = FunctionParameters["OpenAI_Token"];
FileID = FunctionParameters["OpenAI_File"];
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("token", Token);
Options.Insert("id", FileID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("openai", "DeleteFile", Options);
// END
OPI_TestDataRetrieval.Process(Result, "OpenAI", "DeleteFile", , FileID);
EndProcedure
Procedure OpenAI_GetFileInformation(FunctionParameters)
URL = FunctionParameters["OpenAI_URL"];
Token = FunctionParameters["OpenAI_Token"];
FileID = FunctionParameters["OpenAI_File"];
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("token", Token);
Options.Insert("id", FileID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("openai", "GetFileInformation", Options);
// END
OPI_TestDataRetrieval.Process(Result, "OpenAI", "GetFileInformation");
EndProcedure
Procedure OpenAI_GetFilesList(FunctionParameters)
URL = FunctionParameters["OpenAI_URL"];
Token = FunctionParameters["OpenAI_Token"];
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("token", Token);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("openai", "GetFilesList", Options);
// END
OPI_TestDataRetrieval.Process(Result, "OpenAI", "GetFilesList");
EndProcedure
Procedure OpenAI_DownloadFile(FunctionParameters)
URL = FunctionParameters["OpenAI_URL"];
Token = FunctionParameters["OpenAI_Token"];
FileID = FunctionParameters["OpenAI_File"];
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("token", Token);
Options.Insert("id", FileID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("openai", "DownloadFile", Options);
// END
OPI_TestDataRetrieval.Process(Result, "OpenAI", "DownloadFile", , FunctionParameters);
EndProcedure
Procedure OpenAI_GetMessageStructure(FunctionParameters)
Options = New Structure;
Options.Insert("role", "user");
Options.Insert("text", "What is 1C:Enterprise?");
Result = OPI_TestDataRetrieval.ExecuteTestCLI("openai", "GetMessageStructure", Options);
// END
OPI_TestDataRetrieval.Process(Result, "OpenAI", "GetMessageStructure");
EndProcedure
Procedure OpenAI_GetImageMessageStructure(FunctionParameters)
URL = FunctionParameters["OpenAI_URL"];
Token = FunctionParameters["OpenAI_Token"];
Image = FunctionParameters["OpenAI_File"];
Options = New Structure;
Options.Insert("role", "user");
Options.Insert("file", Image);
Options.Insert("prompt", "What is in this image?");
Result = OPI_TestDataRetrieval.ExecuteTestCLI("openai", "GetImageMessageStructure", Options);
// END
OPI_TestDataRetrieval.Process(Result, "OpenAI", "GetImageMessageStructure");
EndProcedure
Procedure OpenAI_GenerateSpeech(FunctionParameters)
URL = FunctionParameters["OpenAI_URL"];
Token = FunctionParameters["OpenAI_Token"];
Text = "Attack ships on fire off the shoulder of Orion bright as magnesium";
Model = "bark-cpp-small";
AdditionalParameters = New Structure("response_format", "wav");
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("token", Token);
Options.Insert("model", Model);
Options.Insert("input", Text);
Options.Insert("options", AdditionalParameters);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("openai", "GenerateSpeech", Options);
// END
OPI_TestDataRetrieval.Process(Result, "OpenAI", "GenerateSpeech", , FunctionParameters);
EndProcedure
Procedure OpenAI_CreateTranscription(FunctionParameters)
URL = FunctionParameters["OpenAI_URL"];
Token = FunctionParameters["OpenAI_Token"];
Audio = FunctionParameters["OpenAI_Speech"];
Model = "whisper-1";
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("token", Token);
Options.Insert("model", Model);
Options.Insert("audio", Audio);
Options.Insert("type", "audio/wav");
Result = OPI_TestDataRetrieval.ExecuteTestCLI("openai", "CreateTranscription", Options);
// END
OPI_Tools.RemoveFileWithTry(Audio, "Failed to delete the temporary file after the test!!");
OPI_TestDataRetrieval.Process(Result, "OpenAI", "CreateTranscription");
EndProcedure
Procedure OpenAI_GetImages(FunctionParameters)
URL = FunctionParameters["OpenAI_URL"];
Token = FunctionParameters["OpenAI_Token"];
Model = "sd-1.5-ggml";
Options = New Structure;
Options.Insert("prompt", "Yellow alpaca");
Options.Insert("amount", 1);
Options.Insert("size", "64x64");
Description = OPI_TestDataRetrieval.ExecuteTestCLI("openai", "GetImageDescriptionStructure", Options);
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("token", Token);
Options.Insert("model", Model);
Options.Insert("descr", Description);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("openai", "GetImages", Options);
// END
OPI_TestDataRetrieval.Process(Result, "OpenAI", "GetImages");
EndProcedure
Procedure OpenAI_GetModelList(FunctionParameters)
URL = FunctionParameters["OpenAI_URL"];
Token = FunctionParameters["OpenAI_Token"];
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("token", Token);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("openai", "GetModelList", Options);
// END
OPI_TestDataRetrieval.Process(Result, "OpenAI", "GetModelList");
EndProcedure
Procedure OpenAI_GetAssistantMessage(FunctionParameters)
Options = New Structure;
Options.Insert("text", "What is 1C:Enterprise?");
Result = OPI_TestDataRetrieval.ExecuteTestCLI("openai", "GetAssistantMessage", Options);
// END
Options = New Structure;
Options.Insert("role", "assistant");
Options.Insert("text", "What is 1C:Enterprise?");
Check = OPI_TestDataRetrieval.ExecuteTestCLI("openai", "GetMessageStructure", Options);
Check = OPI_Tools.JSONString(Check);
Result = OPI_Tools.JSONString(Result);
OPI_TestDataRetrieval.Process(Result, "OpenAI", "GetAssistantMessage", , Check);
EndProcedure
Procedure OpenAI_GetUserMessage(FunctionParameters)
Options = New Structure;
Options.Insert("text", "What is 1C:Enterprise?");
Options.Insert("name", "Vitaly");
Result = OPI_TestDataRetrieval.ExecuteTestCLI("openai", "GetUserMessage", Options);
// END
Options = New Structure;
Options.Insert("role", "user");
Options.Insert("text", "What is 1C:Enterprise?");
Options.Insert("name", "Vitaly");
Check = OPI_TestDataRetrieval.ExecuteTestCLI("openai", "GetMessageStructure", Options);
Check = OPI_Tools.JSONString(Check);
Result = OPI_Tools.JSONString(Result);
OPI_TestDataRetrieval.Process(Result, "OpenAI", "GetUserMessage", , Check);
EndProcedure
Procedure OpenAI_GetSystemMessage(FunctionParameters)
Options = New Structure;
Options.Insert("text", "What is 1C:Enterprise?");
Result = OPI_TestDataRetrieval.ExecuteTestCLI("openai", "GetSystemMessage", Options);
// END
Options = New Structure;
Options.Insert("role", "system");
Options.Insert("text", "What is 1C:Enterprise?");
Check = OPI_TestDataRetrieval.ExecuteTestCLI("openai", "GetMessageStructure", Options);
Check = OPI_Tools.JSONString(Check);
Result = OPI_Tools.JSONString(Result);
OPI_TestDataRetrieval.Process(Result, "OpenAI", "GetSystemMessage", , Check);
EndProcedure
#EndRegion // OpenAI
#EndRegion // AtomicTests
#EndRegion // Private
#Region Alternate
Procedure OAI_ОбработкаЗапросов() Export
OAI_RequestsProcessing();
EndProcedure
Procedure OAI_Ассистенты() Export
OAI_Assistants();
EndProcedure
Procedure OAI_РаботаСФайлами() Export
OAI_FileManagement();
EndProcedure
Procedure OAI_РаботаСАудио() Export
OAI_AudioProcessing();
EndProcedure
Procedure OAI_РаботаСМоделями() Export
OAI_ModelsManagement();
EndProcedure
#EndRegion
File diff suppressed because it is too large Load Diff
+176 -4
View File
@@ -1,3 +1,5 @@
// OneScript: ./OInt/tests/Modules/OPItc_RCON.os
// MIT License
// Copyright (c) 2023-2026 Anton Tsitavets
@@ -9,7 +11,7 @@
// 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
// 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
@@ -22,6 +24,8 @@
// https://github.com/Bayselonarrend/OpenIntegrations
// Test suite for YAxUnit
// BSLLS:Typo-off
// BSLLS:LatinAndCyrillicSymbolInWord-off
// BSLLS:IncorrectLineBreak-off
@@ -63,6 +67,174 @@
//@skip-check missing-temporary-file-deletion
//@skip-check module-unused-method
// #Use oint
// #Use asserts
// #Use "internal"
//#Use "../../tools/main"
//#Use "../../tools/http"
//#Use "../../api"
//#Use asserts
//#Use "internal"
// For YAxUnit
Procedure ИсполняемыеСценарии() Export
OPI_TestDataRetrieval.FormYAXTests("RCON");
EndProcedure
// For Asserts
Function ПолучитьСписокТестов(UnitTesting) Export
Return OPI_TestDataRetrieval.FormAssertsTests("RCON");
EndFunction
#Region Internal
#Region RunnableTests
#Region RCON
Procedure RC_CommandsExecution() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("RCON_URL" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("RCON_Password", TestParameters);
RCON_FormConnectionParameters(TestParameters);
RCON_CreateConnection(TestParameters);
RCON_ExecuteCommand(TestParameters);
RCON_IsConnector(TestParameters);
EndProcedure
#EndRegion // RCON
#EndRegion // RunnableTests
#EndRegion // Internal
#Region Private
#Region AtomicTests
#Region RCON
Procedure RCON_FormConnectionParameters(FunctionParameters)
URL = FunctionParameters["RCON_URL"];
Password = FunctionParameters["RCON_Password"];
WriteTimeout = 20;
ReadTimeout = 20;
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("pass", Password);
Options.Insert("rtout", ReadTimeout);
Options.Insert("wtout", WriteTimeout);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("rcon", "FormConnectionParameters", Options);
// END
OPI_TestDataRetrieval.Process(Result, "RCON", "FormConnectionParameters");
EndProcedure
Procedure RCON_CreateConnection(FunctionParameters)
URL = FunctionParameters["RCON_URL"];
Password = FunctionParameters["RCON_Password"];
WriteTimeout = 20;
ReadTimeout = 20;
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("pass", Password);
Options.Insert("rtout", ReadTimeout);
Options.Insert("wtout", WriteTimeout);
ConnectionParams = OPI_TestDataRetrieval.ExecuteTestCLI("rcon", "FormConnectionParameters", Options);
Result = OPI_RCON.CreateConnection(ConnectionParams);
// END
OPI_TestDataRetrieval.Process(Result, "RCON", "CreateConnection");
EndProcedure
Procedure RCON_ExecuteCommand(FunctionParameters)
URL = FunctionParameters["RCON_URL"];
Password = FunctionParameters["RCON_Password"];
WriteTimeout = 20;
ReadTimeout = 20;
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("pass", Password);
Options.Insert("rtout", ReadTimeout);
Options.Insert("wtout", WriteTimeout);
ConnectionParams = OPI_TestDataRetrieval.ExecuteTestCLI("rcon", "FormConnectionParameters", Options);
Connection = OPI_RCON.CreateConnection(ConnectionParams);
Command = "list";
Options = New Structure;
Options.Insert("exec", Command);
Options.Insert("conn", Connection);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("rcon", "ExecuteCommand", Options);
// END
OPI_TestDataRetrieval.Process(Result, "RCON", "ExecuteCommand");
Command = "list";
Options = New Structure;
Options.Insert("exec", Command);
Options.Insert("conn", ConnectionParams);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("rcon", "ExecuteCommand", Options);
OPI_TestDataRetrieval.Process(Result, "RCON", "ExecuteCommand", "No connection");
EndProcedure
Procedure RCON_IsConnector(FunctionParameters)
URL = FunctionParameters["RCON_URL"];
Password = FunctionParameters["RCON_Password"];
WriteTimeout = 20;
ReadTimeout = 20;
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("pass", Password);
Options.Insert("rtout", ReadTimeout);
Options.Insert("wtout", WriteTimeout);
ConnectionParams = OPI_TestDataRetrieval.ExecuteTestCLI("rcon", "FormConnectionParameters", Options);
Connection = OPI_RCON.CreateConnection(ConnectionParams);
Result = OPI_RCON.IsConnector(Connection);
// END
OPI_TestDataRetrieval.Process(Result, "RCON", "IsConnector");
EndProcedure
#EndRegion // RCON
#EndRegion // AtomicTests
#EndRegion // Private
#Region Alternate
Procedure RC_ВыполнениеКоманд() Export
RC_CommandsExecution();
EndProcedure
#EndRegion
+271 -4
View File
@@ -1,3 +1,5 @@
// OneScript: ./OInt/tests/Modules/OPItc_RSS.os
// MIT License
// Copyright (c) 2023-2026 Anton Tsitavets
@@ -9,7 +11,7 @@
// 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
// 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
@@ -22,6 +24,8 @@
// https://github.com/Bayselonarrend/OpenIntegrations
// Test suite for YAxUnit
// BSLLS:Typo-off
// BSLLS:LatinAndCyrillicSymbolInWord-off
// BSLLS:IncorrectLineBreak-off
@@ -63,6 +67,269 @@
//@skip-check missing-temporary-file-deletion
//@skip-check module-unused-method
// #Use oint
// #Use asserts
// #Use "internal"
//#Use "../../tools/main"
//#Use "../../tools/http"
//#Use "../../api"
//#Use asserts
//#Use "internal"
// For YAxUnit
Procedure ИсполняемыеСценарии() Export
OPI_TestDataRetrieval.FormYAXTests("RSS");
EndProcedure
// For Asserts
Function ПолучитьСписокТестов(UnitTesting) Export
Return OPI_TestDataRetrieval.FormAssertsTests("RSS");
EndFunction
#Region Internal
#Region RunnableTests
#Region RSS
Procedure RSS_RSSMethods() Export
TestParameters = New Structure;
RSS_CreateFeedRSS(TestParameters);
RSS_GetFeedItemStructureRSS(TestParameters);
RSS_ParseFeedRSS(TestParameters);
EndProcedure
Procedure RSS_AtomMethods() Export
TestParameters = New Structure;
RSS_CreateFeedAtom(TestParameters);
RSS_GetFeedItemStructureAtom(TestParameters);
RSS_ParseFeedAtom(TestParameters);
EndProcedure
#EndRegion // RSS
#EndRegion // RunnableTests
#EndRegion // Internal
#Region Private
#Region AtomicTests
#Region RSS
Procedure RSS_CreateFeedRSS(FunctionParameters)
ChannelTitle = "Test RSS channel";
ChannelDescription = "Test RSS channel description";
ChannelLink = "https://example.com";
ItemsArray = New Array;
Options = New Structure;
Options.Insert("empty", Истина);
ElementStructure = OPI_TestDataRetrieval.ExecuteTestCLI("rss", "GetFeedItemStructureRSS", Options);
ElementStructure["title"] = "First element";
ElementStructure["description"] = "First element description";
ElementStructure["link"] = "https://example.com/item1";
ElementStructure["pubDate"] = OPI_Tools.GetCurrentDate();
ElementStructure["author"] = "test@example.com";
ElementStructure["guid"] = "item-1";
ItemsArray.Add(ElementStructure);
Options = New Structure;
Options.Insert("empty", Истина);
ElementStructure = OPI_TestDataRetrieval.ExecuteTestCLI("rss", "GetFeedItemStructureRSS", Options);
ElementStructure["title"] = "Second element";
ElementStructure["description"] = "Second element description";
ElementStructure["link"] = "https://example.com/item2";
ElementStructure["pubDate"] = OPI_Tools.GetCurrentDate();
ElementStructure["author"] = "test@example.com";
ElementStructure["guid"] = "item-2";
ItemsArray.Add(ElementStructure);
Options = New Structure;
Options.Insert("name", ChannelTitle);
Options.Insert("descr", ChannelDescription);
Options.Insert("link", ChannelLink);
Options.Insert("items", ItemsArray);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("rss", "CreateFeedRSS", Options);
// END
OPI_TestDataRetrieval.Process(Result, "RSS", "CreateFeedRSS", , FunctionParameters);
EndProcedure
Procedure RSS_GetFeedItemStructureRSS(FunctionParameters)
Options = New Structure;
Result = OPI_TestDataRetrieval.ExecuteTestCLI("rss", "GetFeedItemStructureRSS", Options);
// END
OPI_TestDataRetrieval.Process(Result, "RSS", "GetFeedItemStructureRSS");
Options = New Structure;
Options.Insert("empty", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("rss", "GetFeedItemStructureRSS", Options);
OPI_TestDataRetrieval.Process(Result, "RSS", "GetFeedItemStructureRSS", "Clear");
Options = New Structure;
Options.Insert("empty", Ложь);
Options.Insert("map", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("rss", "GetFeedItemStructureRSS", Options);
OPI_TestDataRetrieval.Process(Result, "RSS", "GetFeedItemStructureRSS", "Map");
EndProcedure
Procedure RSS_ParseFeedRSS(FunctionParameters)
FeedXML = FunctionParameters["RSS_FeedXML"];
Options = New Structure;
Options.Insert("xml", FeedXML);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("rss", "ParseFeedRSS", Options);
// END
OPI_TestDataRetrieval.Process(Result, "RSS", "ParseFeedRSS");
OPI_Tools.RemoveFileWithTry(FeedXML, "Failed to delete the temporary file after the test!!");
EndProcedure
Procedure RSS_CreateFeedAtom(FunctionParameters)
FeedTitle = "Test Atom feed";
FeedLink = "https://example.com";
FeedID = "https://example.com/feed";
ItemsArray = New Array;
Options = New Structure;
Options.Insert("empty", Истина);
ElementStructure = OPI_TestDataRetrieval.ExecuteTestCLI("rss", "GetFeedItemStructureAtom", Options);
ElementStructure["title"] = "First record";
ElementStructure["id"] = "https://example.com/entry1";
ElementStructure["link"] = "https://example.com/entry1";
ElementStructure["updated"] = OPI_Tools.GetCurrentDate();
ElementStructure["summary"] = "First record summary";
ElementStructure["content"] = "Full content of the first record";
ElementStructure["author"] = "First Author";
ElementStructure["published"] = OPI_Tools.GetCurrentDate();
ItemsArray.Add(ElementStructure);
Options = New Structure;
Options.Insert("empty", Истина);
ElementStructure = OPI_TestDataRetrieval.ExecuteTestCLI("rss", "GetFeedItemStructureAtom", Options);
ElementStructure["title"] = "Second record";
ElementStructure["id"] = "https://example.com/entry2";
ElementStructure["link"] = "https://example.com/entry2";
ElementStructure["updated"] = OPI_Tools.GetCurrentDate();
ElementStructure["summary"] = "Second record summary";
ElementStructure["content"] = "Full content of the second record";
ElementStructure["author"] = "Second Author";
ElementStructure["published"] = OPI_Tools.GetCurrentDate();
ItemsArray.Add(ElementStructure);
Options = New Structure;
Options.Insert("name", FeedTitle);
Options.Insert("link", FeedLink);
Options.Insert("id", FeedID);
Options.Insert("items", ItemsArray);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("rss", "CreateFeedAtom", Options);
// END
OPI_TestDataRetrieval.Process(Result, "RSS", "CreateFeedAtom", , FunctionParameters);
EndProcedure
Procedure RSS_GetFeedItemStructureAtom(FunctionParameters)
Options = New Structure;
Result = OPI_TestDataRetrieval.ExecuteTestCLI("rss", "GetFeedItemStructureAtom", Options);
// END
OPI_TestDataRetrieval.Process(Result, "RSS", "GetFeedItemStructureAtom");
Options = New Structure;
Options.Insert("empty", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("rss", "GetFeedItemStructureAtom", Options);
OPI_TestDataRetrieval.Process(Result, "RSS", "GetFeedItemStructureAtom", "Clear");
Options = New Structure;
Options.Insert("empty", Ложь);
Options.Insert("map", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("rss", "GetFeedItemStructureAtom", Options);
OPI_TestDataRetrieval.Process(Result, "RSS", "GetFeedItemStructureAtom", "Map");
EndProcedure
Procedure RSS_ParseFeedAtom(FunctionParameters)
FeedXML = FunctionParameters["RSS_AtomFeedXML"];
Options = New Structure;
Options.Insert("xml", FeedXML);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("rss", "ParseFeedAtom", Options);
// END
OPI_TestDataRetrieval.Process(Result, "RSS", "ParseFeedAtom");
OPI_Tools.RemoveFileWithTry(FeedXML, "Failed to delete the temporary file after the test!!");
EndProcedure
#EndRegion // RSS
#EndRegion // AtomicTests
#EndRegion // Private
#Region Alternate
Procedure RSS_МетодыRSS() Export
RSS_RSSMethods();
EndProcedure
Procedure RSS_МетодыAtom() Export
RSS_AtomMethods();
EndProcedure
#EndRegion
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+929 -4
View File
@@ -1,3 +1,5 @@
// OneScript: ./OInt/tests/Modules/OPItc_SQLite.os
// MIT License
// Copyright (c) 2023-2026 Anton Tsitavets
@@ -9,7 +11,7 @@
// 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
// 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
@@ -22,6 +24,8 @@
// https://github.com/Bayselonarrend/OpenIntegrations
// Test suite for YAxUnit
// BSLLS:Typo-off
// BSLLS:LatinAndCyrillicSymbolInWord-off
// BSLLS:IncorrectLineBreak-off
@@ -63,6 +67,927 @@
//@skip-check missing-temporary-file-deletion
//@skip-check module-unused-method
// #Use oint
// #Use asserts
// #Use "internal"
//#Use "../../tools/main"
//#Use "../../tools/http"
//#Use "../../api"
//#Use asserts
//#Use "internal"
// For YAxUnit
Procedure ИсполняемыеСценарии() Export
OPI_TestDataRetrieval.FormYAXTests("SQLite");
EndProcedure
// For Asserts
Function ПолучитьСписокТестов(UnitTesting) Export
Return OPI_TestDataRetrieval.FormAssertsTests("SQLite");
EndFunction
#Region Internal
#Region RunnableTests
#Region SQLite
Procedure SQLL_CommonMethods() Export
TestParameters = New Structure;
Base = GetTempFileName("sqlite");
OPI_TestDataRetrieval.WriteParameter("SQLite_DB", Base);
OPI_Tools.AddField("SQLite_DB", Base, "String", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Picture" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("SQLite_Ext" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("SQLite_ExtLinux", TestParameters);
SQLite_CreateConnection(TestParameters);
SQLite_CloseConnection(TestParameters);
SQLite_ExecuteSQLQuery(TestParameters);
SQLite_IsConnector(TestParameters);
SQLite_ConnectExtension(TestParameters);
OPI_Tools.RemoveFileWithTry(Base, "Database file deletion error");
EndProcedure
Procedure SQLL_ORM() Export
TestParameters = New Structure;
Base = GetTempFileName("sqlite");
Connection = OPI_SQLite.CreateConnection(Base);
TestParameters.Insert("SQLite_DB", Connection);
OPI_TestDataRetrieval.ParameterToCollection("Picture", TestParameters);
SQLite_CreateTable(TestParameters);
SQLite_AddRecords(TestParameters);
SQLite_EnsureRecords(TestParameters);
SQLite_GetRecords(TestParameters);
SQLite_UpdateRecords(TestParameters);
SQLite_DeleteRecords(TestParameters);
SQLite_GetTableInformation(TestParameters);
SQLite_AddTableColumn(TestParameters);
SQLite_DeleteTableColumn(TestParameters);
SQLite_EnsureTable(TestParameters);
SQLite_ClearTable(TestParameters);
SQLite_DeleteTable(TestParameters);
SQLite_GetRecordsFilterStructure(TestParameters);
OPI_TestDataRetrieval.WriteParameter("SQLite_DB", Base);
OPI_Tools.AddField("SQLite_DB", Base, "String", TestParameters);
SQLite_CreateTable(TestParameters);
SQLite_AddRecords(TestParameters);
SQLite_EnsureRecords(TestParameters);
SQLite_GetRecords(TestParameters);
SQLite_UpdateRecords(TestParameters);
SQLite_DeleteRecords(TestParameters);
SQLite_GetTableInformation(TestParameters);
SQLite_AddTableColumn(TestParameters);
SQLite_DeleteTableColumn(TestParameters);
SQLite_EnsureTable(TestParameters);
SQLite_ClearTable(TestParameters);
SQLite_DeleteTable(TestParameters);
SQLite_GetRecordsFilterStructure(TestParameters);
OPI_Tools.RemoveFileWithTry(Base, "Database file deletion error");
EndProcedure
#EndRegion // SQLite
#EndRegion // RunnableTests
#EndRegion // Internal
#Region Private
#Region AtomicTests
#Region SQLite
Procedure SQLite_CreateConnection(FunctionParameters)
TFN = GetTempFileName("sqlite");
LocalBase = OPI_SQLite.CreateConnection(TFN);
InMemoryBase = OPI_SQLite.CreateConnection();
// END
OPI_TestDataRetrieval.Process(LocalBase , "SQLite", "CreateConnection");
OPI_TestDataRetrieval.Process(InMemoryBase, "SQLite", "CreateConnection", "IM");
Closing = OPI_SQLite.CloseConnection(LocalBase);
OPI_TestDataRetrieval.Process(Closing, "SQLite", "CreateConnection", "Closing");
OPI_Tools.RemoveFileWithTry(TFN, "Database file deletion error");
EndProcedure
Procedure SQLite_CloseConnection(FunctionParameters)
TFN = GetTempFileName("sqlite");
Connection = OPI_SQLite.CreateConnection(TFN);
OPI_TestDataRetrieval.Process(Connection, "SQLite", "CloseConnection", "Openning"); // SKIP
Closing = OPI_SQLite.CloseConnection(Connection);
// END
OPI_TestDataRetrieval.Process(Closing, "SQLite", "CloseConnection");
OPI_Tools.RemoveFileWithTry(TFN, "Database file deletion error");
EndProcedure
Procedure SQLite_ExecuteSQLQuery(FunctionParameters)
TFN = GetTempFileName("sqlite");
Image = FunctionParameters["Picture"];
OPI_TypeConversion.GetBinaryData(Image); // Image - Type: BinaryData
Connection = OPI_SQLite.CreateConnection(TFN);
OPI_TestDataRetrieval.Process(Connection, "SQLite", "ExecuteSQLQuery", "Openning"); // SKIP
// CREATE
QueryText = "
|CREATE TABLE test_table (
|id INTEGER PRIMARY KEY,
|name TEXT,
|age INTEGER,
|salary REAL,
|is_active BOOLEAN,
|created_at DATETIME,
|data BLOB
|);";
Options = New Structure;
Options.Insert("sql", QueryText);
Options.Insert("db", Connection);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "ExecuteSQLQuery", Options);
OPI_TestDataRetrieval.Process(Result, "SQLite", "ExecuteSQLQuery", "Create"); // SKIP
// INSERT with parameters
QueryText = "
|INSERT INTO test_table (name, age, salary, is_active, created_at, data)
|VALUES (?1, ?2, ?3, ?4, ?5, ?6);";
ParameterArray = New Array;
ParameterArray.Add("Vitaly"); // TEXT
ParameterArray.Add(25); // INTEGER
ParameterArray.Add(1000.12); // REAL
ParameterArray.Add(True); // BOOL
ParameterArray.Add(OPI_Tools.GetCurrentDate()); // DATETIME
ParameterArray.Add(New Structure("blob", Image)); // BLOB
Options = New Structure;
Options.Insert("sql", QueryText);
Options.Insert("params", ParameterArray);
Options.Insert("db", Connection);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "ExecuteSQLQuery", Options);
OPI_TestDataRetrieval.Process(Result, "SQLite", "ExecuteSQLQuery", "Insert"); // SKIP
// SELECT (The result of this query is shown in the Result block)
QueryText = "SELECT id, name, age, salary, is_active, created_at, data FROM test_table;";
Options = New Structure;
Options.Insert("sql", QueryText);
Options.Insert("db", Connection);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "ExecuteSQLQuery", Options);
OPI_TestDataRetrieval.Process(Result, "SQLite", "ExecuteSQLQuery", , Image); // SKIP
// Transaction
QueryText = "BEGIN TRANSACTION;
| CREATE TABLE IF NOT EXISTS users (
| id INTEGER PRIMARY KEY AUTOINCREMENT,
| name TEXT NOT NULL,
| age INTEGER NOT NULL
| );
| INSERT INTO users (name, age) VALUES ('Alice', 30);
| INSERT INTO users (name, age) VALUES ('Bob', 25);
| INSERT INTO users (name, age) VALUES ('Charlie', 35);
| COMMIT;";
Options = New Structure;
Options.Insert("sql", QueryText);
Options.Insert("db", Connection);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "ExecuteSQLQuery", Options);
OPI_TestDataRetrieval.Process(Result, "SQLite", "ExecuteSQLQuery", "Transaction"); // SKIP
// With extension
If OPI_Tools.IsWindows() Then
Extension = FunctionParameters["SQLite_Ext"]; // URL, Path or Binary Data
Else
Extension = FunctionParameters["SQLite_ExtLinux"]; // URL, Path or Binary Data
EndIf;
EntryPoint = "sqlite3_uuid_init";
ExtensionMap = New Map;
ExtensionMap.Insert(Extension, EntryPoint);
QueryText = "SELECT uuid4();";
Options = New Structure;
Options.Insert("sql", QueryText);
Options.Insert("db", Connection);
Options.Insert("exts", ExtensionMap);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "ExecuteSQLQuery", Options);
OPI_TestDataRetrieval.Process(Result, "SQLite", "ExecuteSQLQuery", "Extension"); // SKIP
Closing = OPI_SQLite.CloseConnection(Connection);
// END
OPI_TestDataRetrieval.Process(Result, "SQLite", "ExecuteSQLQuery", "Closing");
OPI_Tools.RemoveFileWithTry(TFN, "Database file deletion error");
EndProcedure
Procedure SQLite_IsConnector(FunctionParameters)
Connection = OPI_SQLite.CreateConnection();
Result = OPI_SQLite.IsConnector(Connection);
// END
OPI_TestDataRetrieval.Process(Result, "SQLite", "IsConnector");
EndProcedure
Procedure SQLite_CreateTable(FunctionParameters)
Base = FunctionParameters["SQLite_DB"];
Table = "test";
ColoumnsStruct = New Structure;
ColoumnsStruct.Insert("id" , "INTEGER PRIMARY KEY");
ColoumnsStruct.Insert("name" , "TEXT");
ColoumnsStruct.Insert("age" , "INTEGER");
ColoumnsStruct.Insert("salary" , "REAL");
ColoumnsStruct.Insert("is_active" , "BOOLEAN");
ColoumnsStruct.Insert("created_at", "DATETIME");
ColoumnsStruct.Insert("data" , "BLOB");
Options = New Structure;
Options.Insert("table", Table);
Options.Insert("cols", ColoumnsStruct);
Options.Insert("db", Base);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "CreateTable", Options);
// END
OPI_TestDataRetrieval.Process(Result, "SQLite", "CreateTable");
ColoumnsMap = New Map;
ColoumnsMap.Insert("id" , "INTEGER PRIMARY KEY");
ColoumnsMap.Insert("[An obscure column]", "TEXT");
Options = New Structure;
Options.Insert("table", "test1");
Options.Insert("cols", ColoumnsMap);
Options.Insert("db", Base);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "CreateTable", Options);
OPI_TestDataRetrieval.Process(Result, "SQLite", "CreateTable", "An obscure column");
EndProcedure
Procedure SQLite_AddRecords(FunctionParameters)
Image = FunctionParameters["Picture"];
OPI_TypeConversion.GetBinaryData(Image); // Image - Type: BinaryData
PictureFile = GetTempFileName("png");
Image.Write(PictureFile); // PictureFile - File to disk
Base = FunctionParameters["SQLite_DB"];
Table = "test";
DataArray = New Array;
RowStructure2 = New Structure;
RowStructure2.Insert("name" , "Vitaly"); // TEXT
RowStructure2.Insert("age" , 25); // INTEGER
RowStructure2.Insert("salary" , 1000.12); // REAL
RowStructure2.Insert("is_active" , True); // BOOL
RowStructure2.Insert("created_at", OPI_Tools.GetCurrentDate()); // DATETIME
RowStructure2.Insert("data" , New Structure("blob", Image)); // BLOB
RowStructure1 = New Structure;
RowStructure1.Insert("name" , "Lesha"); // TEXT
RowStructure1.Insert("age" , 20); // INTEGER
RowStructure1.Insert("salary" , 200.20); // REAL
RowStructure1.Insert("is_active" , False); // BOOL
RowStructure1.Insert("created_at", OPI_Tools.GetCurrentDate()); // DATETIME
RowStructure1.Insert("data" , New Structure("blob", PictureFile)); // BLOB
DataArray.Add(RowStructure2);
DataArray.Add(RowStructure1);
Options = New Structure;
Options.Insert("table", Table);
Options.Insert("rows", DataArray);
Options.Insert("db", Base);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "AddRecords", Options);
// END
OPI_TestDataRetrieval.Process(Result, "SQLite", "AddRecords");
Options = New Structure;
Options.Insert("table", Table);
Options.Insert("rows", DataArray);
Options.Insert("trn", Ложь);
Options.Insert("db", Base);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "AddRecords", Options);
OPI_TestDataRetrieval.Process(Result, "SQLite", "AddRecords", "No transaction");
RowStructure1.Insert("error", "Lesha");
DataArray.Add(RowStructure1);
Options = New Structure;
Options.Insert("table", Table);
Options.Insert("rows", DataArray);
Options.Insert("db", Base);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "AddRecords", Options);
OPI_TestDataRetrieval.Process(Result, "SQLite", "AddRecords", "Field error");
Options = New Structure;
Options.Insert("table", Table);
Options.Insert("rows", DataArray);
Options.Insert("trn", Ложь);
Options.Insert("db", Base);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "AddRecords", Options);
OPI_TestDataRetrieval.Process(Result, "SQLite", "AddRecords", "Error without transaction");
Options = New Structure;
Options.Insert("table", Table);
Options.Insert("rows", "not valid json");
Options.Insert("db", Base);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "AddRecords", Options);
OPI_TestDataRetrieval.Process(Result, "SQLite", "AddRecords", "JSON Error");
RowMap = New Map;
RowMap.Insert("[An obscure column]", "yo");
Options = New Structure;
Options.Insert("table", "test1");
Options.Insert("rows", RowMap);
Options.Insert("db", Base);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "AddRecords", Options);
OPI_TestDataRetrieval.Process(Result, "SQLite", "AddRecords", "An obscure column");
OPI_Tools.RemoveFileWithTry(PictureFile, "Failed to delete the temporary file after the test!!");
EndProcedure
Procedure SQLite_GetRecords(FunctionParameters)
Base = FunctionParameters["SQLite_DB"];
Table = "test";
Fields = New Array;
Fields.Add("name");
Fields.Add("salary");
Filters = New Array;
FilterStructure1 = New Structure;
FilterStructure1.Insert("field", "name");
FilterStructure1.Insert("type" , "=");
FilterStructure1.Insert("value", "Vitaly");
FilterStructure1.Insert("union", "AND");
FilterStructure1.Insert("raw" , False);
FilterStructure2 = New Structure;
FilterStructure2.Insert("field", "age");
FilterStructure2.Insert("type" , "BETWEEN");
FilterStructure2.Insert("value", "20 AND 30");
FilterStructure2.Insert("raw" , True);
Filters.Add(FilterStructure1);
Filters.Add(FilterStructure2);
Sort = New Structure("created_at", "DESC");
Count = 1;
Options = New Structure;
Options.Insert("table", Table);
Options.Insert("fields", Fields);
Options.Insert("filter", Filters);
Options.Insert("order", Sort);
Options.Insert("limit", Count);
Options.Insert("db", Base);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "GetRecords", Options);
// END
OPI_TestDataRetrieval.Process(Result, "SQLite", "GetRecords");
Options = New Structure;
Options.Insert("table", Table);
Options.Insert("fields", "['name','age','salary','is_active','created_at']");
Options.Insert("db", Base);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "GetRecords", Options);
OPI_TestDataRetrieval.Process(Result, "SQLite", "GetRecords", "No parameters");
FilterStructure2.Insert("type", "SOMETHING");
Filters.Add(FilterStructure2);
Options = New Structure;
Options.Insert("table", Table);
Options.Insert("fields", "['name','age','salary','is_active','created_at']");
Options.Insert("filter", Filters);
Options.Insert("db", Base);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "GetRecords", Options);
OPI_TestDataRetrieval.Process(Result, "SQLite", "GetRecords", "Error");
Options = New Structure;
Options.Insert("table", "test1");
Options.Insert("db", Base);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "GetRecords", Options);
OPI_TestDataRetrieval.Process(Result, "SQLite", "GetRecords", "An obscure column");
EndProcedure
Procedure SQLite_UpdateRecords(FunctionParameters)
Base = FunctionParameters["SQLite_DB"];
Table = "test";
FieldsStructure = New Structure;
FieldsStructure.Insert("name" , "Vitaly A.");
FieldsStructure.Insert("salary", "999999");
Filters = New Array;
FilterStructure = New Structure;
FilterStructure.Insert("field", "name");
FilterStructure.Insert("type" , "=");
FilterStructure.Insert("value", "Vitaly");
FilterStructure.Insert("union", "AND");
FilterStructure.Insert("raw" , False);
Filters.Add(FilterStructure);
Options = New Structure;
Options.Insert("table", Table);
Options.Insert("values", FieldsStructure);
Options.Insert("filter", FilterStructure);
Options.Insert("db", Base);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "UpdateRecords", Options);
// END
OPI_TestDataRetrieval.Process(Result, "SQLite", "UpdateRecords");
FilterStructure.Insert("value", "Vitaly A.");
Filters = New Array;
Filters.Add(FilterStructure);
Options = New Structure;
Options.Insert("table", Table);
Options.Insert("fields", "['name','salary']");
Options.Insert("filter", Filters);
Options.Insert("db", Base);
Check = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "GetRecords", Options);
OPI_TestDataRetrieval.Process(Check, "SQLite", "UpdateRecords", "Check", FieldsStructure);
EndProcedure
Procedure SQLite_DeleteRecords(FunctionParameters)
Base = FunctionParameters["SQLite_DB"];
Table = "test";
Filters = New Array;
FilterStructure = New Structure;
FilterStructure.Insert("field", "name");
FilterStructure.Insert("type" , "=");
FilterStructure.Insert("value", "Vitaly A.");
FilterStructure.Insert("union", "AND");
FilterStructure.Insert("raw" , False);
Filters.Add(FilterStructure);
Options = New Structure;
Options.Insert("table", Table);
Options.Insert("filter", FilterStructure);
Options.Insert("db", Base);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "DeleteRecords", Options);
// END
OPI_TestDataRetrieval.Process(Result, "SQLite", "DeleteRecords");
Options = New Structure;
Options.Insert("table", Table);
Options.Insert("fields", "['name','salary']");
Options.Insert("filter", Filters);
Options.Insert("db", Base);
Check = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "GetRecords", Options);
OPI_TestDataRetrieval.Process(Check, "SQLite", "DeleteRecords", "Check");
EndProcedure
Procedure SQLite_GetTableInformation(FunctionParameters)
Base = FunctionParameters["SQLite_DB"];
Table = "test";
Options = New Structure;
Options.Insert("table", Table);
Options.Insert("db", Base);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "GetTableInformation", Options);
// END
OPI_TestDataRetrieval.Process(Result, "SQLite", "GetTableInformation");
EndProcedure
Procedure SQLite_EnsureRecords(FunctionParameters)
Base = FunctionParameters["SQLite_DB"];
Table = "test_merge";
ColoumnsStruct = New Structure; // SKIP
ColoumnsStruct.Insert("id" , "INTEGER PRIMARY KEY"); // SKIP
ColoumnsStruct.Insert("name" , "TEXT"); // SKIP
ColoumnsStruct.Insert("age" , "INTEGER"); // SKIP
ColoumnsStruct.Insert("salary" , "REAL"); // SKIP
OPI_SQLite.CreateTable(Table, ColoumnsStruct, Base); // SKIP
DataArray = New Array;
RowStructure2 = New Structure;
RowStructure2.Insert("id" , 1);
RowStructure2.Insert("name" , "Vitaly");
RowStructure2.Insert("age" , 25);
RowStructure2.Insert("salary", 1000.12);
RowStructure1 = New Structure;
RowStructure1.Insert("id" , 2);
RowStructure1.Insert("name" , "Lesha");
RowStructure1.Insert("age" , 20);
RowStructure1.Insert("salary", 200.20);
DataArray.Add(RowStructure2);
DataArray.Add(RowStructure1);
KeyFields = New Array;
KeyFields.Add("id");
Options = New Structure;
Options.Insert("table", Table);
Options.Insert("rows", DataArray);
Options.Insert("unique", KeyFields);
Options.Insert("db", Base);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "EnsureRecords", Options);
// END
OPI_TestDataRetrieval.Process(Result, "SQLite", "EnsureRecords", "Insertion");
Options = New Structure;
Options.Insert("table", Table);
Options.Insert("fields", "*");
Options.Insert("db", Base);
Check = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "GetRecords", Options);
OPI_TestDataRetrieval.Process(Check, "SQLite", "EnsureRecords", "Insertion check");
RowStructure2.Insert("name" , "Vitaly Updated");
RowStructure2.Insert("salary", 1500.50);
StringStructure3 = New Structure;
StringStructure3.Insert("id" , 3);
StringStructure3.Insert("name" , "Anton");
StringStructure3.Insert("age" , 30);
StringStructure3.Insert("salary", 3000.00);
DataArray = New Array;
DataArray.Add(RowStructure2);
DataArray.Add(StringStructure3);
Options = New Structure;
Options.Insert("table", Table);
Options.Insert("rows", DataArray);
Options.Insert("unique", KeyFields);
Options.Insert("db", Base);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "EnsureRecords", Options);
OPI_TestDataRetrieval.Process(Result, "SQLite", "EnsureRecords", "Updating");
Options = New Structure;
Options.Insert("table", Table);
Options.Insert("fields", "*");
Options.Insert("db", Base);
Check = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "GetRecords", Options);
OPI_TestDataRetrieval.Process(Check, "SQLite", "EnsureRecords", "Updating check");
OPI_SQLite.DeleteTable(Table, Base);
EndProcedure
Procedure SQLite_GetRecordsFilterStructure(FunctionParameters)
Options = New Structure;
Result = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "GetRecordsFilterStructure", Options);
// END
OPI_TestDataRetrieval.Process(Result, "SQLite", "GetRecordsFilterStructure");
Options = New Structure;
Options.Insert("empty", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "GetRecordsFilterStructure", Options);
OPI_TestDataRetrieval.Process(Result, "SQLite", "GetRecordsFilterStructure", "Clear");
EndProcedure
Procedure SQLite_DeleteTable(FunctionParameters)
Base = FunctionParameters["SQLite_DB"];
Table = "test";
Options = New Structure;
Options.Insert("table", Table);
Options.Insert("db", Base);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "DeleteTable", Options);
// END
OPI_TestDataRetrieval.Process(Result, "SQLite", "DeleteTable");
Options = New Structure;
Options.Insert("table", Table);
Options.Insert("db", Base);
Check = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "GetTableInformation", Options);
OPI_TestDataRetrieval.Process(Check, "SQLite", "DeleteTable", "Check");
OPI_SQLite.DeleteTable("test1", Base);
EndProcedure
Procedure SQLite_ClearTable(FunctionParameters)
Base = FunctionParameters["SQLite_DB"];
Table = "test";
Options = New Structure;
Options.Insert("table", Table);
Options.Insert("db", Base);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "ClearTable", Options);
// END
OPI_TestDataRetrieval.Process(Result, "SQLite", "ClearTable");
Options = New Structure;
Options.Insert("table", Table);
Options.Insert("db", Base);
Check = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "GetTableInformation", Options);
OPI_TestDataRetrieval.Process(Check, "SQLite", "ClearTable", "Table");
Options = New Structure;
Options.Insert("table", Table);
Options.Insert("db", Base);
Check = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "GetRecords", Options);
OPI_TestDataRetrieval.Process(Check, "SQLite", "ClearTable", "Check");
EndProcedure
Procedure SQLite_ConnectExtension(FunctionParameters)
If OPI_Tools.IsWindows() Then
Extension = FunctionParameters["SQLite_Ext"]; // URL, Path or Binary Data
Else
Extension = FunctionParameters["SQLite_ExtLinux"]; // URL, Path or Binary Data
EndIf;
Base = FunctionParameters["SQLite_DB"];
EntryPoint = "sqlite3_uuid_init";
Connection = OPI_SQLite.CreateConnection(Base);
Result = OPI_SQLite.ConnectExtension(Extension, EntryPoint, Connection);
// END
OPI_TestDataRetrieval.Process(Result, "SQLite", "ConnectExtension");
TFN = GetTempFileName("dll");
FileCopy(Extension, TFN);
Result = OPI_SQLite.ConnectExtension(TFN, EntryPoint, Connection);
OPI_TestDataRetrieval.Process(Result, "SQLite", "ConnectExtension", "Path");
Result = OPI_SQLite.ConnectExtension(New BinaryData(TFN), EntryPoint, Connection);
OPI_TestDataRetrieval.Process(Result, "SQLite", "ConnectExtension", "Binary");
Result = OPI_SQLite.CloseConnection(Connection);
OPI_Tools.RemoveFileWithTry(TFN, "Error deleting extension file");
EndProcedure
Procedure SQLite_AddTableColumn(FunctionParameters)
Base = FunctionParameters["SQLite_DB"];
Table = "test";
Name = "new_col";
DataType = "TEXT";
Options = New Structure;
Options.Insert("table", Table);
Options.Insert("name", Name);
Options.Insert("type", DataType);
Options.Insert("db", Base);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "AddTableColumn", Options);
// END
OPI_TestDataRetrieval.Process(Result, "SQLite", "AddTableColumn");
Options = New Structure;
Options.Insert("table", Table);
Options.Insert("db", Base);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "GetTableInformation", Options);
OPI_TestDataRetrieval.Process(Result, "SQLite", "AddTableColumn", "Check");
EndProcedure
Procedure SQLite_DeleteTableColumn(FunctionParameters)
Base = FunctionParameters["SQLite_DB"];
Table = "test";
Name = "new_col";
Options = New Structure;
Options.Insert("table", Table);
Options.Insert("name", Name);
Options.Insert("db", Base);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "DeleteTableColumn", Options);
// END
OPI_TestDataRetrieval.Process(Result, "SQLite", "DeleteTableColumn");
Options = New Structure;
Options.Insert("table", Table);
Options.Insert("db", Base);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "GetTableInformation", Options);
OPI_TestDataRetrieval.Process(Result, "SQLite", "DeleteTableColumn", "Check");
EndProcedure
Procedure SQLite_EnsureTable(FunctionParameters)
Base = FunctionParameters["SQLite_DB"];
Table = "test";
ColoumnsStruct = New Structure;
ColoumnsStruct.Insert("id" , "INTEGER");
ColoumnsStruct.Insert("code" , "INTEGER");
ColoumnsStruct.Insert("name" , "TEXT");
ColoumnsStruct.Insert("age" , "INTEGER");
ColoumnsStruct.Insert("info" , "TEXT");
Options = New Structure;
Options.Insert("table", Table);
Options.Insert("cols", ColoumnsStruct);
Options.Insert("db", Base);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "EnsureTable", Options);
// END
OPI_TestDataRetrieval.Process(Result, "SQLite", "EnsureTable");
Options = New Structure;
Options.Insert("table", Table);
Options.Insert("db", Base);
Check = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "GetTableInformation", Options);
OPI_TestDataRetrieval.Process(Check, "SQLite", "EnsureTable", "Check", ColoumnsStruct);
Table = "test_new";
Options = New Structure;
Options.Insert("table", Table);
Options.Insert("cols", ColoumnsStruct);
Options.Insert("db", Base);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "EnsureTable", Options);
OPI_TestDataRetrieval.Process(Result, "SQLite", "EnsureTable", "New");
Options = New Structure;
Options.Insert("table", Table);
Options.Insert("db", Base);
Check = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "GetTableInformation", Options);
OPI_TestDataRetrieval.Process(Check, "SQLite", "EnsureTable", "Check 2", ColoumnsStruct);
EndProcedure
#EndRegion // SQLite
#EndRegion // AtomicTests
#EndRegion // Private
#Region Alternate
Procedure SQLL_ОсновныеМетоды() Export
SQLL_CommonMethods();
EndProcedure
#EndRegion
+664 -4
View File
@@ -1,3 +1,5 @@
// OneScript: ./OInt/tests/Modules/OPItc_SSH.os
// MIT License
// Copyright (c) 2023-2026 Anton Tsitavets
@@ -9,7 +11,7 @@
// 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
// 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
@@ -22,6 +24,8 @@
// https://github.com/Bayselonarrend/OpenIntegrations
// Test suite for YAxUnit
// BSLLS:Typo-off
// BSLLS:LatinAndCyrillicSymbolInWord-off
// BSLLS:IncorrectLineBreak-off
@@ -63,6 +67,662 @@
//@skip-check missing-temporary-file-deletion
//@skip-check module-unused-method
// #Use oint
// #Use asserts
// #Use "internal"
//#Use "../../tools/main"
//#Use "../../tools/http"
//#Use "../../api"
//#Use asserts
//#Use "internal"
// For YAxUnit
Procedure ИсполняемыеСценарии() Export
OPI_TestDataRetrieval.FormYAXTests("SSH");
EndProcedure
// For Asserts
Function ПолучитьСписокТестов(UnitTesting) Export
Return OPI_TestDataRetrieval.FormAssertsTests("SSH");
EndFunction
#Region Internal
#Region RunnableTests
#Region SSH
Procedure SShell_CommonMethods() Export
OptionArray = OPI_TestDataRetrieval.GetSSHParameterOptions();
For Each TestParameters In OptionArray Do
SSH_CreateConnection(TestParameters);
SSH_GetConnectionConfiguration(TestParameters);
SSH_ExecuteCommand(TestParameters);
SSH_CloseConnection(TestParameters);
SSH_IsConnector(TestParameters);
SSH_GetSettingsLoginPassword(TestParameters);
SSH_GetSettingsPrivateKey(TestParameters);
SSH_GetSettingsViaAgent(TestParameters);
SSH_GetSettingsKI(TestParameters);
SSH_GetProxySettings(TestParameters);
EndDo;
OPI_Tools.RemoveFileWithTry(OptionArray[0]["SSH_Key"], "Error deleting file after test");
EndProcedure
#EndRegion // SSH
#EndRegion // RunnableTests
#EndRegion // Internal
#Region Private
#Region AtomicTests
#Region SSH
Procedure SSH_CreateConnection(FunctionParameters)
Postfix = FunctionParameters["Postfix"]; // SKIP
Host = FunctionParameters["SSH_Host"];
Port = FunctionParameters["SSH_Port"];
UseProxy = True;
ProxySettings = Undefined;
AuthorizationType = "By login and password";
UseProxy = FunctionParameters["Proxy"]; // SKIP
AuthorizationType = FunctionParameters["AuthType"]; // SKIP
If AuthorizationType = "By login and password" Then
Login = FunctionParameters["SSH_User"];
Password = FunctionParameters["SSH_Password"];
Options = New Structure;
Options.Insert("host", Host);
Options.Insert("port", Port);
Options.Insert("user", Login);
Options.Insert("pass", Password);
SSHSettings = OPI_TestDataRetrieval.ExecuteTestCLI("ssh", "GetSettingsLoginPassword", Options);
ElsIf AuthorizationType = "By key" Then
Login = FunctionParameters["SSH_User"];
PrivateKey = "./ssh_key";
PublicKey = "./ssh_key.pub";
PrivateKey = FunctionParameters["SSH_Key"]; // SKIP
PublicKey = FunctionParameters["SSH_Pub"]; // SKIP
SSHSettings = OPI_SSH.GetSettingsPrivateKey(Host, Port, Login, PrivateKey, PublicKey);
ElsIf AuthorizationType = "Keyboard interactive" Then
Login = FunctionParameters["SSH_User"];
Password = FunctionParameters["SSH_Password"];
AnswersArray = New Array;
AnswersArray.Add(Password);
Port = FunctionParameters["SSH_PortKI"]; // SKIP
SSHSettings = OPI_SSH.GetSettingsKI(Host, Port, Login, AnswersArray);
Else
Login = FunctionParameters["SSH_User"];
SSHSettings = OPI_SSH.GetSettingsViaAgent(Host, Port, Login);
EndIf;
If UseProxy Then
ProxyType = FunctionParameters["Proxy_Type"]; // http, socks5, socks4
ProxyAddress = FunctionParameters["Proxy_IP"];
ProxyPort = FunctionParameters["Proxy_Port"];
ProxyLogin = FunctionParameters["Proxy_User"];
ProxyPassword = FunctionParameters["Proxy_Password"];
Options = New Structure;
Options.Insert("addr", ProxyAddress);
Options.Insert("port", ProxyPort);
Options.Insert("type", ProxyType);
Options.Insert("login", ProxyLogin);
Options.Insert("pass", ProxyPassword);
ProxySettings = OPI_TestDataRetrieval.ExecuteTestCLI("ssh", "GetProxySettings", Options);
EndIf;
Result = OPI_SSH.CreateConnection(SSHSettings, ProxySettings);
// END
OPI_TestDataRetrieval.Process(Result, "SSH", "CreateConnection", Postfix);
EndProcedure
Procedure SSH_ExecuteCommand(FunctionParameters)
Postfix = FunctionParameters["Postfix"]; // SKIP
Host = FunctionParameters["SSH_Host"];
Port = FunctionParameters["SSH_Port"];
UseProxy = True;
ProxySettings = Undefined;
AuthorizationType = "By login and password";
UseProxy = FunctionParameters["Proxy"]; // SKIP
AuthorizationType = FunctionParameters["AuthType"]; // SKIP
If AuthorizationType = "By login and password" Then
Login = FunctionParameters["SSH_User"];
Password = FunctionParameters["SSH_Password"];
Options = New Structure;
Options.Insert("host", Host);
Options.Insert("port", Port);
Options.Insert("user", Login);
Options.Insert("pass", Password);
SSHSettings = OPI_TestDataRetrieval.ExecuteTestCLI("ssh", "GetSettingsLoginPassword", Options);
ElsIf AuthorizationType = "By key" Then
Login = FunctionParameters["SSH_User"];
PrivateKey = "./ssh_key";
PublicKey = "./ssh_key.pub";
PrivateKey = FunctionParameters["SSH_Key"]; // SKIP
PublicKey = FunctionParameters["SSH_Pub"]; // SKIP
SSHSettings = OPI_SSH.GetSettingsPrivateKey(Host, Port, Login, PrivateKey, PublicKey);
ElsIf AuthorizationType = "Keyboard interactive" Then
Login = FunctionParameters["SSH_User"];
Password = FunctionParameters["SSH_Password"];
AnswersArray = New Array;
AnswersArray.Add(Password);
Port = FunctionParameters["SSH_PortKI"]; // SKIP
SSHSettings = OPI_SSH.GetSettingsKI(Host, Port, Login, AnswersArray);
Else
Login = FunctionParameters["SSH_User"];
SSHSettings = OPI_SSH.GetSettingsViaAgent(Host, Port, Login);
EndIf;
If UseProxy Then
ProxyType = FunctionParameters["Proxy_Type"]; // http, socks5, socks4
ProxyAddress = FunctionParameters["Proxy_IP"];
ProxyPort = FunctionParameters["Proxy_Port"];
ProxyLogin = FunctionParameters["Proxy_User"];
ProxyPassword = FunctionParameters["Proxy_Password"];
Options = New Structure;
Options.Insert("addr", ProxyAddress);
Options.Insert("port", ProxyPort);
Options.Insert("type", ProxyType);
Options.Insert("login", ProxyLogin);
Options.Insert("pass", ProxyPassword);
ProxySettings = OPI_TestDataRetrieval.ExecuteTestCLI("ssh", "GetProxySettings", Options);
EndIf;
Connection = OPI_SSH.CreateConnection(SSHSettings, ProxySettings);
If OPI_SSH.IsConnector(Connection) Then
Options = New Structure;
Options.Insert("conn", Connection);
Options.Insert("comm", "whoami");
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ssh", "ExecuteCommand", Options);
Else
Result = Connection; // Error of connection
EndIf;
// END
OPI_TestDataRetrieval.Process(Result, "SSH", "ExecuteCommand", Postfix);
EndProcedure
Procedure SSH_GetConnectionConfiguration(FunctionParameters)
Postfix = FunctionParameters["Postfix"]; // SKIP
Host = FunctionParameters["SSH_Host"];
Port = FunctionParameters["SSH_Port"];
UseProxy = True;
ProxySettings = Undefined;
AuthorizationType = "By login and password";
UseProxy = FunctionParameters["Proxy"]; // SKIP
AuthorizationType = FunctionParameters["AuthType"]; // SKIP
If AuthorizationType = "By login and password" Then
Login = FunctionParameters["SSH_User"];
Password = FunctionParameters["SSH_Password"];
Options = New Structure;
Options.Insert("host", Host);
Options.Insert("port", Port);
Options.Insert("user", Login);
Options.Insert("pass", Password);
SSHSettings = OPI_TestDataRetrieval.ExecuteTestCLI("ssh", "GetSettingsLoginPassword", Options);
ElsIf AuthorizationType = "By key" Then
Login = FunctionParameters["SSH_User"];
PrivateKey = "./ssh_key";
PublicKey = "./ssh_key.pub";
PrivateKey = FunctionParameters["SSH_Key"]; // SKIP
PublicKey = FunctionParameters["SSH_Pub"]; // SKIP
SSHSettings = OPI_SSH.GetSettingsPrivateKey(Host, Port, Login, PrivateKey, PublicKey);
ElsIf AuthorizationType = "Keyboard interactive" Then
Login = FunctionParameters["SSH_User"];
Password = FunctionParameters["SSH_Password"];
AnswersArray = New Array;
AnswersArray.Add(Password);
Port = FunctionParameters["SSH_PortKI"]; // SKIP
SSHSettings = OPI_SSH.GetSettingsKI(Host, Port, Login, AnswersArray);
Else
Login = FunctionParameters["SSH_User"];
SSHSettings = OPI_SSH.GetSettingsViaAgent(Host, Port, Login);
EndIf;
If UseProxy Then
ProxyType = FunctionParameters["Proxy_Type"]; // http, socks5, socks4
ProxyAddress = FunctionParameters["Proxy_IP"];
ProxyPort = FunctionParameters["Proxy_Port"];
ProxyLogin = FunctionParameters["Proxy_User"];
ProxyPassword = FunctionParameters["Proxy_Password"];
Options = New Structure;
Options.Insert("addr", ProxyAddress);
Options.Insert("port", ProxyPort);
Options.Insert("type", ProxyType);
Options.Insert("login", ProxyLogin);
Options.Insert("pass", ProxyPassword);
ProxySettings = OPI_TestDataRetrieval.ExecuteTestCLI("ssh", "GetProxySettings", Options);
EndIf;
Options = New Structure;
Options.Insert("set", SSHSettings);
Options.Insert("proxy", ProxySettings);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ssh", "GetConnectionConfiguration", Options);
// END
OPI_TestDataRetrieval.Process(Result, "SSH", "GetConnectionConfiguration", Postfix);
Options = New Structure;
Options.Insert("conn", Result);
Options.Insert("comm", "whoami");
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ssh", "ExecuteCommand", Options);
OPI_TestDataRetrieval.Process(Result, "SSH", "GetConnectionConfiguration", "Check, " + Postfix);
EndProcedure
Procedure SSH_CloseConnection(FunctionParameters)
Postfix = FunctionParameters["Postfix"]; // SKIP
Host = FunctionParameters["SSH_Host"];
Port = FunctionParameters["SSH_Port"];
UseProxy = True;
ProxySettings = Undefined;
AuthorizationType = "By login and password";
UseProxy = FunctionParameters["Proxy"]; // SKIP
AuthorizationType = FunctionParameters["AuthType"]; // SKIP
If AuthorizationType = "By login and password" Then
Login = FunctionParameters["SSH_User"];
Password = FunctionParameters["SSH_Password"];
Options = New Structure;
Options.Insert("host", Host);
Options.Insert("port", Port);
Options.Insert("user", Login);
Options.Insert("pass", Password);
SSHSettings = OPI_TestDataRetrieval.ExecuteTestCLI("ssh", "GetSettingsLoginPassword", Options);
ElsIf AuthorizationType = "By key" Then
Login = FunctionParameters["SSH_User"];
PrivateKey = "./ssh_key";
PublicKey = "./ssh_key.pub";
PrivateKey = FunctionParameters["SSH_Key"]; // SKIP
PublicKey = FunctionParameters["SSH_Pub"]; // SKIP
SSHSettings = OPI_SSH.GetSettingsPrivateKey(Host, Port, Login, PrivateKey, PublicKey);
ElsIf AuthorizationType = "Keyboard interactive" Then
Login = FunctionParameters["SSH_User"];
Password = FunctionParameters["SSH_Password"];
AnswersArray = New Array;
AnswersArray.Add(Password);
Port = FunctionParameters["SSH_PortKI"]; // SKIP
SSHSettings = OPI_SSH.GetSettingsKI(Host, Port, Login, AnswersArray);
Else
Login = FunctionParameters["SSH_User"];
SSHSettings = OPI_SSH.GetSettingsViaAgent(Host, Port, Login);
EndIf;
If UseProxy Then
ProxyType = FunctionParameters["Proxy_Type"]; // http, socks5, socks4
ProxyAddress = FunctionParameters["Proxy_IP"];
ProxyPort = FunctionParameters["Proxy_Port"];
ProxyLogin = FunctionParameters["Proxy_User"];
ProxyPassword = FunctionParameters["Proxy_Password"];
Options = New Structure;
Options.Insert("addr", ProxyAddress);
Options.Insert("port", ProxyPort);
Options.Insert("type", ProxyType);
Options.Insert("login", ProxyLogin);
Options.Insert("pass", ProxyPassword);
ProxySettings = OPI_TestDataRetrieval.ExecuteTestCLI("ssh", "GetProxySettings", Options);
EndIf;
Connection = OPI_SSH.CreateConnection(SSHSettings, ProxySettings);
If OPI_SSH.IsConnector(Connection) Then
Result = OPI_SSH.CloseConnection(Connection);
Else
Result = Connection; // Error of connection
EndIf;
// END
OPI_TestDataRetrieval.Process(Result, "SSH", "CloseConnection", Postfix);
EndProcedure
Procedure SSH_IsConnector(FunctionParameters)
Postfix = FunctionParameters["Postfix"]; // SKIP
Host = FunctionParameters["SSH_Host"];
Port = FunctionParameters["SSH_Port"];
UseProxy = True;
ProxySettings = Undefined;
AuthorizationType = "By login and password";
UseProxy = FunctionParameters["Proxy"]; // SKIP
AuthorizationType = FunctionParameters["AuthType"]; // SKIP
If AuthorizationType = "By login and password" Then
Login = FunctionParameters["SSH_User"];
Password = FunctionParameters["SSH_Password"];
Options = New Structure;
Options.Insert("host", Host);
Options.Insert("port", Port);
Options.Insert("user", Login);
Options.Insert("pass", Password);
SSHSettings = OPI_TestDataRetrieval.ExecuteTestCLI("ssh", "GetSettingsLoginPassword", Options);
ElsIf AuthorizationType = "By key" Then
Login = FunctionParameters["SSH_User"];
PrivateKey = "./ssh_key";
PublicKey = "./ssh_key.pub";
PrivateKey = FunctionParameters["SSH_Key"]; // SKIP
PublicKey = FunctionParameters["SSH_Pub"]; // SKIP
SSHSettings = OPI_SSH.GetSettingsPrivateKey(Host, Port, Login, PrivateKey, PublicKey);
ElsIf AuthorizationType = "Keyboard interactive" Then
Login = FunctionParameters["SSH_User"];
Password = FunctionParameters["SSH_Password"];
AnswersArray = New Array;
AnswersArray.Add(Password);
Port = 2223; // SKIP
SSHSettings = OPI_SSH.GetSettingsKI(Host, Port, Login, AnswersArray);
Else
Login = FunctionParameters["SSH_User"];
SSHSettings = OPI_SSH.GetSettingsViaAgent(Host, Port, Login);
EndIf;
If UseProxy Then
ProxyType = FunctionParameters["Proxy_Type"]; // http, socks5, socks4
ProxyAddress = FunctionParameters["Proxy_IP"];
ProxyPort = FunctionParameters["Proxy_Port"];
ProxyLogin = FunctionParameters["Proxy_User"];
ProxyPassword = FunctionParameters["Proxy_Password"];
Options = New Structure;
Options.Insert("addr", ProxyAddress);
Options.Insert("port", ProxyPort);
Options.Insert("type", ProxyType);
Options.Insert("login", ProxyLogin);
Options.Insert("pass", ProxyPassword);
ProxySettings = OPI_TestDataRetrieval.ExecuteTestCLI("ssh", "GetProxySettings", Options);
EndIf;
Connection = OPI_SSH.CreateConnection(SSHSettings, ProxySettings);
Result = OPI_SSH.IsConnector(Connection);
// END
OPI_TestDataRetrieval.Process(Result, "SSH", "IsConnector", Postfix);
Result = OPI_SSH.IsConnector("a");
OPI_TestDataRetrieval.Process(Result, "SSH", "IsConnector", "Error, " + Postfix);
EndProcedure
Procedure SSH_GetSettingsLoginPassword(FunctionParameters)
Postfix = FunctionParameters["Postfix"]; // SKIP
Host = FunctionParameters["SSH_Host"];
Port = FunctionParameters["SSH_Port"];
Login = FunctionParameters["SSH_User"];
Password = FunctionParameters["SSH_Password"];
Options = New Structure;
Options.Insert("host", Host);
Options.Insert("port", Port);
Options.Insert("user", Login);
Options.Insert("pass", Password);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ssh", "GetSettingsLoginPassword", Options);
// END
OPI_TestDataRetrieval.Process(Result, "SSH", "GetSettingsLoginPassword", Postfix);
EndProcedure
Procedure SSH_GetSettingsPrivateKey(FunctionParameters)
Postfix = FunctionParameters["Postfix"]; // SKIP
Host = FunctionParameters["SSH_Host"];
Port = FunctionParameters["SSH_Port"];
Login = FunctionParameters["SSH_User"];
PrivateKey = "./ssh_key";
PublicKey = "./ssh_key.pub";
PrivateKey = FunctionParameters["SSH_Key"]; // SKIP
PublicKey = FunctionParameters["SSH_Pub"]; // SKIP
Options = New Structure;
Options.Insert("host", Host);
Options.Insert("port", Port);
Options.Insert("user", Login);
Options.Insert("key", PrivateKey);
Options.Insert("pub", PublicKey);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ssh", "GetSettingsPrivateKey", Options);
// END
OPI_TestDataRetrieval.Process(Result, "SSH", "GetSettingsPrivateKey", Postfix);
EndProcedure
Procedure SSH_GetSettingsViaAgent(FunctionParameters)
Postfix = FunctionParameters["Postfix"]; // SKIP
Host = FunctionParameters["SSH_Host"];
Port = FunctionParameters["SSH_Port"];
Login = FunctionParameters["SSH_User"];
Options = New Structure;
Options.Insert("host", Host);
Options.Insert("port", Port);
Options.Insert("user", Login);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ssh", "GetSettingsViaAgent", Options);
// END
OPI_TestDataRetrieval.Process(Result, "SSH", "GetSettingsViaAgent", Postfix);
EndProcedure
Procedure SSH_GetSettingsKI(FunctionParameters)
Postfix = FunctionParameters["Postfix"]; // SKIP
Host = FunctionParameters["SSH_Host"];
Port = FunctionParameters["SSH_Port"];
Login = FunctionParameters["SSH_User"];
Password = FunctionParameters["SSH_Password"];
AnswersArray = New Array;
AnswersArray.Add("yes");
AnswersArray.Add(Password);
Options = New Structure;
Options.Insert("host", Host);
Options.Insert("port", Port);
Options.Insert("user", Login);
Options.Insert("prompts", AnswersArray);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ssh", "GetSettingsKI", Options);
// END
OPI_TestDataRetrieval.Process(Result, "SSH", "GetSettingsKI", Postfix);
EndProcedure
Procedure SSH_GetProxySettings(FunctionParameters)
Postfix = FunctionParameters["Postfix"]; // SKIP
ProxyType = FunctionParameters["Proxy_Type"]; // http, socks5, socks4
ProxyAddress = FunctionParameters["Proxy_IP"];
ProxyPort = FunctionParameters["Proxy_Port"];
ProxyLogin = FunctionParameters["Proxy_User"];
ProxyPassword = FunctionParameters["Proxy_Password"];
Options = New Structure;
Options.Insert("addr", ProxyAddress);
Options.Insert("port", ProxyPort);
Options.Insert("type", ProxyType);
Options.Insert("login", ProxyLogin);
Options.Insert("pass", ProxyPassword);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ssh", "GetProxySettings", Options);
// END
OPI_TestDataRetrieval.Process(Result, "SSH", "GetProxySettings", Postfix);
EndProcedure
#EndRegion // SSH
#EndRegion // AtomicTests
#EndRegion // Private
#Region Alternate
Procedure SShell_ОсновныеМетоды() Export
SShell_CommonMethods();
EndProcedure
#EndRegion
+920 -4
View File
@@ -1,3 +1,5 @@
// OneScript: ./OInt/tests/Modules/OPItc_Slack.os
// MIT License
// Copyright (c) 2023-2026 Anton Tsitavets
@@ -9,7 +11,7 @@
// 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
// 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
@@ -22,6 +24,8 @@
// https://github.com/Bayselonarrend/OpenIntegrations
// Test suite for YAxUnit
// BSLLS:Typo-off
// BSLLS:LatinAndCyrillicSymbolInWord-off
// BSLLS:IncorrectLineBreak-off
@@ -63,6 +67,918 @@
//@skip-check missing-temporary-file-deletion
//@skip-check module-unused-method
// #Use oint
// #Use asserts
// #Use "internal"
//#Use "../../tools/main"
//#Use "../../tools/http"
//#Use "../../api"
//#Use asserts
//#Use "internal"
// For YAxUnit
Procedure ИсполняемыеСценарии() Export
OPI_TestDataRetrieval.FormYAXTests("Slack");
EndProcedure
// For Asserts
Function ПолучитьСписокТестов(UnitTesting) Export
Return OPI_TestDataRetrieval.FormAssertsTests("Slack");
EndFunction
#Region Internal
#Region RunnableTests
#Region Slack
Procedure SlackGetData() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Slack_Token", TestParameters);
Slack_GetBotInformation(TestParameters);
Slack_GetUserList(TestParameters);
Slack_GetWorkspaceList(TestParameters);
EndProcedure
Procedure Slack_SendDeleteMessage() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Slack_Token" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Slack_Channel", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Picture" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Slack_User" , TestParameters);
Slack_SendMessage(TestParameters);
Slack_EditMessage(TestParameters);
Slack_GetMessageReplyList(TestParameters);
Slack_GetMessageLink(TestParameters);
Slack_DeleteMessage(TestParameters);
Slack_SendEphemeralMessage(TestParameters);
Slack_GetDelayedMessageList(TestParameters);
Slack_GenerateImageBlock(TestParameters);
EndProcedure
Procedure Slack_CreateArchiveChannel() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Slack_Token", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Slack_User" , TestParameters);
Slack_CreateChannel(TestParameters);
Slack_SetChannelTopic(TestParameters);
Slack_SetChannelGoal(TestParameters);
Slack_GetChannel(TestParameters);
Slack_InviteUsersToChannel(TestParameters);
Slack_KickUserFromChannel(TestParameters);
Slack_GetChannelHistory(TestParameters);
Slack_GetChannelUserList(TestParameters);
Slack_LeaveChannel(TestParameters);
Slack_JoinChannel(TestParameters);
Slack_RenameChannel(TestParameters);
Slack_ArchiveChannel(TestParameters);
Slack_GetChannelList(TestParameters);
EndProcedure
Procedure Slack_OpenCloseDialog() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Slack_Token", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Slack_User" , TestParameters);
Slack_OpenDialog(TestParameters);
Slack_CloseDialog(TestParameters);
EndProcedure
Procedure Slack_UploadDeleteFile() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Slack_Token" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Slack_Channel", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Document" , TestParameters);
Slack_GetFilesList(TestParameters);
Slack_UploadFile(TestParameters);
Slack_MakeFilePublic(TestParameters);
Slack_MakeFilePrivate(TestParameters);
Slack_GetFileData(TestParameters);
Slack_DeleteFile(TestParameters);
EndProcedure
Procedure Slack_UploadDeleteExternalFile() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Slack_Token" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Slack_Channel", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Document" , TestParameters);
Slack_GetExternalFileList(TestParameters);
Slack_AddExternalFile(TestParameters);
Slack_GetExternalFile(TestParameters);
Slack_SendExternalFile(TestParameters);
Slack_DeleteExternalFile(TestParameters);
EndProcedure
#EndRegion // Slack
#EndRegion // RunnableTests
#EndRegion // Internal
#Region Private
#Region AtomicTests
#Region Slack
Procedure Slack_GetBotInformation(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
Options = New Structure;
Options.Insert("token", Token);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "GetBotInformation", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "GetBotInformation");
EndProcedure
Procedure Slack_GetUserList(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
Options = New Structure;
Options.Insert("token", Token);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "GetUserList", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "GetUserList");
EndProcedure
Procedure Slack_GetWorkspaceList(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
Options = New Structure;
Options.Insert("token", Token);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "GetWorkspaceList", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "GetWorkspaceList");
EndProcedure
Procedure Slack_SendMessage(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
Channel = FunctionParameters["Slack_Channel"];
// Text
Text = "TestMessage1";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("channel", Channel);
Options.Insert("text", Text);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "SendMessage", Options);
OPI_TestDataRetrieval.Process(Result, "Slack", "SendMessage", , FunctionParameters, Text, Channel); // SKIP
// With attachments (picture block in the example)
Text = "Message with picture";
Image = FunctionParameters["Picture"];
BlockArray = New Array;
Options = New Structure;
Options.Insert("picture", Image);
Options.Insert("alt", "Image");
Block = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "GenerateImageBlock", Options);
BlockArray.Add(Block);
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("channel", Channel);
Options.Insert("text", Text);
Options.Insert("blocks", BlockArray);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "SendMessage", Options);
OPI_TestDataRetrieval.Process(Result, "Slack", "SendMessage", "Image", FunctionParameters, Text, Channel); // SKIP
// Sheduled
Text = "Sheduled message";
Hour = 3600;
Day = 24;
SendingDate = OPI_Tools.GetCurrentDate() + (Day * Hour);
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("channel", Channel);
Options.Insert("text", Text);
Options.Insert("date", SendingDate);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "SendMessage", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "SendMessage", "Sheduled", FunctionParameters, Text, Channel);
Token = FunctionParameters["Slack_Token"];
Timestamp = Result["scheduled_message_id"];
OPI_Slack.DeleteMessage(Token, Channel, Timestamp, True);
EndProcedure
Procedure Slack_GenerateImageBlock(FunctionParameters)
Image = FunctionParameters["Picture"];
Options = New Structure;
Options.Insert("picture", Image);
Options.Insert("alt", "Image");
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "GenerateImageBlock", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "GenerateImageBlock");
EndProcedure
Procedure Slack_EditMessage(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
Channel = FunctionParameters["Slack_Channel"];
Timestamp = FunctionParameters["Slack_MessageTS"];
Text = "TestMessage2";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("channel", Channel);
Options.Insert("stamp", Timestamp);
Options.Insert("text", Text);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "EditMessage", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "EditMessage", , Text, Channel);
EndProcedure
Procedure Slack_GetMessageReplyList(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
Channel = FunctionParameters["Slack_Channel"];
Timestamp = FunctionParameters["Slack_MessageTS"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("channel", Channel);
Options.Insert("stamp", Timestamp);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "GetMessageReplyList", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "GetMessageReplyList");
EndProcedure
Procedure Slack_GetMessageLink(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
Channel = FunctionParameters["Slack_Channel"];
Timestamp = FunctionParameters["Slack_MessageTS"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("channel", Channel);
Options.Insert("stamp", Timestamp);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "GetMessageLink", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "GetMessageLink", , Channel);
EndProcedure
Procedure Slack_DeleteMessage(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
Channel = FunctionParameters["Slack_Channel"];
Timestamp = FunctionParameters["Slack_MessageTS"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("channel", Channel);
Options.Insert("stamp", Timestamp);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "DeleteMessage", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "DeleteMessage");
EndProcedure
Procedure Slack_SendEphemeralMessage(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
Channel = FunctionParameters["Slack_Channel"];
User = FunctionParameters["Slack_User"];
Image = FunctionParameters["Picture"];
Text = "Ephemeral message";
Options = New Structure;
Options.Insert("picture", Image);
Options.Insert("alt", "Image");
Block = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "GenerateImageBlock", Options);
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("channel", Channel);
Options.Insert("text", Text);
Options.Insert("user", User);
Options.Insert("blocks", Block);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "SendEphemeralMessage", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "SendEphemeralMessage");
EndProcedure
Procedure Slack_GetDelayedMessageList(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
Channel = FunctionParameters["Slack_Channel"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("channel", Channel);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "GetDelayedMessageList", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "GetDelayedMessageList");
EndProcedure
Procedure Slack_CreateChannel(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
Name = "testconv" + String(New UUID);
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("title", Name);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "CreateChannel", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "CreateChannel", , FunctionParameters, Name);
EndProcedure
Procedure Slack_SetChannelTopic(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
Channel = FunctionParameters["Slack_NewChannel"];
Topic = "TestTopic";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("channel", Channel);
Options.Insert("theme", Topic);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "SetChannelTopic", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "SetChannelTopic", , Topic);
EndProcedure
Procedure Slack_SetChannelGoal(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
Channel = FunctionParameters["Slack_NewChannel"];
Purpose = "TestGoal";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("channel", Channel);
Options.Insert("purpose", Purpose);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "SetChannelGoal", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "SetChannelGoal");
EndProcedure
Procedure Slack_GetChannel(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
Channel = FunctionParameters["Slack_NewChannel"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("channel", Channel);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "GetChannel", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "GetChannel", , FunctionParameters["Slack_NewChannelName"]);
EndProcedure
Procedure Slack_InviteUsersToChannel(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
Channel = FunctionParameters["Slack_NewChannel"];
User = FunctionParameters["Slack_User"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("channel", Channel);
Options.Insert("users", User);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "InviteUsersToChannel", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "InviteUsersToChannel", , FunctionParameters["Slack_NewChannelName"]);
EndProcedure
Procedure Slack_KickUserFromChannel(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
Channel = FunctionParameters["Slack_NewChannel"];
User = FunctionParameters["Slack_User"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("channel", Channel);
Options.Insert("user", User);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "KickUserFromChannel", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "KickUserFromChannel");
EndProcedure
Procedure Slack_GetChannelHistory(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
Channel = FunctionParameters["Slack_NewChannel"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("channel", Channel);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "GetChannelHistory", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "GetChannelHistory");
EndProcedure
Procedure Slack_GetChannelUserList(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
Channel = FunctionParameters["Slack_NewChannel"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("channel", Channel);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "GetChannelUserList", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "GetChannelUserList");
EndProcedure
Procedure Slack_LeaveChannel(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
Channel = FunctionParameters["Slack_NewChannel"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("channel", Channel);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "LeaveChannel", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "LeaveChannel");
EndProcedure
Procedure Slack_JoinChannel(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
Channel = FunctionParameters["Slack_NewChannel"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("channel", Channel);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "JoinChannel", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "JoinChannel", , FunctionParameters["Slack_NewChannelName"]);
EndProcedure
Procedure Slack_RenameChannel(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
Channel = FunctionParameters["Slack_NewChannel"];
Name = "testconv" + String(New UUID);
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("channel", Channel);
Options.Insert("title", Name);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "RenameChannel", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "RenameChannel", , Name);
EndProcedure
Procedure Slack_ArchiveChannel(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
Channel = FunctionParameters["Slack_NewChannel"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("channel", Channel);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "ArchiveChannel", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "ArchiveChannel");
EndProcedure
Procedure Slack_GetChannelList(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
Options = New Structure;
Options.Insert("token", Token);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "GetChannelList", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "GetChannelList");
EndProcedure
Procedure Slack_OpenDialog(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
User = FunctionParameters["Slack_User"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("users", User);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "OpenDialog", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "OpenDialog", , FunctionParameters);
Channel = Result["channel"]["id"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("channel", Channel);
Options.Insert("text", "Test dialog");
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "SendMessage", Options);
OPI_TestDataRetrieval.Process(Result, "Slack", "OpenDialog", "Message", FunctionParameters);
EndProcedure
Procedure Slack_CloseDialog(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
Dialog = FunctionParameters["Slack_Dialog"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("conv", Dialog);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "CloseDialog", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "CloseDialog");
EndProcedure
Procedure Slack_GetFilesList(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
Channel = FunctionParameters["Slack_Channel"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("channel", Channel);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "GetFilesList", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "GetFilesList");
Options = New Structure;
Options.Insert("token", Token);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "GetFilesList", Options);
OPI_TestDataRetrieval.Process(Result, "Slack", "GetFilesList", "All");
EndProcedure
Procedure Slack_UploadFile(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
Channel = FunctionParameters["Slack_Channel"];
File = FunctionParameters["Document"]; // URL, Binary Data or File path
FileName = "megadoc.docx";
Title = "NewFile";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("file", File);
Options.Insert("filename", FileName);
Options.Insert("title", Title);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "UploadFile", Options);
OPI_TestDataRetrieval.Process(Result, "Slack", "UploadFile", , FunctionParameters, FileName); // SKIP
OPI_TestDataRetrieval.Process(Result, "Slack", "MakeFilePublic"); // SKIP
OPI_TestDataRetrieval.Process(Result, "Slack", "MakeFilePrivate"); // SKIP
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("file", File);
Options.Insert("filename", FileName);
Options.Insert("title", Title);
Options.Insert("channel", Channel);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "UploadFile", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "UploadFile", "Channel", FunctionParameters, FileName);
OPI_Slack.DeleteFile(FunctionParameters["Slack_Token"], Result["files"][0]["id"]);
EndProcedure
Procedure Slack_MakeFilePublic(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
FileID = FunctionParameters["Slack_FileID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("fileid", FileID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "MakeFilePublic", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "MakeFilePublic", "No record");
EndProcedure
Procedure Slack_MakeFilePrivate(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
FileID = FunctionParameters["Slack_FileID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("fileid", FileID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "MakeFilePrivate", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "MakeFilePrivate", "No record");
EndProcedure
Procedure Slack_GetFileData(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
FileID = FunctionParameters["Slack_FileID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("fileid", FileID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "GetFileData", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "GetFileData", , "megadoc.docx");
EndProcedure
Procedure Slack_DeleteFile(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
FileID = FunctionParameters["Slack_FileID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("fileid", FileID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "DeleteFile", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "DeleteFile");
EndProcedure
Procedure Slack_GetExternalFileList(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
Channel = FunctionParameters["Slack_Channel"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("channel", Channel);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "GetExternalFileList", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "GetExternalFileList");
Options = New Structure;
Options.Insert("token", Token);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "GetExternalFileList", Options);
OPI_TestDataRetrieval.Process(Result, "Slack", "GetExternalFileList", "All");
EndProcedure
Procedure Slack_AddExternalFile(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
Title = "NewFile";
File = FunctionParameters["Document"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("url", File);
Options.Insert("title", Title);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "AddExternalFile", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "AddExternalFile", , FunctionParameters, Title);
EndProcedure
Procedure Slack_GetExternalFile(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
FileID = FunctionParameters["Slack_ExtFileID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("fileid", FileID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "GetExternalFile", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "GetExternalFile");
EndProcedure
Procedure Slack_SendExternalFile(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
Channel = FunctionParameters["Slack_Channel"];
FileID = FunctionParameters["Slack_ExtFileID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("fileid", FileID);
Options.Insert("channels", Channel);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "SendExternalFile", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "SendExternalFile");
EndProcedure
Procedure Slack_DeleteExternalFile(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
FileID = FunctionParameters["Slack_ExtFileID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("fileid", FileID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "DeleteExternalFile", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "DeleteExternalFile");
EndProcedure
#EndRegion // Slack
#EndRegion // AtomicTests
#EndRegion // Private
#Region Alternate
Procedure Слак_ПолучитьИнформацию() Export
SlackGetData();
EndProcedure
Procedure Слак_ОтправитьУдалитьСообщение() Export
Slack_SendDeleteMessage();
EndProcedure
Procedure Слак_СоздатьАрхивироватьКанал() Export
Slack_CreateArchiveChannel();
EndProcedure
Procedure Слак_ОткрытьЗакрытьДиалог() Export
Slack_OpenCloseDialog();
EndProcedure
Procedure Слак_ЗагрузитьУдалитьФайл() Export
Slack_UploadDeleteFile();
EndProcedure
Procedure Слак_ЗагрузитьУдалитьВФ() Export
Slack_UploadDeleteExternalFile();
EndProcedure
#EndRegion
+775 -4
View File
@@ -1,3 +1,5 @@
// OneScript: ./OInt/tests/Modules/OPItc_TCP.os
// MIT License
// Copyright (c) 2023-2026 Anton Tsitavets
@@ -9,7 +11,7 @@
// 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
// 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
@@ -22,6 +24,8 @@
// https://github.com/Bayselonarrend/OpenIntegrations
// Test suite for YAxUnit
// BSLLS:Typo-off
// BSLLS:LatinAndCyrillicSymbolInWord-off
// BSLLS:IncorrectLineBreak-off
@@ -63,6 +67,773 @@
//@skip-check missing-temporary-file-deletion
//@skip-check module-unused-method
// #Use oint
// #Use asserts
// #Use "internal"
//#Use "../../tools/main"
//#Use "../../tools/http"
//#Use "../../api"
//#Use asserts
//#Use "internal"
// For YAxUnit
Procedure ИсполняемыеСценарии() Export
OPI_TestDataRetrieval.FormYAXTests("TCP");
EndProcedure
// For Asserts
Function ПолучитьСписокТестов(UnitTesting) Export
Return OPI_TestDataRetrieval.FormAssertsTests("TCP");
EndFunction
#Region Internal
#Region RunnableTests
#Region TCP
Procedure TC_Client() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("TCP_Address" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("TCP_AddressTLS", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Proxy_User" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Proxy_Password", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Socks5_IP" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Socks5_Port" , TestParameters);
TCP_CreateConnection(TestParameters);
TCP_CloseConnection(TestParameters);
TCP_ReadBinaryData(TestParameters);
TCP_SendBinaryData(TestParameters);
TCP_ReadLine(TestParameters);
TCP_SendLine(TestParameters);
TCP_ProcessRequest(TestParameters);
TCP_GetTLSSettings(TestParameters);
TCP_GetLastError(TestParameters);
TCP_GetProxySettings(TestParameters);
EndProcedure
Procedure TC_Server() Export
TestParameters = New Structure;
TCP_StartServer(TestParameters);
TCP_StopServer(TestParameters);
TCP_GetNextConnectionData(TestParameters);
TCP_GetConnectionData(TestParameters);
TCP_SendData(TestParameters);
TCP_CloseIncomingConnection(TestParameters);
TCP_CompleteSend(TestParameters);
TCP_FinishReceiving(TestParameters);
TCP_GetConnectionList(TestParameters);
TCP_IsServerObject(TestParameters);
TCP_GetLog(TestParameters);
TCP_GetLoggingSettings(TestParameters);
EndProcedure
#EndRegion // TCP
#EndRegion // RunnableTests
#EndRegion // Internal
#Region Private
#Region AtomicTests
#Region TCP
Procedure TCP_CreateConnection(FunctionParameters)
Address = FunctionParameters["TCP_Address"];
Connection = OPI_TCP.CreateConnection(Address);
OPI_TestDataRetrieval.Process(Connection, "TCP", "CreateConnection"); // SKIP
OPI_TCP.CloseConnection(Connection);
Address = "tcpbin.com:4243";
Options = New Structure;
Options.Insert("trust", Истина);
Tls = OPI_TestDataRetrieval.ExecuteTestCLI("tcp", "GetTLSSettings", Options);
ProxtUser = FunctionParameters["Proxy_User"];
ProxyPassword = FunctionParameters["Proxy_Password"];
ProxyAddress = FunctionParameters["Socks5_IP"];
ProxyPort = FunctionParameters["Socks5_Port"];
ProxyAddress = ?(ProxyAddress = "127.0.0.1", OPI_TestDataRetrieval.GetLocalhost(), ProxyAddress); // SKIP
Options = New Structure;
Options.Insert("addr", ProxyAddress);
Options.Insert("port", ProxyPort);
Options.Insert("type", "socks5");
Options.Insert("login", ProxtUser);
Options.Insert("pass", ProxyPassword);
Proxy = OPI_TestDataRetrieval.ExecuteTestCLI("tcp", "GetProxySettings", Options);
Options = New Structure;
Options.Insert("trust", Истина);
Tls = OPI_TestDataRetrieval.ExecuteTestCLI("tcp", "GetTLSSettings", Options);
Connection = OPI_TCP.CreateConnection(Address, TLS, Proxy);
// END
OPI_TestDataRetrieval.Process(Connection, "TCP", "CreateConnection", "TLS");
EndProcedure
Procedure TCP_CloseConnection(FunctionParameters)
Address = FunctionParameters["TCP_Address"];
Connection = OPI_TCP.CreateConnection(Address);
Result = OPI_TCP.CloseConnection(Connection);
// END
OPI_TestDataRetrieval.Process(Result, "TCP", "CloseConnection");
EndProcedure
Procedure TCP_ReadBinaryData(FunctionParameters)
Address = FunctionParameters["TCP_Address"];
Connection = OPI_TCP.CreateConnection(Address);
Message = "Hello server!" + Chars.LF;
Data = GetBinaryDataFromString(Message);
OPI_TCP.SendBinaryData(Connection, Data);
// End of message marker to avoid waiting for the end of timeout
Marker = Chars.LF;
Result = OPI_TCP.ReadBinaryData(Connection, , Marker);
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
OPI_TCP.CloseConnection(Connection);
// END
OPI_TestDataRetrieval.Process(Result, "TCP", "ReadBinaryData", , Message);
Connection = OPI_TCP.CreateConnection(Address);
OPI_TCP.SendBinaryData(Connection, Data);
Result = OPI_TCP.ReadBinaryData(Connection, , , 50000);
OPI_TCP.CloseConnection(Connection);
OPI_TestDataRetrieval.Process(Result, "TCP", "ReadBinaryData", "Timeout", Message);
EndProcedure
Procedure TCP_SendBinaryData(FunctionParameters)
Address = FunctionParameters["TCP_Address"];
Connection = OPI_TCP.CreateConnection(Address);
Message = "Hello server!" + Chars.LF;
Data = GetBinaryDataFromString(Message);
Result = OPI_TCP.SendBinaryData(Connection, Data);
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// End of message marker to avoid waiting for the end of timeout
Marker = Chars.LF;
Response = OPI_TCP.ReadBinaryData(Connection, , Marker);
OPI_TCP.CloseConnection(Connection);
// END
OPI_TestDataRetrieval.Process(Response, "TCP", "SendBinaryData", , Message);
Connection = OPI_TCP.CreateConnection(Address);
OPI_TCP.SendBinaryData(Connection, Data);
Result = OPI_TCP.ReadBinaryData(Connection, , , 50000);
OPI_TCP.CloseConnection(Connection);
OPI_TestDataRetrieval.Process(Result, "TCP", "SendBinaryData", "Timeout", Message);
EndProcedure
Procedure TCP_ProcessRequest(FunctionParameters)
Address = FunctionParameters["TCP_Address"];
Data = "Echo this!" + Chars.LF;
Options = New Structure;
Options.Insert("address", Address);
Options.Insert("data", Data);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("tcp", "ProcessRequest", Options);
OPI_TestDataRetrieval.Process(Result, "TCP", "ProcessRequest", , "Echo this!" + Chars.LF); // SKIP
Address = FunctionParameters["TCP_AddressTLS"];
ProxtUser = FunctionParameters["Proxy_User"];
ProxyPassword = FunctionParameters["Proxy_Password"];
ProxyAddress = FunctionParameters["Socks5_IP"];
ProxyPort = FunctionParameters["Socks5_Port"];
ProxyAddress = ?(ProxyAddress = "127.0.0.1", OPI_TestDataRetrieval.GetLocalhost(), ProxyAddress); // SKIP
Options = New Structure;
Options.Insert("addr", ProxyAddress);
Options.Insert("port", ProxyPort);
Options.Insert("type", "socks5");
Options.Insert("login", ProxtUser);
Options.Insert("pass", ProxyPassword);
Proxy = OPI_TestDataRetrieval.ExecuteTestCLI("tcp", "GetProxySettings", Options);
Options = New Structure;
Options.Insert("trust", Истина);
Tls = OPI_TestDataRetrieval.ExecuteTestCLI("tcp", "GetTLSSettings", Options);
Options = New Structure;
Options.Insert("address", Address);
Options.Insert("data", Data);
Options.Insert("tls", Tls);
Options.Insert("proxy", Proxy);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("tcp", "ProcessRequest", Options);
// END
OPI_TestDataRetrieval.Process(Result, "TCP", "ProcessRequest", "TLS", "Echo this!" + Chars.LF);
EndProcedure
Procedure TCP_ReadLine(FunctionParameters)
Address = FunctionParameters["TCP_Address"];
Connection = OPI_TCP.CreateConnection(Address);
Data = "Hello server!" + Chars.LF;
OPI_TCP.SendLine(Connection, Data);
// End of message marker to avoid waiting for the end of timeout
Marker = Chars.LF;
Result = OPI_TCP.ReadLine(Connection, , Marker);
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
OPI_TCP.CloseConnection(Connection);
// END
OPI_TestDataRetrieval.Process(Result, "TCP", "ReadLine", , Data);
Connection = OPI_TCP.CreateConnection(Address);
OPI_TCP.SendLine(Connection, Data);
Result = OPI_TCP.ReadLine(Connection, , , 50000);
OPI_TCP.CloseConnection(Connection);
OPI_TestDataRetrieval.Process(Result, "TCP", "ReadLine", "Timeout", Data);
EndProcedure
Procedure TCP_SendLine(FunctionParameters)
Address = FunctionParameters["TCP_Address"];
Connection = OPI_TCP.CreateConnection(Address);
Data = "Hello server!" + Chars.LF;
Result = OPI_TCP.SendLine(Connection, Data);
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// End of message marker to avoid waiting for the end of timeout
Marker = Chars.LF;
Response = OPI_TCP.ReadLine(Connection, , Marker);
OPI_TCP.CloseConnection(Connection);
// END
OPI_TestDataRetrieval.Process(Response, "TCP", "SendLine", , Data);
Connection = OPI_TCP.CreateConnection(Address);
OPI_TCP.SendLine(Connection, Data);
Result = OPI_TCP.ReadLine(Connection, , , 50000);
OPI_TCP.CloseConnection(Connection);
OPI_TestDataRetrieval.Process(Result, "TCP", "SendLine", "Timeout", Data);
EndProcedure
Procedure TCP_GetTLSSettings(FunctionParameters)
Options = New Structure;
Options.Insert("trust", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("tcp", "GetTLSSettings", Options);
// END
OPI_TestDataRetrieval.Process(Result, "TCP", "GetTLSSettings");
EndProcedure
Procedure TCP_GetLastError(FunctionParameters)
Address = FunctionParameters["TCP_Address"];
Connection = OPI_TCP.CreateConnection(Address);
Data = "Hello server!" + Chars.LF;
Sending = OPI_TCP.SendLine(Connection, Data);
Result = OPI_TCP.GetLastError(Connection); // SKIP
// END
OPI_TestDataRetrieval.Process(Result, "TCP", "GetLastError");
EndProcedure
Procedure TCP_GetProxySettings(FunctionParameters)
ProxyType = "socks5"; // http, socks5, socks4
ProxyAddress = FunctionParameters["Socks5_IP"];
ProxyPort = FunctionParameters["Socks5_Port"];
ProxyLogin = FunctionParameters["Proxy_User"];
ProxyPassword = FunctionParameters["Proxy_Password"];
Options = New Structure;
Options.Insert("addr", ProxyAddress);
Options.Insert("port", ProxyPort);
Options.Insert("type", ProxyType);
Options.Insert("login", ProxyLogin);
Options.Insert("pass", ProxyPassword);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("tcp", "GetProxySettings", Options);
// END
OPI_TestDataRetrieval.Process(Result, "TCP", "GetProxySettings");
EndProcedure
Procedure TCP_StartServer(FunctionParameters)
Port = 9876;
PoolSize = 10;
Host = OPI_TCP.StartServer(Port, PoolSize);
// END
OPI_TestDataRetrieval.Process(Host, "TCP", "StartServer");
OPI_TCP.StopServer(Host);
EndProcedure
Procedure TCP_StopServer(FunctionParameters)
Port = 9877;
Host = OPI_TCP.StartServer(Port);
Result = OPI_TCP.StopServer(Host);
// END
OPI_TestDataRetrieval.Process(Result, "TCP", "StopServer");
ListResult = OPI_TCP.GetConnectionList(Host);
OPI_TestDataRetrieval.Process(ListResult, "TCP", "StopServer", "List");
OPI_TypeConversion.GetLine(Port);
Address = StrTemplate("127.0.0.1:%1", Port);
Client = OPI_TCP.CreateConnection(Address);
OPI_TestDataRetrieval.Process(Client, "TCP", "StopServer", "Connection");
EndProcedure
Procedure TCP_GetNextConnectionData(FunctionParameters)
LaunchPort = 9877;
ServerObject = OPI_TCP.StartServer(LaunchPort);
// Send message from client
ConnectionAddress = "127.0.0.1:9877";
ClientObject = OPI_TCP.CreateConnection(ConnectionAddress);
If Not OPI_TCP.IsClientObject(ClientObject) Then
Raise OPI_Tools.JSONString(ClientObject);
Else
Message = "Hello from client!" + Chars.LF;
OPI_TCP.SendLine(ClientObject, Message);
EndIf;
// Receive message on server
Result = OPI_TCP.GetNextConnectionData(ServerObject, 5000, 8192);
// END
OPI_TCP.CloseConnection(ClientObject);
OPI_TestDataRetrieval.Process(Result, "TCP", "GetNextConnectionData", , Message);
OPI_TCP.SendLine(ClientObject, Message);
OPI_TCP.CloseConnection(ClientObject);
Result = OPI_TCP.GetNextConnectionData(ServerObject, 5000, 8192);
OPI_TestDataRetrieval.Process(Result, "TCP", "GetNextConnectionData", "Closed", Message);
OPI_TCP.StopServer(ServerObject);
EndProcedure
Procedure TCP_GetConnectionData(FunctionParameters)
LaunchPort = 9877;
ServerObject = OPI_TCP.StartServer(LaunchPort);
// Connect to running server
ConnectionAddress = "127.0.0.1:9877";
ClientObject = OPI_TCP.CreateConnection(ConnectionAddress);
If Not OPI_TCP.IsClientObject(ClientObject) Then
Raise OPI_Tools.JSONString(ClientObject);
EndIf;
OPI_Tools.Pause(1); // SKIP
// Receive the list of server connections
ConnectionList = OPI_TCP.GetConnectionList(ServerObject);
If Not ConnectionList["result"] Then
Raise OPI_Tools.JSONString(ConnectionList);
EndIf;
If ConnectionList["connections"].Count() = 0 Then
Raise "Connection list is empty";
Else
ConnectionID = ConnectionList["connections"][0]["connectionId"];
EndIf;
EmptyResult = OPI_TCP.GetConnectionData(ServerObject, ConnectionID, 5000, 8192); // SKIP
OPI_TestDataRetrieval.Process(EmptyResult, "TCP", "GetConnectionData", "Empty"); // SKIP
For N = 0 To 5 Do
// Send from client
CurrentMessage = StrTemplate("Message no. %1%2", N, Chars.LF);
OPI_TCP.SendLine(ClientObject, CurrentMessage);
// Recieve on server
Result = OPI_TCP.GetConnectionData(ServerObject, ConnectionID, 5000, 8192);
OPI_TestDataRetrieval.Process(Result, "TCP", "GetConnectionData", , CurrentMessage); // SKIP
EndDo;
// END
OPI_TCP.CloseConnection(ClientObject);
Result = OPI_TCP.GetConnectionData(ServerObject, ConnectionID, 5000, 8192);
OPI_TestDataRetrieval.Process(Result, "TCP", "GetConnectionData", "Closed");
Result = OPI_TCP.GetConnectionList(ServerObject);
OPI_TestDataRetrieval.Process(Result, "TCP", "GetConnectionData", "EmptyList");
OPI_TCP.StopServer(ServerObject);
EndProcedure
Procedure TCP_SendData(FunctionParameters)
LaunchPort = 9877;
ServerObject = OPI_TCP.StartServer(LaunchPort);
// Connect to running server
ConnectionAddress = "127.0.0.1:9877";
ClientObject = OPI_TCP.CreateConnection(ConnectionAddress);
If Not OPI_TCP.IsClientObject(ClientObject) Then
Raise OPI_Tools.JSONString(ClientObject);
EndIf;
Message = "Hello!" + Chars.LF;
OPI_TCP.SendLine(ClientObject, Message);
// Receive message and connection ID
NextMessage = OPI_TCP.GetNextConnectionData(ServerObject, 5000);
ConnectionID = NextMessage["connectionId"];
// Send response from server
ServerResponse = "Response from server!" + Chars.LF;
Result = OPI_TCP.SendData(ServerObject, ConnectionID, ServerResponse);
// END
OPI_TestDataRetrieval.Process(Result, "TCP", "SendData");
// Check receiving on client
ClientResponse = OPI_TCP.ReadLine(ClientObject, , Chars.LF);
OPI_TestDataRetrieval.Process(ClientResponse, "TCP", "SendData", "Check", ServerResponse);
OPI_TCP.CloseConnection(ClientObject);
OPI_TCP.StopServer(ServerObject);
EndProcedure
Procedure TCP_CloseIncomingConnection(FunctionParameters)
LaunchPort = 9877;
ServerObject = OPI_TCP.StartServer(LaunchPort);
// Connect to running server
ConnectionAddress = "127.0.0.1:9877";
ClientObject = OPI_TCP.CreateConnection(ConnectionAddress);
If Not OPI_TCP.IsClientObject(ClientObject) Then
Raise OPI_Tools.JSONString(ClientObject);
EndIf;
Message = "Hello!" + Chars.LF;
OPI_TCP.SendLine(ClientObject, Message);
// Get connection ID
FirstMessage = OPI_TCP.GetNextConnectionData(ServerObject, 5000);
ConnectionID = FirstMessage["connectionId"];
// Close connection from server side
Result = OPI_TCP.CloseIncomingConnection(ServerObject, ConnectionID);
// END
OPI_TestDataRetrieval.Process(Result, "TCP", "CloseIncomingConnection");
Result = OPI_TCP.GetConnectionList(ServerObject);
OPI_TestDataRetrieval.Process(Result, "TCP", "CloseIncomingConnection", "EmptyList");
OPI_TCP.SendLine(ClientObject, Message);
Result = OPI_TCP.SendLine(ClientObject, Message);
OPI_TestDataRetrieval.Process(Result, "TCP", "CloseIncomingConnection", "SendingToClosed");
OPI_TCP.StopServer(ServerObject);
EndProcedure
Procedure TCP_CompleteSend(FunctionParameters)
LaunchPort = 9877;
ServerObject = OPI_TCP.StartServer(LaunchPort);
// Connect to running server
ConnectionAddress = "127.0.0.1:9877";
ClientObject = OPI_TCP.CreateConnection(ConnectionAddress);
OPI_Tools.Pause(1); // SKIP
If Not OPI_TCP.IsClientObject(ClientObject) Then
Raise OPI_Tools.JSONString(ClientObject);
EndIf;
ActiveConnections = OPI_TCP.GetConnectionList(ServerObject);
ConnectionID = ActiveConnections["connections"][0]["connectionId"];
// Finish sending from server
Result = OPI_TCP.CompleteSend(ServerObject, ConnectionID);
// END
OPI_TestDataRetrieval.Process(Result, "TCP", "CompleteSend");
Message = "Hello" + Chars.LF;
OPI_TCP.SendLine(ClientObject, Message);
Result = OPI_TCP.SendLine(ClientObject, Message);
OPI_TestDataRetrieval.Process(Result, "TCP", "CompleteSend", "SendingClient");
ServerResponse = "Response from server!" + Chars.LF;
Result = OPI_TCP.SendData(ServerObject, ConnectionID, ServerResponse);
OPI_TestDataRetrieval.Process(Result, "TCP", "CompleteSend", "SendingServer");
OPI_TCP.CloseConnection(ClientObject);
OPI_TCP.StopServer(ServerObject);
EndProcedure
Procedure TCP_GetConnectionList(FunctionParameters)
LaunchPort = 9877;
ServerObject = OPI_TCP.StartServer(LaunchPort);
// Connect to running server
ConnectionAddress = "127.0.0.1:9877";
Client1 = OPI_TCP.CreateConnection(ConnectionAddress);
Client2 = OPI_TCP.CreateConnection(ConnectionAddress);
If Not OPI_TCP.IsClientObject(Client1) Then
Raise OPI_Tools.JSONString(Client1);
EndIf;
If Not OPI_TCP.IsClientObject(Client2) Then
Raise OPI_Tools.JSONString(Client2);
EndIf;
Result = OPI_TCP.GetConnectionList(ServerObject);
// END
OPI_TestDataRetrieval.Process(Result, "TCP", "GetConnectionList");
OPI_TCP.CloseConnection(Client1);
OPI_TCP.CloseConnection(Client2);
Client3 = OPI_TCP.CreateConnection(ConnectionAddress);
Client4 = OPI_TCP.CreateConnection(ConnectionAddress);
OPI_TCP.SendLine(Client3, "Yo" + Chars.LF);
OPI_TCP.CloseConnection(Client3);
OPI_TCP.CloseConnection(Client4);
Result = OPI_TCP.GetConnectionList(ServerObject);
OPI_TestDataRetrieval.Process(Result, "TCP", "GetConnectionList", "Closing");
OPI_TCP.StopServer(ServerObject);
EndProcedure
Procedure TCP_FinishReceiving(FunctionParameters)
LaunchPort = 9877;
ServerObject = OPI_TCP.StartServer(LaunchPort);
// Connect to running server
ConnectionAddress = "127.0.0.1:9877";
ClientObject = OPI_TCP.CreateConnection(ConnectionAddress);
OPI_Tools.Pause(1); // SKIP
If Not OPI_TCP.IsClientObject(ClientObject) Then
Raise OPI_Tools.JSONString(ClientObject);
EndIf;
ActiveConnections = OPI_TCP.GetConnectionList(ServerObject);
ConnectionID = ActiveConnections["connections"][0]["connectionId"];
// Completing server-side reception
Result = OPI_TCP.FinishReceiving(ServerObject, ConnectionID);
// END
OPI_TestDataRetrieval.Process(Result, "TCP", "FinishReceiving");
OPI_TCP.CloseConnection(ClientObject);
OPI_TCP.StopServer(ServerObject);
EndProcedure
Procedure TCP_IsServerObject(FunctionParameters)
Port = 9884;
Host = OPI_TCP.StartServer(Port);
Result = OPI_TCP.IsServerObject(Host);
// END
OPI_TestDataRetrieval.Process(Result, "TCP", "IsServerObject");
OPI_TCP.StopServer(Host);
// Check with wrong object
Result = OPI_TCP.IsServerObject("Not a server");
OPI_TestDataRetrieval.Process(Result, "TCP", "IsServerObject", "False");
EndProcedure
Procedure TCP_GetLog(FunctionParameters)
LaunchPort = 9877;
LogFile = GetTempFileName("txt");
LoggingSettings = OPI_TCP.GetLoggingSettings(True, 100, LogFile);
ServerObject = OPI_TCP.StartServer(LaunchPort, , LoggingSettings);
// Connect to running server
ConnectionAddress = "127.0.0.1:9877";
ClientObject = OPI_TCP.CreateConnection(ConnectionAddress);
OPI_Tools.Pause(1); // SKIP
If Not OPI_TCP.IsClientObject(ClientObject) Then
Raise OPI_Tools.JSONString(ClientObject);
EndIf;
Result = OPI_TCP.GetLog(ServerObject);
// END
OPI_TestDataRetrieval.Process(Result, "TCP", "GetLog", , LogFile);
EndProcedure
Procedure TCP_GetLoggingSettings(FunctionParameters)
Result = OPI_TCP.GetLoggingSettings(True, 100, GetTempFileName());
// END
OPI_TestDataRetrieval.Process(Result, "TCP", "GetLoggingSettings");
Result = OPI_TCP.GetLoggingSettings(False, , GetTempFileName());
OPI_TestDataRetrieval.Process(Result, "TCP", "GetLoggingSettings", "File");
Result = OPI_TCP.GetLoggingSettings(True);
OPI_TestDataRetrieval.Process(Result, "TCP", "GetLoggingSettings", "Memory");
EndProcedure
#EndRegion // TCP
#EndRegion // AtomicTests
#EndRegion // Private
#Region Alternate
Procedure TC_Клиент() Export
TC_Client();
EndProcedure
Procedure TC_Сервер() Export
TC_Server();
EndProcedure
#EndRegion
File diff suppressed because it is too large Load Diff
+405 -4
View File
@@ -1,3 +1,5 @@
// OneScript: ./OInt/tests/Modules/OPItc_Twitter.os
// MIT License
// Copyright (c) 2023-2026 Anton Tsitavets
@@ -9,7 +11,7 @@
// 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
// 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
@@ -22,6 +24,8 @@
// https://github.com/Bayselonarrend/OpenIntegrations
// Test suite for YAxUnit
// BSLLS:Typo-off
// BSLLS:LatinAndCyrillicSymbolInWord-off
// BSLLS:IncorrectLineBreak-off
@@ -63,6 +67,403 @@
//@skip-check missing-temporary-file-deletion
//@skip-check module-unused-method
// #Use oint
// #Use asserts
// #Use "internal"
//#Use "../../tools/main"
//#Use "../../tools/http"
//#Use "../../api"
//#Use asserts
//#Use "internal"
// For YAxUnit
Procedure ИсполняемыеСценарии() Export
OPI_TestDataRetrieval.FormYAXTests("Twitter");
EndProcedure
// For Asserts
Function ПолучитьСписокТестов(UnitTesting) Export
Return OPI_TestDataRetrieval.FormAssertsTests("Twitter");
EndFunction
#Region Internal
#Region RunnableTests
#Region Twitter
Procedure TwitterAPI_AccountData() Export
TestParameters = New Structure;
Twitter_GetToken(TestParameters);
Twitter_GetAuthorizationLink(TestParameters);
// !DISABLED! Twitter_UpdateToken(TestParameters);
EndProcedure
Procedure TwitterAPI_Tweets() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Picture" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Picture2", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("GIF" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Video" , TestParameters);
Twitter_CreateTextTweet(TestParameters);
Twitter_UploadAttachmentsArray(TestParameters);
Twitter_CreateVideoTweet(TestParameters);
Twitter_CreateImageTweet(TestParameters);
Twitter_CreateGifTweet(TestParameters);
Twitter_CreatePollTweet(TestParameters);
Twitter_CreateCustomTweet(TestParameters);
EndProcedure
#EndRegion // Twitter
#EndRegion // RunnableTests
#EndRegion // Internal
#Region Private
Function GetTwitterAuthData()
Parameters = New Map;
ServerToken = OPI_TestDataRetrieval.GetParameter("Access_Token");
URL = OPI_TestDataRetrieval.GetParameter("Twitter_TokenURL");
Result = OPI_HTTPRequests.NewRequest()
.Initialize()
.SetURL(URL)
.AddBearerAuthorization(ServerToken) // <---
.ProcessRequest("GET")
.ReturnResponseAsJSONObject();
Token = Result["data"];
Parameters.Insert("redirect_uri" , OPI_TestDataRetrieval.GetParameter("Twitter_Redirect"));
Parameters.Insert("client_id" , OPI_TestDataRetrieval.GetParameter("Twitter_ClientID"));
Parameters.Insert("client_secret" , OPI_TestDataRetrieval.GetParameter("Twitter_ClientSecret"));
Parameters.Insert("access_token" , Token);
Parameters.Insert("refresh_token" , OPI_TestDataRetrieval.GetParameter("Twitter_Refresh"));
Parameters.Insert("oauth_token" , OPI_TestDataRetrieval.GetParameter("Twitter_OAuthToken"));
Parameters.Insert("oauth_token_secret", OPI_TestDataRetrieval.GetParameter("Twitter_OAuthSecret"));
Parameters.Insert("oauth_consumer_key" , OPI_TestDataRetrieval.GetParameter("Twitter_OAuthConsumerKey"));
Parameters.Insert("oauth_consumer_secret", OPI_TestDataRetrieval.GetParameter(
"Twitter_OAuthConsumerSecret"));
Return Parameters;
EndFunction
#Region AtomicTests
#Region Twitter
Procedure Twitter_GetToken(FunctionParameters)
Parameters = GetTwitterAuthData();
Code = "123456";
Options = New Structure;
Options.Insert("code", Code);
Options.Insert("auth", Parameters);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("twitter", "GetToken", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Twitter", "GetToken");
EndProcedure
Procedure Twitter_GetAuthorizationLink(FunctionParameters)
Parameters = GetTwitterAuthData();
Options = New Structure;
Options.Insert("auth", Parameters);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("twitter", "GetAuthorizationLink", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Twitter", "GetAuthorizationLink");
EndProcedure
Procedure Twitter_RefreshToken(FunctionParameters)
Parameters = GetTwitterAuthData();
Options = New Structure;
Options.Insert("auth", Parameters);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("twitter", "RefreshToken", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Twitter", "RefreshToken");
EndProcedure
Procedure Twitter_CreateTextTweet(FunctionParameters)
Parameters = GetTwitterAuthData();
Text = "TestTweet" + String(New UUID);
Options = New Structure;
Options.Insert("text", Text);
Options.Insert("auth", Parameters);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("twitter", "CreateTextTweet", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Twitter", "CreateTextTweet", , Text);
EndProcedure
Procedure Twitter_CreateImageTweet(FunctionParameters)
Parameters = GetTwitterAuthData();
Text = "TestTweet" + String(New UUID);
Image = FunctionParameters["Picture"]; // URL, Binary or File path
Image2 = FunctionParameters["Picture2"]; // URL, Binary or File path
ImageArray = New Array;
ImageArray.Add(Image);
ImageArray.Add(Image2);
Options = New Structure;
Options.Insert("text", Text);
Options.Insert("pictures", ImageArray);
Options.Insert("auth", Parameters);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("twitter", "CreateImageTweet", Options);
OPI_TestDataRetrieval.Process(Result, "Twitter", "CreateImageTweet", , Text); // SKIP
Text = "TestTweet" + String(New UUID);
Options = New Structure;
Options.Insert("text", Text);
Options.Insert("pictures", Image);
Options.Insert("auth", Parameters);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("twitter", "CreateImageTweet", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Twitter", "CreateImageTweet", "Single", Text);
Image = OPI_HTTPRequests.Get(Image);
Text = "TestTweet" + String(New UUID);
Options = New Structure;
Options.Insert("text", Text);
Options.Insert("pictures", Image);
Options.Insert("auth", Parameters);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("twitter", "CreateImageTweet", Options);
OPI_TestDataRetrieval.Process(Result, "Twitter", "CreateImageTweet", "Binary", Text);
EndProcedure
Procedure Twitter_CreateVideoTweet(FunctionParameters)
Parameters = GetTwitterAuthData();
Text = "TestTweet" + String(New UUID);
Video = FunctionParameters["Video"]; // URL, Binary or File path
Video2 = FunctionParameters["Video"]; // URL, Binary or File path
VideosArray = New Array;
VideosArray.Add(Video);
VideosArray.Add(Video2);
Options = New Structure;
Options.Insert("text", Text);
Options.Insert("videos", VideosArray);
Options.Insert("auth", Parameters);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("twitter", "CreateVideoTweet", Options);
OPI_TestDataRetrieval.Process(Result, "Twitter", "CreateVideoTweet", , Text); // SKIP
Text = "TestTweet" + String(New UUID);
Options = New Structure;
Options.Insert("text", Text);
Options.Insert("videos", Video);
Options.Insert("auth", Parameters);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("twitter", "CreateVideoTweet", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Twitter", "CreateVideoTweet", "Single", Text);
Video = OPI_HTTPRequests.Get(Video);
Text = "TestTweet" + String(New UUID);
Options = New Structure;
Options.Insert("text", Text);
Options.Insert("videos", Video);
Options.Insert("auth", Parameters);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("twitter", "CreateVideoTweet", Options);
OPI_TestDataRetrieval.Process(Result, "Twitter", "CreateVideoTweet", "Binary", Text);
EndProcedure
Procedure Twitter_CreateGifTweet(FunctionParameters)
Parameters = GetTwitterAuthData();
Text = "TestTweet" + String(New UUID);
GIF = FunctionParameters["GIF"]; // URL, Binary or File path
Gif2 = FunctionParameters["GIF"]; // URL, Binary or File path
GifsArray = New Array;
GifsArray.Add(GIF);
GifsArray.Add(Gif2);
Options = New Structure;
Options.Insert("text", Text);
Options.Insert("gifs", GifsArray);
Options.Insert("auth", Parameters);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("twitter", "CreateGifTweet", Options);
OPI_TestDataRetrieval.Process(Result, "Twitter", "CreateGifTweet", , Text); // SKIP
Text = "TestTweet" + String(New UUID);
Options = New Structure;
Options.Insert("text", Text);
Options.Insert("gifs", GIF);
Options.Insert("auth", Parameters);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("twitter", "CreateGifTweet", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Twitter", "CreateGifTweet", "Single", Text);
GIF = OPI_HTTPRequests.Get(GIF);
Text = "TestTweet" + String(New UUID);
Options = New Structure;
Options.Insert("text", Text);
Options.Insert("gifs", GIF);
Options.Insert("auth", Parameters);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("twitter", "CreateGifTweet", Options);
OPI_TestDataRetrieval.Process(Result, "Twitter", "CreateGifTweet", "Binary", Text);
EndProcedure
Procedure Twitter_CreatePollTweet(FunctionParameters)
Parameters = GetTwitterAuthData();
Text = "TestTweet" + String(New UUID);
AnswersArray = New Array;
AnswersArray.Add("Option 1");
AnswersArray.Add("Option 2");
Options = New Structure;
Options.Insert("text", Text);
Options.Insert("options", AnswersArray);
Options.Insert("duration", 60);
Options.Insert("auth", Parameters);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("twitter", "CreatePollTweet", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Twitter", "CreatePollTweet", , Text);
EndProcedure
Procedure Twitter_CreateCustomTweet(FunctionParameters)
Parameters = GetTwitterAuthData();
Text = "TestTweet" + String(New UUID);
Image1 = FunctionParameters["Picture"]; // URL, Binary Data or File path
Image2 = FunctionParameters["Picture2"]; // URL, Binary Data or File path
ImageArray = New Array;
ImageArray.Add(Image1);
ImageArray.Add(Image2);
Options = New Structure;
Options.Insert("files", ImageArray);
Options.Insert("type", "tweet_image");
Options.Insert("auth", Parameters);
MediaArray = OPI_TestDataRetrieval.ExecuteTestCLI("twitter", "UploadAttachmentsArray", Options);
Options = New Structure;
Options.Insert("text", Text);
Options.Insert("media", MediaArray);
Options.Insert("auth", Parameters);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("twitter", "CreateCustomTweet", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Twitter", "CreateCustomTweet", , Text);
EndProcedure
Procedure Twitter_UploadAttachmentsArray(FunctionParameters)
Parameters = GetTwitterAuthData();
Image1 = FunctionParameters["Picture"]; // URL, Binary Data or File path
Image2 = FunctionParameters["Picture2"]; // URL, Binary Data or File path
ImageArray = New Array;
ImageArray.Add(Image1);
ImageArray.Add(Image2);
Options = New Structure;
Options.Insert("files", ImageArray);
Options.Insert("type", "tweet_image");
Options.Insert("auth", Parameters);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("twitter", "UploadAttachmentsArray", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Twitter", "UploadAttachmentsArray");
EndProcedure
#EndRegion // Twitter
#EndRegion // AtomicTests
#EndRegion // Private
#Region Alternate
Procedure Твиттер_ДанныеАккаунта() Export
TwitterAPI_AccountData();
EndProcedure
Procedure Твиттер_Твиты() Export
TwitterAPI_Tweets();
EndProcedure
#EndRegion
File diff suppressed because it is too large Load Diff
+857 -4
View File
@@ -1,3 +1,5 @@
// OneScript: ./OInt/tests/Modules/OPItc_VKTeams.os
// MIT License
// Copyright (c) 2023-2026 Anton Tsitavets
@@ -9,7 +11,7 @@
// 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
// 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
@@ -22,6 +24,8 @@
// https://github.com/Bayselonarrend/OpenIntegrations
// Test suite for YAxUnit
// BSLLS:Typo-off
// BSLLS:LatinAndCyrillicSymbolInWord-off
// BSLLS:IncorrectLineBreak-off
@@ -63,6 +67,855 @@
//@skip-check missing-temporary-file-deletion
//@skip-check module-unused-method
// #Use oint
// #Use asserts
// #Use "internal"
//#Use "../../tools/main"
//#Use "../../tools/http"
//#Use "../../api"
//#Use asserts
//#Use "internal"
// For YAxUnit
Procedure ИсполняемыеСценарии() Export
OPI_TestDataRetrieval.FormYAXTests("VKTeams");
EndProcedure
// For Asserts
Function ПолучитьСписокТестов(UnitTesting) Export
Return OPI_TestDataRetrieval.FormAssertsTests("VKTeams");
EndFunction
#Region Internal
#Region RunnableTests
#Region VkTeams
Procedure VKT_CommonMethods() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("VkTeams_Token" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("VkTeams_FileID", TestParameters);
VkTeams_CheckToken(TestParameters);
VkTeams_GetEvents(TestParameters);
VKTeams_GetFileInformation(TestParameters);
EndProcedure
Procedure VKT_MessagesSending() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("VkTeams_Token" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("VkTeams_ChatID" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("VkTeams_ChatID2" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("VkTeams_MessageID", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Document" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Audio2" , TestParameters);
VkTeams_SendTextMessage(TestParameters);
OPI_Tools.Pause(60);
VKTeams_AnswerButtonEvent(TestParameters);
VKTeams_ForwardMessage(TestParameters);
VKTeams_SendFile(TestParameters);
VKTeams_ResendFile(TestParameters);
VKTeams_EditMessageText(TestParameters);
VKTeams_PinMessage(TestParameters);
VKTeams_UnpinMessage(TestParameters);
VKTeams_DeleteMessage(TestParameters);
VKTeams_SendVoice(TestParameters);
VKTeams_ResendVoice(TestParameters);
VKTeams_MakeActionButton(TestParameters);
EndProcedure
Procedure VKT_ChatManagement() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("VkTeams_Token" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("VkTeams_ChatID" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("VkTeams_ChatID2", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Picture3" , TestParameters);
VKTeams_RemoveChatMembers(TestParameters);
VKTeams_ChangeChatPicture(TestParameters);
VKTeams_GetChatInfo(TestParameters);
VKTeams_GetChatAdmins(TestParameters);
VKTeams_GetChatMembers(TestParameters);
VKTeams_GetChatBlockedUsers(TestParameters);
VKTeams_GetChatJoinRequests(TestParameters);
VKTeams_BlockChatUser(TestParameters);
VKTeams_UnblockChatUser(TestParameters);
VKTeams_ApprovePending(TestParameters);
VKTeams_DisapprovePending(TestParameters);
VKTeams_SetChatTitle(TestParameters);
VKTeams_SetChatDescription(TestParameters);
VKTeams_SetChatRules(TestParameters);
EndProcedure
#EndRegion // VkTeams
#EndRegion // RunnableTests
#EndRegion // Internal
#Region Private
#Region AtomicTests
#Region VKTeams
Procedure VKTeams_CheckToken(FunctionParameters)
Token = FunctionParameters["VkTeams_Token"];
Options = New Structure;
Options.Insert("token", Token);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "CheckToken", Options);
// END
OPI_TestDataRetrieval.Process(Result, "VKTeams", "CheckToken");
EndProcedure
Procedure VKTeams_GetEvents(FunctionParameters)
Token = FunctionParameters["VkTeams_Token"];
LastID = 0;
For N = 1 To 5 Do // In real work - endless loop
Result = OPI_VKTeams.GetEvents(Token, LastID, 3);
OPI_TestDataRetrieval.Process(Result, "VKTeams", "GetEvents"); // SKIP
Events = Result["events"];
// Event handling...
If Not Events.Count() = 0 Then
LastID = Events[Events.UBound()]["eventId"];
EndIf;
EndDo;
// END
OPI_Tools.Pause(3);
EndProcedure
Procedure VKTeams_SendTextMessage(FunctionParameters)
Token = FunctionParameters["VkTeams_Token"];
ChatID = FunctionParameters["VkTeams_ChatID"];
Text = "Message text";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("chatid", ChatID);
Options.Insert("text", Text);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "SendTextMessage", Options);
OPI_TestDataRetrieval.Process(Result, "VKTeams", "SendTextMessage", "Simple", FunctionParameters); // SKIP
ChatID = FunctionParameters["VkTeams_ChatID2"];
ReplyID = FunctionParameters["VkTeams_MessageID"];
Text = "<b>Bold text</b>";
Markup = "HTML";
Keyboard = New Array;
ButtonsLineArray = New Array;
ButtonsLineArray.Add(OPI_VKTeams.MakeActionButton("Button1", "ButtonEvent1", , "attention"));
ButtonsLineArray.Add(OPI_VKTeams.MakeActionButton("Button2", , "https://openintegrations.dev"));
// BSLLS:DuplicatedInsertionIntoCollection-off // SKIP
Keyboard.Add(ButtonsLineArray);
Keyboard.Add(ButtonsLineArray);
// BSLLS:DuplicatedInsertionIntoCollection-on // SKIP
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("chatid", ChatID);
Options.Insert("text", Text);
Options.Insert("reply", ReplyID);
Options.Insert("keyboard", Keyboard);
Options.Insert("parsemod", Markup);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "SendTextMessage", Options);
// END
OPI_TestDataRetrieval.Process(Result, "VKTeams", "SendTextMessage", , FunctionParameters);
EndProcedure
Procedure VKTeams_ForwardMessage(FunctionParameters)
Token = FunctionParameters["VkTeams_Token"];
ChatID = FunctionParameters["VkTeams_ChatID"];
FromChatID = FunctionParameters["VkTeams_ChatID2"];
MessageID = FunctionParameters["VkTeams_MessageID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("messageid", MessageID);
Options.Insert("fromid", FromChatID);
Options.Insert("chatid", ChatID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "ForwardMessage", Options);
OPI_TestDataRetrieval.Process(Result, "VKTeams", "ForwardMessage", "Simple"); // SKIP
Text = "Additional text";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("messageid", MessageID);
Options.Insert("fromid", FromChatID);
Options.Insert("chatid", ChatID);
Options.Insert("text", Text);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "ForwardMessage", Options);
// END
OPI_TestDataRetrieval.Process(Result, "VKTeams", "ForwardMessage");
EndProcedure
Procedure VKTeams_SendFile(FunctionParameters)
Token = FunctionParameters["VkTeams_Token"];
ChatID = FunctionParameters["VkTeams_ChatID"];
Text = "File caption";
File = FunctionParameters["Document"]; // URL
FilePath = GetTempFileName("docx"); // Path
FileCopy(File, FilePath);
FileBD = New BinaryData(FilePath); // Binary
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("chatid", ChatID);
Options.Insert("file", File);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "SendFile", Options);
OPI_TestDataRetrieval.Process(Result, "VKTeams", "SendFile", "URL", FunctionParameters); // SKIP
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("chatid", ChatID);
Options.Insert("file", FilePath);
Options.Insert("text", Text);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "SendFile", Options);
OPI_TestDataRetrieval.Process(Result, "VKTeams", "SendFile", "Path", FunctionParameters); // SKIP
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("chatid", ChatID);
Options.Insert("file", FileBD);
Options.Insert("text", Text);
Options.Insert("filename", "ImportantDocument.docx");
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "SendFile", Options);
// END
OPI_TestDataRetrieval.Process(Result, "VKTeams", "SendFile", , FunctionParameters);
OPI_Tools.RemoveFileWithTry(FilePath, "Failed to delete the temporary file after the test!!");
EndProcedure
Procedure VKTeams_ResendFile(FunctionParameters)
Token = FunctionParameters["VkTeams_Token"];
ChatID = FunctionParameters["VkTeams_ChatID"];
FileID = FunctionParameters["VkTeams_FileID"];
Text = "File caption";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("chatid", ChatID);
Options.Insert("fileid", FileID);
Options.Insert("text", Text);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "ResendFile", Options);
// END
OPI_TestDataRetrieval.Process(Result, "VKTeams", "ResendFile");
EndProcedure
Procedure VKTeams_GetFileInformation(FunctionParameters)
Token = FunctionParameters["VkTeams_Token"];
FileID = FunctionParameters["VkTeams_FileID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("fileid", FileID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "GetFileInformation", Options);
// END
OPI_TestDataRetrieval.Process(Result, "VKTeams", "GetFileInformation");
EndProcedure
Procedure VKTeams_EditMessageText(FunctionParameters)
Token = FunctionParameters["VkTeams_Token"];
ChatID = FunctionParameters["VkTeams_ChatID2"];
MessageID = FunctionParameters["VkTeams_MessageID"];
Text = "New message text";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("chatid", ChatID);
Options.Insert("messageid", MessageID);
Options.Insert("text", Text);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "EditMessageText", Options);
OPI_TestDataRetrieval.Process(Result, "VKTeams", "EditMessageText", "Path"); // SKIP
Text = "<b>New bold message text</b>";
Markup = "HTML";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("chatid", ChatID);
Options.Insert("messageid", MessageID);
Options.Insert("text", Text);
Options.Insert("parsemod", Markup);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "EditMessageText", Options);
// END
OPI_TestDataRetrieval.Process(Result, "VKTeams", "EditMessageText");
EndProcedure
Procedure VKTeams_DeleteMessage(FunctionParameters)
Token = FunctionParameters["VkTeams_Token"];
ChatID = FunctionParameters["VkTeams_ChatID2"];
MessageID = FunctionParameters["VkTeams_MessageID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("chatid", ChatID);
Options.Insert("messageid", MessageID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "DeleteMessage", Options);
// END
OPI_TestDataRetrieval.Process(Result, "VKTeams", "DeleteMessage");
EndProcedure
Procedure VKTeams_SendVoice(FunctionParameters)
Token = FunctionParameters["VkTeams_Token"];
ChatID = FunctionParameters["VkTeams_ChatID2"];
ReplyID = FunctionParameters["VkTeams_MessageID"];
File = FunctionParameters["Audio2"]; // URL
FilePath = GetTempFileName("m4a"); // Path
FileCopy(File, FilePath);
FileBD = New BinaryData(FilePath); // Binary
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("chatid", ChatID);
Options.Insert("file", File);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "SendVoice", Options);
OPI_TestDataRetrieval.Process(Result, "VKTeams", "SendVoice", "URL", FunctionParameters); // SKIP
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("chatid", ChatID);
Options.Insert("file", FilePath);
Options.Insert("reply", ReplyID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "SendVoice", Options);
OPI_TestDataRetrieval.Process(Result, "VKTeams", "SendVoice", "Path", FunctionParameters); // SKIP
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("chatid", ChatID);
Options.Insert("file", FileBD);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "SendVoice", Options);
// END
OPI_TestDataRetrieval.Process(Result, "VKTeams", "SendVoice", , FunctionParameters);
OPI_Tools.RemoveFileWithTry(FilePath, "Failed to delete the temporary file after the test!!");
EndProcedure
Procedure VKTeams_ResendVoice(FunctionParameters)
Token = FunctionParameters["VkTeams_Token"];
ChatID = FunctionParameters["VkTeams_ChatID"];
FileID = FunctionParameters["VkTeams_VoiceID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("chatid", ChatID);
Options.Insert("fileid", FileID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "ResendVoice", Options);
// END
OPI_TestDataRetrieval.Process(Result, "VKTeams", "ResendVoice");
EndProcedure
Procedure VKTeams_RemoveChatMembers(FunctionParameters)
Token = FunctionParameters["VkTeams_Token"];
ChatID = FunctionParameters["VkTeams_ChatID2"];
User = 1011987091;
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("chatid", ChatID);
Options.Insert("members", User);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "RemoveChatMembers", Options);
// END
OPI_TestDataRetrieval.Process(Result, "VKTeams", "RemoveChatMembers");
EndProcedure
Procedure VKTeams_ChangeChatPicture(FunctionParameters)
Token = FunctionParameters["VkTeams_Token"];
ChatID = FunctionParameters["VkTeams_ChatID"];
File = FunctionParameters["Picture3"]; // URL
FilePath = GetTempFileName("png"); // Path
FileCopy(File, FilePath);
FileBD = New BinaryData(FilePath); // Binary
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("chatid", ChatID);
Options.Insert("file", File);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "ChangeChatPicture", Options);
OPI_TestDataRetrieval.Process(Result, "VKTeams", "ChangeChatPicture", "URL");
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("chatid", ChatID);
Options.Insert("file", FilePath);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "ChangeChatPicture", Options);
OPI_TestDataRetrieval.Process(Result, "VKTeams", "ChangeChatPicture", "Path");
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("chatid", ChatID);
Options.Insert("file", FileBD);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "ChangeChatPicture", Options);
// END
OPI_TestDataRetrieval.Process(Result, "VKTeams", "ChangeChatPicture");
OPI_Tools.RemoveFileWithTry(FilePath, "Failed to delete the temporary file after the test!!");
EndProcedure
Procedure VKTeams_GetChatInfo(FunctionParameters)
Token = FunctionParameters["VkTeams_Token"];
ChatID = FunctionParameters["VkTeams_ChatID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("chatid", ChatID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "GetChatInfo", Options);
// END
OPI_TestDataRetrieval.Process(Result, "VKTeams", "GetChatInfo");
EndProcedure
Procedure VKTeams_GetChatAdmins(FunctionParameters)
Token = FunctionParameters["VkTeams_Token"];
ChatID = FunctionParameters["VkTeams_ChatID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("chatid", ChatID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "GetChatAdmins", Options);
// END
OPI_TestDataRetrieval.Process(Result, "VKTeams", "GetChatAdmins");
EndProcedure
Procedure VKTeams_GetChatMembers(FunctionParameters)
Token = FunctionParameters["VkTeams_Token"];
ChatID = FunctionParameters["VkTeams_ChatID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("chatid", ChatID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "GetChatMembers", Options);
// END
OPI_TestDataRetrieval.Process(Result, "VKTeams", "GetChatMembers");
EndProcedure
Procedure VKTeams_GetChatBlockedUsers(FunctionParameters)
Token = FunctionParameters["VkTeams_Token"];
ChatID = FunctionParameters["VkTeams_ChatID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("chatid", ChatID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "GetChatBlockedUsers", Options);
// END
OPI_TestDataRetrieval.Process(Result, "VKTeams", "GetChatBlockedUsers");
EndProcedure
Procedure VKTeams_GetChatJoinRequests(FunctionParameters)
Token = FunctionParameters["VkTeams_Token"];
ChatID = FunctionParameters["VkTeams_ChatID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("chatid", ChatID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "GetChatJoinRequests", Options);
// END
OPI_TestDataRetrieval.Process(Result, "VKTeams", "GetChatJoinRequests");
EndProcedure
Procedure VKTeams_BlockChatUser(FunctionParameters)
Token = FunctionParameters["VkTeams_Token"];
ChatID = FunctionParameters["VkTeams_ChatID2"];
User = 1011987091;
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("chatid", ChatID);
Options.Insert("userid", User);
Options.Insert("dellast", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "BlockChatUser", Options);
// END
OPI_TestDataRetrieval.Process(Result, "VKTeams", "BlockChatUser");
EndProcedure
Procedure VKTeams_UnblockChatUser(FunctionParameters)
Token = FunctionParameters["VkTeams_Token"];
ChatID = FunctionParameters["VkTeams_ChatID2"];
User = 1011987091;
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("chatid", ChatID);
Options.Insert("userid", User);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "UnblockChatUser", Options);
// END
OPI_TestDataRetrieval.Process(Result, "VKTeams", "UnblockChatUser");
EndProcedure
Procedure VKTeams_PinMessage(FunctionParameters)
Token = FunctionParameters["VkTeams_Token"];
ChatID = FunctionParameters["VkTeams_ChatID2"];
MessageID = FunctionParameters["VkTeams_MessageID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("chatid", ChatID);
Options.Insert("messageid", MessageID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "PinMessage", Options);
// END
OPI_TestDataRetrieval.Process(Result, "VKTeams", "PinMessage");
EndProcedure
Procedure VKTeams_UnpinMessage(FunctionParameters)
Token = FunctionParameters["VkTeams_Token"];
ChatID = FunctionParameters["VkTeams_ChatID2"];
MessageID = FunctionParameters["VkTeams_MessageID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("chatid", ChatID);
Options.Insert("messageid", MessageID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "UnpinMessage", Options);
// END
OPI_TestDataRetrieval.Process(Result, "VKTeams", "UnpinMessage");
EndProcedure
Procedure VKTeams_ApprovePending(FunctionParameters)
Token = FunctionParameters["VkTeams_Token"];
ChatID = FunctionParameters["VkTeams_ChatID2"];
User = 1011987091;
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("chatid", ChatID);
Options.Insert("userid", User);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "ApprovePending", Options);
OPI_TestDataRetrieval.Process(Result, "VKTeams", "ApprovePending", "One"); // SKIP
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("chatid", ChatID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "ApprovePending", Options);
// END
OPI_TestDataRetrieval.Process(Result, "VKTeams", "ApprovePending");
EndProcedure
Procedure VKTeams_DisapprovePending(FunctionParameters)
Token = FunctionParameters["VkTeams_Token"];
ChatID = FunctionParameters["VkTeams_ChatID2"];
User = 1011987091;
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("chatid", ChatID);
Options.Insert("userid", User);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "DisapprovePending", Options);
OPI_TestDataRetrieval.Process(Result, "VKTeams", "DisapprovePending", "One"); // SKIP
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("chatid", ChatID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "DisapprovePending", Options);
// END
OPI_TestDataRetrieval.Process(Result, "VKTeams", "DisapprovePending");
EndProcedure
Procedure VKTeams_SetChatTitle(FunctionParameters)
Token = FunctionParameters["VkTeams_Token"];
ChatID = FunctionParameters["VkTeams_ChatID2"];
Text = "New title";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("chatid", ChatID);
Options.Insert("text", Text);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "SetChatTitle", Options);
// END
OPI_TestDataRetrieval.Process(Result, "VKTeams", "SetChatTitle");
EndProcedure
Procedure VKTeams_SetChatDescription(FunctionParameters)
Token = FunctionParameters["VkTeams_Token"];
ChatID = FunctionParameters["VkTeams_ChatID2"];
Text = "New description";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("chatid", ChatID);
Options.Insert("text", Text);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "SetChatDescription", Options);
// END
OPI_TestDataRetrieval.Process(Result, "VKTeams", "SetChatDescription");
EndProcedure
Procedure VKTeams_SetChatRules(FunctionParameters)
Token = FunctionParameters["VkTeams_Token"];
ChatID = FunctionParameters["VkTeams_ChatID2"];
Text = "Text of the new rules";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("chatid", ChatID);
Options.Insert("text", Text);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "SetChatRules", Options);
// END
OPI_TestDataRetrieval.Process(Result, "VKTeams", "SetChatRules");
EndProcedure
Procedure VKTeams_AnswerButtonEvent(FunctionParameters)
Token = FunctionParameters["VkTeams_Token"];
LastID = 0;
For N = 1 To 5 Do
Result = OPI_VKTeams.GetEvents(Token, LastID, 3);
Events = Result["events"];
If Not Events.Count() = 0 Then
For Each Event In Events Do
callbackData = Event["payload"];
If callbackData["callbackData"] = "ButtonEvent1" Then
EventID = callbackData["queryId"];
Result = OPI_VKTeams.AnswerButtonEvent(Token, EventID, "Get it!!");
OPI_TestDataRetrieval.Process(Result, "VKTeams", "AnswerButtonEvent"); // SKIP
EndIf;
EndDo;
LastID = Events[Events.UBound()]["eventId"];
EndIf;
EndDo;
// END
OPI_Tools.Pause(3);
EndProcedure
Procedure VKTeams_MakeActionButton(FunctionParameters)
Keyboard = New Array;
ButtonsLineArray = New Array;
ButtonsLineArray.Add(OPI_VKTeams.MakeActionButton("Button1", "ButtonEvent1", , "attention"));
ButtonsLineArray.Add(OPI_VKTeams.MakeActionButton("Button2", , "https://openintegrations.dev"));
// BSLLS:DuplicatedInsertionIntoCollection-off // SKIP
Keyboard.Add(ButtonsLineArray);
Keyboard.Add(ButtonsLineArray);
// BSLLS:DuplicatedInsertionIntoCollection-on // SKIP
// END
EndProcedure
#EndRegion // VKTeams
#EndRegion // AtomicTests
#EndRegion // Private
#Region Alternate
Procedure ВКТ_ОбщиеМетоды() Export
VKT_CommonMethods();
EndProcedure
Procedure ВКТ_ОтправкаСообщений() Export
VKT_MessagesSending();
EndProcedure
Procedure ВКТ_УправлениеЧатами() Export
VKT_ChatManagement();
EndProcedure
#EndRegion
+434 -4
View File
@@ -1,3 +1,5 @@
// OneScript: ./OInt/tests/Modules/OPItc_Viber.os
// MIT License
// Copyright (c) 2023-2026 Anton Tsitavets
@@ -9,7 +11,7 @@
// 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
// 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
@@ -22,6 +24,8 @@
// https://github.com/Bayselonarrend/OpenIntegrations
// Test suite for YAxUnit
// BSLLS:Typo-off
// BSLLS:LatinAndCyrillicSymbolInWord-off
// BSLLS:IncorrectLineBreak-off
@@ -63,6 +67,432 @@
//@skip-check missing-temporary-file-deletion
//@skip-check module-unused-method
// #Use oint
// #Use asserts
// #Use "internal"
//#Use "../../tools/main"
//#Use "../../tools/http"
//#Use "../../api"
//#Use asserts
//#Use "internal"
// For YAxUnit
Procedure ИсполняемыеСценарии() Export
OPI_TestDataRetrieval.FormYAXTests("Viber");
EndProcedure
// For Asserts
Function ПолучитьСписокТестов(UnitTesting) Export
Return OPI_TestDataRetrieval.FormAssertsTests("Viber");
EndFunction
#Region Internal
#Region RunnableTests
#Region Viber
Procedure Viber_DataRetrieval() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Viber_ChannelToken" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Viber_ChannelAdminID", TestParameters);
Return;
//@skip-check unreachable-statements
// BSLLS:UnreachableCode-off
Viber_GetChannelInformation(TestParameters);
Viber_GetUserData(TestParameters);
Viber_GetOnlineUsers(TestParameters);
Viber_SetWebhook(TestParameters);
// BSLLS:UnreachableCode-on
EndProcedure
Procedure Viber_MessagesSending() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Viber_ChannelToken" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Viber_ChannelAdminID", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Viber_Token" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Viber_UserID" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Picture" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Document" , TestParameters);
Viber_CreateKeyboardFromArrayButton(TestParameters);
Return;
//@skip-check unreachable-statement
// BSLLS:UnreachableCode-off
Viber_SendTextMessage(TestParameters);
Viber_SendImage(TestParameters);
Viber_SendFile(TestParameters);
Viber_SendContact(TestParameters);
Viber_SendLocation(TestParameters);
Viber_SendLink(TestParameters);
// BSLLS:UnreachableCode-on
EndProcedure
#EndRegion // Viber
#EndRegion // RunnableTests
#EndRegion // Internal
#Region Private
#Region AtomicTests
#Region Viber
Procedure Viber_SetWebhook(FunctionParameters)
Token = FunctionParameters["Viber_ChannelToken"];
URL = "http://api.athenaeum.digital/hs/viber";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("url", URL);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("viber", "SetWebhook", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Viber", "SetWebhook");
EndProcedure
Procedure Viber_GetChannelInformation(FunctionParameters)
Token = FunctionParameters["Viber_ChannelToken"];
Options = New Structure;
Options.Insert("token", Token);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("viber", "GetChannelInformation", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Viber", "GetChannelInformation");
EndProcedure
Procedure Viber_GetUserData(FunctionParameters)
Token = FunctionParameters["Viber_ChannelToken"];
UserID = FunctionParameters["Viber_ChannelAdminID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("user", UserID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("viber", "GetUserData", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Viber", "GetUserData");
EndProcedure
Procedure Viber_GetOnlineUsers(FunctionParameters)
Token = FunctionParameters["Viber_ChannelToken"];
UserID = FunctionParameters["Viber_ChannelAdminID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("users", UserID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("viber", "GetOnlineUsers", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Viber", "GetOnlineUsers");
EndProcedure
Procedure Viber_CreateKeyboardFromArrayButton(FunctionParameters)
ButtonArray = New Array;
ButtonArray.Add("Button 1");
ButtonArray.Add("Button 2");
ButtonArray.Add("Button 3");
Options = New Structure;
Options.Insert("buttons", ButtonArray);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("viber", "CreateKeyboardFromArrayButton", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Viber", "CreateKeyboardFromArrayButton");
EndProcedure
Procedure Viber_SendTextMessage(FunctionParameters)
Text = "TestMessage";
UserID = FunctionParameters["Viber_UserID"];
Token = FunctionParameters["Viber_Token"];
SendingToChannel = False;
ButtonArray = New Array;
ButtonArray.Add("Button 1");
ButtonArray.Add("Button 2");
ButtonArray.Add("Button 3");
Options = New Structure;
Options.Insert("buttons", ButtonArray);
Keyboard = OPI_TestDataRetrieval.ExecuteTestCLI("viber", "CreateKeyboardFromArrayButton", Options);
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("text", Text);
Options.Insert("user", UserID);
Options.Insert("ischannel", SendingToChannel);
Options.Insert("keyboard", Keyboard);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("viber", "SendTextMessage", Options);
OPI_TestDataRetrieval.Process(Result, "Viber", "SendTextMessage"); // SKIP
UserID = FunctionParameters["Viber_ChannelAdminID"];
Token = FunctionParameters["Viber_ChannelToken"];
SendingToChannel = True;
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("text", Text);
Options.Insert("user", UserID);
Options.Insert("ischannel", SendingToChannel);
Options.Insert("keyboard", Keyboard);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("viber", "SendTextMessage", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Viber", "SendTextMessage", "Channel");
EndProcedure
Procedure Viber_SendImage(FunctionParameters)
Description = "TestMessage";
URL = FunctionParameters["Picture"];
UserID = FunctionParameters["Viber_UserID"];
Token = FunctionParameters["Viber_Token"];
SendingToChannel = False;
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("picture", URL);
Options.Insert("user", UserID);
Options.Insert("ischannel", SendingToChannel);
Options.Insert("description", Description);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("viber", "SendImage", Options);
OPI_TestDataRetrieval.Process(Result, "Viber", "SendImage"); // SKIP
UserID = FunctionParameters["Viber_ChannelAdminID"];
Token = FunctionParameters["Viber_ChannelToken"];
SendingToChannel = True;
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("picture", URL);
Options.Insert("user", UserID);
Options.Insert("ischannel", SendingToChannel);
Options.Insert("description", Description);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("viber", "SendImage", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Viber", "SendImage", "Channel");
EndProcedure
Procedure Viber_SendFile(FunctionParameters)
Extension = "docx";
URL = FunctionParameters["Document"];
UserID = FunctionParameters["Viber_UserID"];
Token = FunctionParameters["Viber_Token"];
SendingToChannel = False;
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("file", URL);
Options.Insert("user", UserID);
Options.Insert("ischannel", SendingToChannel);
Options.Insert("ext", Extension);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("viber", "SendFile", Options);
OPI_TestDataRetrieval.Process(Result, "Viber", "SendFile"); // SKIP
UserID = FunctionParameters["Viber_ChannelAdminID"];
Token = FunctionParameters["Viber_ChannelToken"];
SendingToChannel = True;
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("file", URL);
Options.Insert("user", UserID);
Options.Insert("ischannel", SendingToChannel);
Options.Insert("ext", Extension);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("viber", "SendFile", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Viber", "SendFile", "Channel");
EndProcedure
Procedure Viber_SendContact(FunctionParameters)
Name = "Petr Petrov";
Phone = "+123456789";
UserID = FunctionParameters["Viber_UserID"];
Token = FunctionParameters["Viber_Token"];
SendingToChannel = False;
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("name", Name);
Options.Insert("phone", Phone);
Options.Insert("user", UserID);
Options.Insert("ischannel", SendingToChannel);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("viber", "SendContact", Options);
OPI_TestDataRetrieval.Process(Result, "Viber", "SendContact"); // SKIP
UserID = FunctionParameters["Viber_ChannelAdminID"];
Token = FunctionParameters["Viber_ChannelToken"];
SendingToChannel = True;
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("name", Name);
Options.Insert("phone", Phone);
Options.Insert("user", UserID);
Options.Insert("ischannel", SendingToChannel);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("viber", "SendContact", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Viber", "SendContact", "Channel");
EndProcedure
Procedure Viber_SendLocation(FunctionParameters)
Latitude = "48.87373649724122";
Longitude = "2.2954639195323967";
UserID = FunctionParameters["Viber_UserID"];
Token = FunctionParameters["Viber_Token"];
SendingToChannel = False;
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("lat", Latitude);
Options.Insert("long", Longitude);
Options.Insert("user", UserID);
Options.Insert("ischannel", SendingToChannel);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("viber", "SendLocation", Options);
OPI_TestDataRetrieval.Process(Result, "Viber", "SendLocation"); // SKIP
UserID = FunctionParameters["Viber_ChannelAdminID"];
Token = FunctionParameters["Viber_ChannelToken"];
SendingToChannel = True;
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("lat", Latitude);
Options.Insert("long", Longitude);
Options.Insert("user", UserID);
Options.Insert("ischannel", SendingToChannel);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("viber", "SendLocation", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Viber", "SendLocation", "Channel");
EndProcedure
Procedure Viber_SendLink(FunctionParameters)
URL = "https://github.com/Bayselonarrend/OpenIntegrations";
UserID = FunctionParameters["Viber_UserID"];
Token = FunctionParameters["Viber_Token"];
SendingToChannel = False;
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("url", URL);
Options.Insert("user", UserID);
Options.Insert("ischannel", SendingToChannel);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("viber", "SendLink", Options);
OPI_TestDataRetrieval.Process(Result, "Viber", "SendLink"); // SKIP
UserID = FunctionParameters["Viber_ChannelAdminID"];
Token = FunctionParameters["Viber_ChannelToken"];
SendingToChannel = True;
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("url", URL);
Options.Insert("user", UserID);
Options.Insert("ischannel", SendingToChannel);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("viber", "SendLink", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Viber", "SendLink", "Channel");
EndProcedure
#EndRegion // Viber
#EndRegion // AtomicTests
#EndRegion // Private
#Region Alternate
Procedure Вайбер_ПолучениеИнформации() Export
Viber_DataRetrieval();
EndProcedure
Procedure Вайбер_ОтправкаСообщений() Export
Viber_MessagesSending();
EndProcedure
#EndRegion
@@ -1,3 +1,5 @@
// OneScript: ./OInt/tests/Modules/OPItc_WebSocket.os
// MIT License
// Copyright (c) 2023-2026 Anton Tsitavets
@@ -63,6 +65,31 @@
//@skip-check missing-temporary-file-deletion
//@skip-check module-unused-method
// #Use oint
// #Use asserts
// #Use "internal"
//#Use "../../tools/main"
//#Use "../../tools/http"
//#Use "../../api"
//#Use asserts
//#Use "internal"
// For YAxUnit
Procedure ИсполняемыеСценарии() Export
OPI_TestDataRetrieval.FormYAXTests("WebSocket");
EndProcedure
// For Asserts
Function ПолучитьСписокТестов(UnitTesting) Export
Return OPI_TestDataRetrieval.FormAssertsTests("WebSocket");
EndFunction
#Region Alternate
#EndRegion
@@ -1,3 +1,5 @@
// OneScript: ./OInt/tests/Modules/OPItc_YandexDisk.os
// MIT License
// Copyright (c) 2023-2026 Anton Tsitavets
@@ -9,7 +11,7 @@
// 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
// 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
@@ -22,6 +24,8 @@
// https://github.com/Bayselonarrend/OpenIntegrations
// Test suite for YAxUnit
// BSLLS:Typo-off
// BSLLS:LatinAndCyrillicSymbolInWord-off
// BSLLS:IncorrectLineBreak-off
@@ -63,6 +67,701 @@
//@skip-check missing-temporary-file-deletion
//@skip-check module-unused-method
// #Use oint
// #Use asserts
// #Use "internal"
//#Use "../../tools/main"
//#Use "../../tools/http"
//#Use "../../api"
//#Use asserts
//#Use "internal"
// For YAxUnit
Procedure ИсполняемыеСценарии() Export
OPI_TestDataRetrieval.FormYAXTests("YandexDisk");
EndProcedure
// For Asserts
Function ПолучитьСписокТестов(UnitTesting) Export
Return OPI_TestDataRetrieval.FormAssertsTests("YandexDisk");
EndFunction
#Region Internal
#Region RunnableTests
#Region YandexDisk
Procedure YDisk_Authorization() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("YandexDisk_Token" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("YandexDisk_ClientID" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("YandexDisk_ClientSecret", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("YandexDisk_RefreshToken", TestParameters);
YandexDisk_GetConfirmationCode(TestParameters);
YandexDisk_ConvertCodeToToken(TestParameters);
YandexDisk_RefreshToken(TestParameters);
EndProcedure
Procedure YDisk_GetDiskInfo() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("YandexDisk_Token", TestParameters);
YandexDisk_GetDiskInformation(TestParameters);
EndProcedure
Procedure YDisk_CreateFolder() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("YandexDisk_Token", TestParameters);
YandexDisk_CreateFolder(TestParameters);
EndProcedure
Procedure YDisk_UploadByUrlAndGetObject() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("YandexDisk_Token", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Picture" , TestParameters);
YandexDisk_UploadFileByURL(TestParameters);
YandexDisk_GetObject(TestParameters);
YandexDisk_DeleteObject(TestParameters);
EndProcedure
Procedure YDisk_UploadDeleteFile() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("YandexDisk_Token", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Picture" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Audio" , TestParameters);
YandexDisk_UploadFileInParts(TestParameters);
YandexDisk_UploadFile(TestParameters);
EndProcedure
Procedure YDisk_CreateObjectCopy() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("YandexDisk_Token", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Picture" , TestParameters);
Token = TestParameters["YandexDisk_Token"];
URL = TestParameters["Picture"];
OriginalPath = "/" + String(New UUID) + ".png";
OPI_YandexDisk.UploadFileByURL(Token, OriginalPath, URL);
OPI_Tools.Pause(35);
OPI_TestDataRetrieval.WriteParameter("YandexDisk_OriginalFilePath", OriginalPath);
TestParameters.Insert("YandexDisk_OriginalFilePath", OriginalPath);
YandexDisk_CreateObjectCopy(TestParameters);
CopyPath = TestParameters["YandexDisk_FileCopyPath"];
OPI_YandexDisk.DeleteObject(Token, OriginalPath, False);
OPI_YandexDisk.DeleteObject(Token, CopyPath , False);
OPI_Tools.Pause(5);
EndProcedure
Procedure YDisk_GetDownloadLink() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("YandexDisk_Token", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Picture" , TestParameters);
Token = TestParameters["YandexDisk_Token"];
URL = TestParameters["Picture"];
Path = "/" + String(New UUID) + ".png";
OPI_YandexDisk.UploadFileByURL(Token, Path, URL);
OPI_Tools.Pause(35);
OPI_TestDataRetrieval.WriteParameter("YandexDisk_PathForLink", Path);
TestParameters.Insert("YandexDisk_PathForLink", Path);
YandexDisk_GetDownloadLink(TestParameters);
YandexDisk_DownloadFile(TestParameters);
OPI_YandexDisk.DeleteObject(Token, Path, False);
EndProcedure
Procedure YDisk_GetFileList() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("YandexDisk_Token", TestParameters);
YandexDisk_GetFilesList(TestParameters);
EndProcedure
Procedure YDisk_MoveObject() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("YandexDisk_Token", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Picture" , TestParameters);
Token = TestParameters["YandexDisk_Token"];
URL = TestParameters["Picture"];
OriginalPath = "/" + String(New UUID) + ".png";
OPI_YandexDisk.UploadFileByURL(Token, OriginalPath, URL);
OPI_Tools.Pause(35);
OPI_TestDataRetrieval.WriteParameter("YandexDisk_OriginalFilePath", OriginalPath);
TestParameters.Insert("YandexDisk_OriginalFilePath", OriginalPath);
YandexDisk_MoveObject(TestParameters);
NewPath = TestParameters["YandexDisk_NewFilePath"];
OPI_YandexDisk.DeleteObject(Token, OriginalPath, False);
OPI_YandexDisk.DeleteObject(Token, NewPath , False);
OPI_Tools.Pause(5);
EndProcedure
Procedure YDisk_PublicObjectActions() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("YandexDisk_Token", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Picture" , TestParameters);
Token = TestParameters["YandexDisk_Token"];
URL = TestParameters["Picture"];
OriginalPath = "/" + String(New UUID) + ".png";
OPI_YandexDisk.UploadFileByURL(Token, OriginalPath, URL);
OPI_Tools.Pause(35);
OPI_TestDataRetrieval.WriteParameter("YandexDisk_OriginalFilePath", OriginalPath);
TestParameters.Insert("YandexDisk_OriginalFilePath", OriginalPath);
YandexDisk_PublishObject(TestParameters);
YandexDisk_GetDownloadLinkForPublicObject(TestParameters);
YandexDisk_GetPublicObject(TestParameters);
YandexDisk_SavePublicObjectToDisk(TestParameters);
YandexDisk_CancelObjectPublication(TestParameters);
OPI_YandexDisk.DeleteObject(Token, OriginalPath, False);
OPI_Tools.Pause(5);
EndProcedure
Procedure YDisk_GetPublishedList() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("YandexDisk_Token", TestParameters);
YandexDisk_GetPublishedObjectsList(TestParameters);
EndProcedure
#EndRegion // YandexDisk
#EndRegion // RunnableTests
#EndRegion // Internal
#Region Private
#Region AtomicTests
#Region YandexDisk
Procedure YandexDisk_GetConfirmationCode(FunctionParameters)
ClientID = FunctionParameters["YandexDisk_ClientID"];
Options = New Structure;
Options.Insert("id", ClientID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("yadisk", "GetConfirmationCode", Options);
// END
OPI_TestDataRetrieval.Process(Result, "YandexDisk", "GetConfirmationCode");
EndProcedure
Procedure YandexDisk_ConvertCodeToToken(FunctionParameters)
ClientID = FunctionParameters["YandexDisk_ClientID"];
ClientSecret = FunctionParameters["YandexDisk_ClientSecret"];
DeviceCode = "12345678";
Options = New Structure;
Options.Insert("id", ClientID);
Options.Insert("secret", ClientSecret);
Options.Insert("device", DeviceCode);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("yadisk", "ConvertCodeToToken", Options);
// END
OPI_TestDataRetrieval.Process(Result, "YandexDisk", "ConvertCodeToToken", , FunctionParameters);
EndProcedure
Procedure YandexDisk_RefreshToken(FunctionParameters)
ClientID = FunctionParameters["YandexDisk_ClientID"];
ClientSecret = FunctionParameters["YandexDisk_ClientSecret"];
RefreshToken = FunctionParameters["YandexDisk_RefreshToken"];
Options = New Structure;
Options.Insert("id", ClientID);
Options.Insert("secret", ClientSecret);
Options.Insert("refresh", RefreshToken);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("yadisk", "RefreshToken", Options);
// END
OPI_TestDataRetrieval.Process(Result, "YandexDisk", "RefreshToken", , FunctionParameters);
EndProcedure
Procedure YandexDisk_GetDiskInformation(FunctionParameters)
Token = FunctionParameters["YandexDisk_Token"];
Options = New Structure;
Options.Insert("token", Token);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("yadisk", "GetDiskInformation", Options);
// END
OPI_TestDataRetrieval.Process(Result, "YandexDisk", "GetDiskInformation");
EndProcedure
Procedure YandexDisk_CreateFolder(FunctionParameters)
Token = FunctionParameters["YandexDisk_Token"];
Path = "/" + String(New UUID);
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("path", Path);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("yadisk", "CreateFolder", Options);
// END
OPI_TestDataRetrieval.Process(Result, "YandexDisk", "CreateFolder", , Token, Path);
OPI_YandexDisk.DeleteObject(Token, Path, False);
EndProcedure
Procedure YandexDisk_UploadFileByURL(FunctionParameters)
Token = FunctionParameters["YandexDisk_Token"];
Address = FunctionParameters["Picture"];
Path = "/" + String(New UUID) + ".png";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("path", Path);
Options.Insert("url", Address);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("yadisk", "UploadFileByURL", Options);
// END
OPI_TestDataRetrieval.Process(Result, "YandexDisk", "UploadFileByURL", , FunctionParameters, Path);
EndProcedure
Procedure YandexDisk_GetObject(FunctionParameters)
Token = FunctionParameters["YandexDisk_Token"];
Path = FunctionParameters["YandexDisk_FileByURLPath"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("path", Path);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("yadisk", "GetObject", Options);
// END
OPI_TestDataRetrieval.Process(Result, "YandexDisk", "GetObject", , Path);
EndProcedure
Procedure YandexDisk_DeleteObject(FunctionParameters)
Token = FunctionParameters["YandexDisk_Token"];
Path = FunctionParameters["YandexDisk_FileByURLPath"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("path", Path);
Options.Insert("can", Ложь);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("yadisk", "DeleteObject", Options);
// END
OPI_TestDataRetrieval.Process(Result, "YandexDisk", "DeleteObject");
EndProcedure
Procedure YandexDisk_UploadFile(FunctionParameters)
Path1 = "/" + String(New UUID) + ".png";
Path2 = "/" + String(New UUID) + ".png";
Token = FunctionParameters["YandexDisk_Token"];
Image = FunctionParameters["Picture"]; // URL
TFN = GetTempFileName("png"); // Path
FileCopy(Image, TFN);
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("path", Path1);
Options.Insert("file", Image);
Options.Insert("rewrite", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("yadisk", "UploadFile", Options);
OPI_TestDataRetrieval.Process(Result, "YandexDisk", "UploadFile", "URL"); // SKIP
OPI_YandexDisk.DeleteObject(Token, Path1, False); // SKIP
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("path", Path2);
Options.Insert("file", TFN);
Options.Insert("rewrite", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("yadisk", "UploadFile", Options);
// END
OPI_Tools.RemoveFileWithTry(TFN, "Failed to delete the temporary file after the test!!");
OPI_TestDataRetrieval.Process(Result, "YandexDisk", "UploadFile");
OPI_YandexDisk.DeleteObject(Token, Path2, False); // SKIP
EndProcedure
Procedure YandexDisk_CreateObjectCopy(FunctionParameters)
Token = FunctionParameters["YandexDisk_Token"];
Original = FunctionParameters["YandexDisk_OriginalFilePath"];
Path = "/" + String(New UUID) + ".png";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("from", Original);
Options.Insert("to", Path);
Options.Insert("rewrite", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("yadisk", "CreateObjectCopy", Options);
// END
OPI_TestDataRetrieval.Process(Result, "YandexDisk", "CreateObjectCopy", , FunctionParameters, Path);
EndProcedure
Procedure YandexDisk_GetDownloadLink(FunctionParameters)
Token = FunctionParameters["YandexDisk_Token"];
Path = FunctionParameters["YandexDisk_PathForLink"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("path", Path);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("yadisk", "GetDownloadLink", Options);
// END
OPI_TestDataRetrieval.Process(Result, "YandexDisk", "GetDownloadLink");
EndProcedure
Procedure YandexDisk_DownloadFile(FunctionParameters)
Token = FunctionParameters["YandexDisk_Token"];
Path = FunctionParameters["YandexDisk_PathForLink"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("path", Path);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("yadisk", "DownloadFile", Options);
// END
OPI_TestDataRetrieval.Process(Result, "YandexDisk", "DownloadFile");
EndProcedure
Procedure YandexDisk_GetFilesList(FunctionParameters)
Token = FunctionParameters["YandexDisk_Token"];
Count = 2;
OffsetFromStart = 1;
FilterByType = "image";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("amount", Count);
Options.Insert("offset", OffsetFromStart);
Options.Insert("type", FilterByType);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("yadisk", "GetFilesList", Options);
// END
OPI_TestDataRetrieval.Process(Result, "YandexDisk", "GetFilesList", , Count, OffsetFromStart);
EndProcedure
Procedure YandexDisk_MoveObject(FunctionParameters)
Token = FunctionParameters["YandexDisk_Token"];
Original = FunctionParameters["YandexDisk_OriginalFilePath"];
Path = "/" + String(New UUID) + ".png";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("from", Original);
Options.Insert("to", Path);
Options.Insert("rewrite", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("yadisk", "MoveObject", Options);
// END
OPI_TestDataRetrieval.Process(Result, "YandexDisk", "MoveObject", , FunctionParameters, Path);
EndProcedure
Procedure YandexDisk_GetPublishedObjectsList(FunctionParameters)
Token = FunctionParameters["YandexDisk_Token"];
Count = 2;
OffsetFromStart = 1;
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("amount", Count);
Options.Insert("offset", OffsetFromStart);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("yadisk", "GetPublishedObjectsList", Options);
// END
OPI_TestDataRetrieval.Process(Result, "YandexDisk", "GetPublishedObjectsList", , Count, OffsetFromStart);
EndProcedure
Procedure YandexDisk_PublishObject(FunctionParameters)
Token = FunctionParameters["YandexDisk_Token"];
Path = FunctionParameters["YandexDisk_OriginalFilePath"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("path", Path);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("yadisk", "PublishObject", Options);
// END
OPI_TestDataRetrieval.Process(Result, "YandexDisk", "PublishObject", , FunctionParameters, Path);
EndProcedure
Procedure YandexDisk_GetDownloadLinkForPublicObject(FunctionParameters)
Token = FunctionParameters["YandexDisk_Token"];
URL = FunctionParameters["YandexDisk_PublicURL"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("url", URL);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("yadisk", "GetDownloadLinkForPublicObject", Options);
// END
OPI_TestDataRetrieval.Process(Result, "YandexDisk", "GetDownloadLinkForPublicObject");
EndProcedure
Procedure YandexDisk_GetPublicObject(FunctionParameters)
Token = FunctionParameters["YandexDisk_Token"];
URL = FunctionParameters["YandexDisk_PublicURL"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("url", URL);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("yadisk", "GetPublicObject", Options);
// END
OPI_TestDataRetrieval.Process(Result, "YandexDisk", "GetPublicObject");
EndProcedure
Procedure YandexDisk_SavePublicObjectToDisk(FunctionParameters)
Token = FunctionParameters["YandexDisk_Token"];
URL = FunctionParameters["YandexDisk_PublicURL"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("url", URL);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("yadisk", "SavePublicObjectToDisk", Options);
// END
OPI_TestDataRetrieval.Process(Result, "YandexDisk", "SavePublicObjectToDisk");
EndProcedure
Procedure YandexDisk_CancelObjectPublication(FunctionParameters)
Token = FunctionParameters["YandexDisk_Token"];
Path = FunctionParameters["YandexDisk_OriginalFilePath"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("path", Path);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("yadisk", "CancelObjectPublication", Options);
// END
OPI_TestDataRetrieval.Process(Result, "YandexDisk", "CancelObjectPublication", , Path);
EndProcedure
Procedure YandexDisk_UploadFileInParts(FunctionParameters)
Path = "/song.mp3";
Token = FunctionParameters["YandexDisk_Token"];
File = FunctionParameters["Audio"]; // URL, Binary or File path
ChunkSize = 1048576; // 1 MB
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("path", Path);
Options.Insert("file", File);
Options.Insert("psize", ChunkSize);
Options.Insert("rewrite", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("yadisk", "UploadFileInParts", Options);
// END
OPI_TestDataRetrieval.Process(Result, "YandexDisk", "UploadFileInParts", , File);
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("path", Path);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("yadisk", "DownloadFile", Options);
OPI_TestDataRetrieval.Process(Result, "YandexDisk", "UploadFileInParts", "Downloading", File);
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("path", Path);
Options.Insert("can", Ложь);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("yadisk", "DeleteObject", Options);
OPI_TestDataRetrieval.Process(Result, "YandexDisk", "UploadFileInParts", "Deletion");
EndProcedure
#EndRegion // YandexDisk
#EndRegion // AtomicTests
#EndRegion // Private
#Region Alternate
Procedure ЯДиск_Авторизация() Export
YDisk_Authorization();
EndProcedure
Procedure ЯДиск_ПолучитьИнформациюОДиске() Export
YDisk_GetDiskInfo();
EndProcedure
Procedure ЯДиск_СоздатьПапку() Export
YDisk_CreateFolder();
EndProcedure
Procedure ЯДиск_ЗагрузитьПоАдресуПолучитьОбъект() Export
YDisk_UploadByUrlAndGetObject();
EndProcedure
Procedure ЯДиск_ЗагрузитьУдалитьФайл() Export
YDisk_UploadDeleteFile();
EndProcedure
Procedure ЯДиск_СоздатьКопиюОбъекта() Export
YDisk_CreateObjectCopy();
EndProcedure
Procedure ЯДиск_ПолучитьСсылкуНаСкачивание() Export
YDisk_GetDownloadLink();
EndProcedure
Procedure ЯДиск_ПолучитьСписокФайлов() Export
YDisk_GetFileList();
EndProcedure
Procedure ЯДиск_ПереместитьОбъект() Export
YDisk_MoveObject();
EndProcedure
Procedure ЯДиск_ДействияПубличныхОбъектов() Export
YDisk_PublicObjectActions();
EndProcedure
Procedure ЯДиск_ПолучитьСписокОпубликованных() Export
YDisk_GetPublishedList();
EndProcedure
#EndRegion
@@ -1,3 +1,5 @@
// OneScript: ./OInt/tests/Modules/OPItc_YandexMetrika.os
// MIT License
// Copyright (c) 2023-2026 Anton Tsitavets
@@ -9,7 +11,7 @@
// 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
// 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
@@ -22,6 +24,8 @@
// https://github.com/Bayselonarrend/OpenIntegrations
// Test suite for YAxUnit
// BSLLS:Typo-off
// BSLLS:LatinAndCyrillicSymbolInWord-off
// BSLLS:IncorrectLineBreak-off
@@ -63,6 +67,395 @@
//@skip-check missing-temporary-file-deletion
//@skip-check module-unused-method
// #Use oint
// #Use asserts
// #Use "internal"
//#Use "../../tools/main"
//#Use "../../tools/http"
//#Use "../../api"
//#Use asserts
//#Use "internal"
// For YAxUnit
Procedure ИсполняемыеСценарии() Export
OPI_TestDataRetrieval.FormYAXTests("YandexMetrika");
EndProcedure
// For Asserts
Function ПолучитьСписокТестов(UnitTesting) Export
Return OPI_TestDataRetrieval.FormAssertsTests("YandexMetrika");
EndFunction
#Region Internal
#Region RunnableTests
#Region YandexMetrika
Procedure YaMetrika_TagsManagement() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Metrika_Token", TestParameters);
YandexMetrika_CreateTag(TestParameters);
YandexMetrika_GetTagsList(TestParameters);
YandexMetrika_UpdateTag(TestParameters);
YandexMetrika_GetTag(TestParameters);
YandexMetrika_DeleteTag(TestParameters);
EndProcedure
Procedure YaMetrika_CountersManagement() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Metrika_Token", TestParameters);
YandexMetrika_GetCounterStructure(TestParameters);
YandexMetrika_CreateCounter(TestParameters);
YandexMetrika_GetCounter(TestParameters);
YandexMetrika_UpdateCounter(TestParameters);
YandexMetrika_DeleteCounter(TestParameters);
YandexMetrika_RestoreCounter(TestParameters);
YandexMetrika_GetCountersList(TestParameters);
YandexMetrika_DeleteCounter(TestParameters);
EndProcedure
Procedure YaMetrika_ActionsManagement() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Metrika_Token", TestParameters);
YandexMetrika_CreateCounter(TestParameters);
YandexMetrika_GetActionsList(TestParameters);
YandexMetrika_DeleteCounter(TestParameters);
EndProcedure
#EndRegion // YandexMetrika
#EndRegion // RunnableTests
#EndRegion // Internal
#Region Private
#Region AtomicTests
#Region YandexMetrika
Procedure YandexMetrika_GetTagsList(FunctionParameters)
Token = FunctionParameters["Metrika_Token"];
Options = New Structure;
Options.Insert("token", Token);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("metrika", "GetTagsList", Options);
// END
OPI_TestDataRetrieval.Process(Result, "YandexMetrika", "GetTagsList");
EndProcedure
Procedure YandexMetrika_CreateTag(FunctionParameters)
Token = FunctionParameters["Metrika_Token"];
Name = "New tag";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("title", Name);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("metrika", "CreateTag", Options);
// END
OPI_TestDataRetrieval.Process(Result, "YandexMetrika", "CreateTag", , FunctionParameters, Name);
EndProcedure
Procedure YandexMetrika_DeleteTag(FunctionParameters)
Token = FunctionParameters["Metrika_Token"];
TagID = FunctionParameters["Metrika_LabelID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("label", TagID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("metrika", "DeleteTag", Options);
// END
OPI_TestDataRetrieval.Process(Result, "YandexMetrika", "DeleteTag");
EndProcedure
Procedure YandexMetrika_UpdateTag(FunctionParameters)
Token = FunctionParameters["Metrika_Token"];
TagID = FunctionParameters["Metrika_LabelID"];
Name = "New tag title";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("label", TagID);
Options.Insert("title", Name);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("metrika", "UpdateTag", Options);
// END
OPI_TestDataRetrieval.Process(Result, "YandexMetrika", "UpdateTag", , Name);
EndProcedure
Procedure YandexMetrika_GetTag(FunctionParameters)
Token = FunctionParameters["Metrika_Token"];
TagID = FunctionParameters["Metrika_LabelID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("label", TagID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("metrika", "GetTag", Options);
// END
OPI_TestDataRetrieval.Process(Result, "YandexMetrika", "GetTag");
EndProcedure
Procedure YandexMetrika_GetCounterStructure(FunctionParameters)
Clear = False;
Options = New Structure;
Options.Insert("empty", Clear);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("metrika", "GetCounterStructure", Options);
// END
OPI_TestDataRetrieval.Process(Result, "YandexMetrika", "GetCounterStructure");
EndProcedure
Procedure YandexMetrika_CreateCounter(FunctionParameters)
Token = FunctionParameters["Metrika_Token"];
CounterStructure = New Structure;
CounterStructure.Insert("autogoals_enabled", True);
CodeSettingsStructure = New Structure;
CodeSettingsStructure.Insert("async" , 0);
CodeSettingsStructure.Insert("clickmap" , 1);
CodeSettingsStructure.Insert("ecommerce" , 1);
CodeSettingsStructure.Insert("in_one_line" , 0);
CodeSettingsStructure.Insert("track_hash" , 1);
CodeSettingsStructure.Insert("visor" , 1);
CodeSettingsStructure.Insert("xml_site" , 0);
CodeSettingsStructure.Insert("ytm" , 0);
CodeSettingsStructure.Insert("alternative_cdn", 1);
InformerStructure = New Structure;
InformerStructure.Insert("color_arrow", 1);
InformerStructure.Insert("color_end" , "EFEFEFFE");
InformerStructure.Insert("color_start", "EEEEEEEE");
InformerStructure.Insert("color_text" , 0);
InformerStructure.Insert("enabled" , 1);
InformerStructure.Insert("indicator" , "uniques");
InformerStructure.Insert("size" , 2);
InformerStructure.Insert("type" , "ext");
CodeSettingsStructure.Insert("informer", InformerStructure);
CounterStructure.Insert("code_options", CodeSettingsStructure);
FlagsStructure = New Structure;
FlagsStructure.Insert("collect_first_party_data" , True);
FlagsStructure.Insert("measurement_enabled" , True);
FlagsStructure.Insert("use_in_benchmarks" , True);
FlagsStructure.Insert("direct_allow_use_goals_without_access", True);
CounterStructure.Insert("counter_flags" , FlagsStructure);
CounterStructure.Insert("favorite" , 1);
CounterStructure.Insert("filter_robots" , 2);
CounterStructure.Insert("gdpr_agreement_accepted", 1);
DomainStructure = New Structure("site", "openintegrations.dev");
CounterStructure.Insert("site2", DomainStructure);
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("fields", CounterStructure);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("metrika", "CreateCounter", Options);
// END
OPI_TestDataRetrieval.Process(Result, "YandexMetrika", "CreateCounter", , FunctionParameters);
EndProcedure
Procedure YandexMetrika_DeleteCounter(FunctionParameters)
Token = FunctionParameters["Metrika_Token"];
CounterID = FunctionParameters["Metrika_CounterID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("counter", CounterID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("metrika", "DeleteCounter", Options);
// END
OPI_TestDataRetrieval.Process(Result, "YandexMetrika", "DeleteCounter");
EndProcedure
Procedure YandexMetrika_UpdateCounter(FunctionParameters)
Token = FunctionParameters["Metrika_Token"];
CounterID = FunctionParameters["Metrika_CounterID"];
CounterStructure = New Structure;
CounterStructure.Insert("autogoals_enabled", True);
FlagsStructure = New Structure;
FlagsStructure.Insert("collect_first_party_data" , False);
FlagsStructure.Insert("measurement_enabled" , False);
FlagsStructure.Insert("use_in_benchmarks" , False);
FlagsStructure.Insert("direct_allow_use_goals_without_access", False);
CounterStructure.Insert("counter_flags", FlagsStructure);
CounterStructure.Insert("favorite" , 0);
CounterStructure.Insert("filter_robots", 1);
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("counter", CounterID);
Options.Insert("fields", CounterStructure);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("metrika", "UpdateCounter", Options);
// END
OPI_TestDataRetrieval.Process(Result, "YandexMetrika", "UpdateCounter");
EndProcedure
Procedure YandexMetrika_GetCounter(FunctionParameters)
Token = FunctionParameters["Metrika_Token"];
CounterID = FunctionParameters["Metrika_CounterID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("counter", CounterID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("metrika", "GetCounter", Options);
// END
OPI_TestDataRetrieval.Process(Result, "YandexMetrika", "GetCounter");
EndProcedure
Procedure YandexMetrika_RestoreCounter(FunctionParameters)
Token = FunctionParameters["Metrika_Token"];
CounterID = FunctionParameters["Metrika_CounterID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("counter", CounterID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("metrika", "RestoreCounter", Options);
// END
OPI_TestDataRetrieval.Process(Result, "YandexMetrika", "RestoreCounter");
EndProcedure
Procedure YandexMetrika_GetCountersList(FunctionParameters)
Token = FunctionParameters["Metrika_Token"];
CounterID = FunctionParameters["Metrika_CounterID"];
Options = New Structure;
Options.Insert("token", Token);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("metrika", "GetCountersList", Options);
OPI_TestDataRetrieval.Process(Result, "YandexMetrika", "GetCountersList"); // SKIP
// filter by IDs list
Filter = New Structure;
CountersArray = New Array;
CountersArray.Add(CounterID);
Filter.Insert("counter_ids", CountersArray);
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("filter", Filter);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("metrika", "GetCountersList", Options);
// END
OPI_TestDataRetrieval.Process(Result, "YandexMetrika", "GetCountersList", "Filter");
EndProcedure
Procedure YandexMetrika_GetActionsList(FunctionParameters)
Token = FunctionParameters["Metrika_Token"];
CounterID = FunctionParameters["Metrika_CounterID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("counter", CounterID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("metrika", "GetActionsList", Options);
// END
OPI_TestDataRetrieval.Process(Result, "YandexMetrika", "GetActionsList");
EndProcedure
#EndRegion // YandexMetrika
#EndRegion // AtomicTests
#EndRegion // Private
#Region Alternate
Procedure ЯМетрика_УправлениеМетками() Export
YaMetrika_TagsManagement();
EndProcedure
Procedure ЯМетрика_УправлениеСчетчиками() Export
YaMetrika_CountersManagement();
EndProcedure
Procedure ЯМетрика_УправлениеОперациями() Export
YaMetrika_ActionsManagement();
EndProcedure
#EndRegion
-526
View File
@@ -1,526 +0,0 @@
// OneScript: ./OInt/tests/Modules/OPI_Tests.os
// MIT License
// Copyright (c) 2023-2026 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
// Test suite for YAxUnit
// BSLLS:Typo-off
// BSLLS:LatinAndCyrillicSymbolInWord-off
// BSLLS:IncorrectLineBreak-off
// BSLLS:UsingServiceTag-off
// BSLLS:UnusedParameters-off
// BSLLS:DuplicateStringLiteral-off
// BSLLS:UsingHardcodePath-off
// BSLLS:UnusedLocalVariable-off
// BSLLS:DeprecatedMessage-off
// BSLLS:LineLength-off
// BSLLS:MagicNumber-off
// BSLLS:CommentedCode-off
// BSLLS:AssignAliasFieldsInQuery-off
// BSLLS:UsingHardcodeNetworkAddress-off
// BSLLS:UnreachableCode-off
// BSLLS:UnusedLocalMethod-off
// BSLLS:NestedFunctionInParameters-off
// BSLLS:MissingTemporaryFileDeletion-off
// BSLLS:UsingSynchronousCalls-off
// BSLLS:MagicNumber-off
// BSLLS:MagicDate-off
// BSLLS:MissingParameterDescription-off
// BSLLS:NumberOfOptionalParams-off
// BSLLS:MethodSize-off
// BSLLS:NestedConstructorsInStructureDeclaration-off
// BSLLS:NumberOfValuesInStructureConstructor-off
// BSLLS:UsingHardcodeSecretInformation-off
// BSLLS:SpaceAtStartComment-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
//@skip-check module-unused-local-variable
//@skip-check bsl-legacy-check-string-literal
//@skip-check bsl-legacy-check-method-for-statements-after-return
//@skip-check missing-temporary-file-deletion
//@skip-check module-unused-method
#Use oint
#Use asserts
#Use "internal"
#Region Internal
// For YAxUnit
Procedure ИсполняемыеСценарии() Export
OPI_TestDataRetrieval.FormYAXTests("Airtable");
EndProcedure
// For Asserts
Function ПолучитьСписокТестов(UnitTesting) Export
Return OPI_TestDataRetrieval.FormAssertsTests("Airtable");
EndFunction
#Region RunnableTests
#Region Airtable
Procedure AT_CreateDatabase() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Airtable_Token" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Airtable_Workspace", TestParameters);
Airtable_CreateDatabase(TestParameters);
Airtable_GetDatabaseTables(TestParameters);
Airtable_GetListOfBases(TestParameters);
EndProcedure
Procedure AT_CreateTable() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Airtable_Token", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Airtable_Base" , TestParameters);
Airtable_GetNumberField(TestParameters);
Airtable_GetStringField(TestParameters);
Airtable_GetAttachmentField(TestParameters);
Airtable_GetCheckboxField(TestParameters);
Airtable_GetDateField(TestParameters);
Airtable_GetPhoneField(TestParameters);
Airtable_GetEmailField(TestParameters);
Airtable_GetLinkField(TestParameters);
Airtable_CreateTable(TestParameters);
Airtable_ModifyTable(TestParameters);
EndProcedure
Procedure AT_CreateField() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Airtable_Token", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Airtable_Base" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Airtable_Table", TestParameters);
Airtable_CreateField(TestParameters);
Airtable_ModifyField(TestParameters);
EndProcedure
Procedure AT_CreateDeleteRecords() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Airtable_Token", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Airtable_Base" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Airtable_Table", TestParameters);
Airtable_CreatePosts(TestParameters);
Airtable_GetRecord(TestParameters);
Airtable_CreateComment(TestParameters);
Airtable_EditComment(TestParameters);
Airtable_GetComments(TestParameters);
Airtable_DeleteComment(TestParameters);
Airtable_GetListOfRecords(TestParameters);
Airtable_DeleteRecords(TestParameters);
EndProcedure
#EndRegion // Airtable
#EndRegion // RunnableTests
#EndRegion // Internal
#Region Private
#Region AtomicTests
#Region Airtable
Procedure Airtable_CreateDatabase(FunctionParameters)
Token = FunctionParameters["Airtable_Token"];
Region = FunctionParameters["Airtable_Workspace"];
Name = "TestDatabase";
FieldArray = New Array;
FieldArray.Add(OPI_Airtable.GetNumberField("Number"));
FieldArray.Add(OPI_Airtable.GetStringField("String"));
TableName = "TestTable";
TableMapping = New Map;
TableMapping.Insert(TableName, FieldArray);
Result = OPI_Airtable.CreateDatabase(Token, Region, Name, TableMapping);
// END
OPI_TestDataRetrieval.Process(Result, "Airtable", "CreateDatabase", , FunctionParameters, TableName);
EndProcedure
Procedure Airtable_GetDatabaseTables(FunctionParameters)
Token = FunctionParameters["Airtable_Token"];
Base = FunctionParameters["Airtable_Base"];
Result = OPI_Airtable.GetDatabaseTables(Token, Base);
// END
OPI_TestDataRetrieval.Process(Result, "Airtable", "GetDatabaseTables");
EndProcedure
Procedure Airtable_GetListOfBases(FunctionParameters)
Token = FunctionParameters["Airtable_Token"];
Result = OPI_Airtable.GetListOfBases(Token);
// END
OPI_TestDataRetrieval.Process(Result, "Airtable", "GetListOfBases");
EndProcedure
Procedure Airtable_GetNumberField(FunctionParameters)
Result = OPI_Airtable.GetNumberField("Number");
// END
OPI_TestDataRetrieval.Process(Result, "Airtable", "GetNumberField");
EndProcedure
Procedure Airtable_GetStringField(FunctionParameters)
Result = OPI_Airtable.GetStringField("String");
// END
OPI_TestDataRetrieval.Process(Result, "Airtable", "GetStringField");
EndProcedure
Procedure Airtable_GetAttachmentField(FunctionParameters)
Result = OPI_Airtable.GetAttachmentField("Attachment");
// END
OPI_TestDataRetrieval.Process(Result, "Airtable", "GetAttachmentField");
EndProcedure
Procedure Airtable_GetCheckboxField(FunctionParameters)
Result = OPI_Airtable.GetCheckboxField("Checkbox");
// END
OPI_TestDataRetrieval.Process(Result, "Airtable", "GetCheckboxField");
EndProcedure
Procedure Airtable_GetDateField(FunctionParameters)
Result = OPI_Airtable.GetDateField("Date");
// END
OPI_TestDataRetrieval.Process(Result, "Airtable", "GetDateField");
EndProcedure
Procedure Airtable_GetPhoneField(FunctionParameters)
Result = OPI_Airtable.GetPhoneField("Phone");
// END
OPI_TestDataRetrieval.Process(Result, "Airtable", "GetPhoneField");
EndProcedure
Procedure Airtable_GetEmailField(FunctionParameters)
Result = OPI_Airtable.GetEmailField("Email");
// END
OPI_TestDataRetrieval.Process(Result, "Airtable", "GetEmailField");
EndProcedure
Procedure Airtable_GetLinkField(FunctionParameters)
Result = OPI_Airtable.GetLinkField("Link");
// END
OPI_TestDataRetrieval.Process(Result, "Airtable", "GetLinkField");
EndProcedure
Procedure Airtable_CreateTable(FunctionParameters)
Token = FunctionParameters["Airtable_Token"];
Base = FunctionParameters["Airtable_Base"];
FieldArray = New Array;
FieldArray.Add(OPI_Airtable.GetNumberField("Number"));
FieldArray.Add(OPI_Airtable.GetStringField("String"));
FieldArray.Add(OPI_Airtable.GetAttachmentField("Attachment"));
FieldArray.Add(OPI_Airtable.GetCheckboxField("Checkbox"));
FieldArray.Add(OPI_Airtable.GetDateField("Date"));
FieldArray.Add(OPI_Airtable.GetPhoneField("Phone"));
FieldArray.Add(OPI_Airtable.GetEmailField("Email"));
FieldArray.Add(OPI_Airtable.GetLinkField("Link"));
Name = "TestTable2";
Description = "NewTable";
Result = OPI_Airtable.CreateTable(Token, Base, Name, FieldArray, Description);
// END
OPI_TestDataRetrieval.Process(Result, "Airtable", "CreateTable", , FunctionParameters, Name, Description);
EndProcedure
Procedure Airtable_ModifyTable(FunctionParameters)
Token = FunctionParameters["Airtable_Token"];
Base = FunctionParameters["Airtable_Base"];
Table = FunctionParameters["Airtable_Table"];
Name = "Test table 2 (change.)";
Description = "New table (change.)";
Result = OPI_Airtable.ModifyTable(Token, Base, Table, Name, Description);
// END
OPI_TestDataRetrieval.Process(Result, "Airtable", "ModifyTable", , Name, Description);
EndProcedure
Procedure Airtable_CreateField(FunctionParameters)
Token = FunctionParameters["Airtable_Token"];
Base = FunctionParameters["Airtable_Base"];
Table = FunctionParameters["Airtable_Table"];
Name = String(New UUID);
Field = OPI_Airtable.GetNumberField(Name);
Result = OPI_Airtable.CreateField(Token, Base, Table, Field);
// END
OPI_TestDataRetrieval.Process(Result, "Airtable", "CreateField", , FunctionParameters, Name);
EndProcedure
Procedure Airtable_ModifyField(FunctionParameters)
Token = FunctionParameters["Airtable_Token"];
Base = FunctionParameters["Airtable_Base"];
Table = FunctionParameters["Airtable_Table"];
Field = FunctionParameters["Airtable_Field"];
Name = String(New UUID) + "(change.)";
Description = "New description";
Result = OPI_Airtable.ModifyField(Token, Base, Table, Field, Name, Description);
// END
OPI_TestDataRetrieval.Process(Result, "Airtable", "ModifyField", , Name, Description);
EndProcedure
Procedure Airtable_CreatePosts(FunctionParameters)
Token = FunctionParameters["Airtable_Token"];
Base = FunctionParameters["Airtable_Base"];
Table = FunctionParameters["Airtable_Table"];
Number = 10;
String = "Hello";
RowDescription1 = New Structure("Number,String", Number, String);
RowDescription2 = New Structure("Number,String", Number, String);
ArrayOfDescriptions = New Array;
ArrayOfDescriptions.Add(RowDescription1);
ArrayOfDescriptions.Add(RowDescription2);
Result = OPI_Airtable.CreatePosts(Token, Base, Table, ArrayOfDescriptions);
// END
OPI_TestDataRetrieval.Process(Result, "Airtable", "CreatePosts", , FunctionParameters);
ArrayOfDeletions = New Array;
For Each Record In Result["records"] Do
CurrentRecord = Record["id"];
ArrayOfDeletions.Add(CurrentRecord);
EndDo;
OPI_Airtable.DeleteRecords(Token, Base, Table, ArrayOfDeletions);
// Single
Result = OPI_Airtable.CreatePosts(Token, Base, Table, RowDescription1);
OPI_TestDataRetrieval.Process(Result, "Airtable", "CreatePosts", "Single", FunctionParameters, Number, String);
EndProcedure
Procedure Airtable_GetRecord(FunctionParameters)
Token = FunctionParameters["Airtable_Token"];
Base = FunctionParameters["Airtable_Base"];
Table = FunctionParameters["Airtable_Table"];
Record = FunctionParameters["Airtable_Record"];
Result = OPI_Airtable.GetRecord(Token, Base, Table, Record);
// END
OPI_TestDataRetrieval.Process(Result, "Airtable", "GetRecord", , Record);
EndProcedure
Procedure Airtable_CreateComment(FunctionParameters)
Token = FunctionParameters["Airtable_Token"];
Base = FunctionParameters["Airtable_Base"];
Table = FunctionParameters["Airtable_Table"];
Record = FunctionParameters["Airtable_Record"];
Text = "TestComment";
Result = OPI_Airtable.CreateComment(Token, Base, Table, Record, Text);
// END
OPI_TestDataRetrieval.Process(Result, "Airtable", "CreateComment", , FunctionParameters, Text);
EndProcedure
Procedure Airtable_EditComment(FunctionParameters)
Token = FunctionParameters["Airtable_Token"];
Base = FunctionParameters["Airtable_Base"];
Table = FunctionParameters["Airtable_Table"];
Record = FunctionParameters["Airtable_Record"];
Comment = FunctionParameters["Airtable_Comment"];
Text = "Test comment (change.)";
Result = OPI_Airtable.EditComment(Token, Base, Table, Record, Comment, Text);
// END
OPI_TestDataRetrieval.Process(Result, "Airtable", "EditComment", , Text);
EndProcedure
Procedure Airtable_GetComments(FunctionParameters)
Token = FunctionParameters["Airtable_Token"];
Base = FunctionParameters["Airtable_Base"];
Table = FunctionParameters["Airtable_Table"];
Record = FunctionParameters["Airtable_Record"];
Result = OPI_Airtable.GetComments(Token, Base, Table, Record);
// END
OPI_TestDataRetrieval.Process(Result, "Airtable", "GetComments");
EndProcedure
Procedure Airtable_DeleteComment(FunctionParameters)
Token = FunctionParameters["Airtable_Token"];
Base = FunctionParameters["Airtable_Base"];
Table = FunctionParameters["Airtable_Table"];
Record = FunctionParameters["Airtable_Record"];
Comment = FunctionParameters["Airtable_Comment"];
Result = OPI_Airtable.DeleteComment(Token, Base, Table, Record, Comment);
// END
OPI_TestDataRetrieval.Process(Result, "Airtable", "DeleteComment", , Comment);
EndProcedure
Procedure Airtable_GetListOfRecords(FunctionParameters)
Token = FunctionParameters["Airtable_Token"];
Base = FunctionParameters["Airtable_Base"];
Table = FunctionParameters["Airtable_Table"];
Result = OPI_Airtable.GetListOfRecords(Token, Base, Table);
// END
OPI_TestDataRetrieval.Process(Result, "Airtable", "GetListOfRecords");
EndProcedure
Procedure Airtable_DeleteRecords(FunctionParameters)
Token = FunctionParameters["Airtable_Token"];
Base = FunctionParameters["Airtable_Base"];
Table = FunctionParameters["Airtable_Table"];
Record = FunctionParameters["Airtable_Record"];
Result = OPI_Airtable.DeleteRecords(Token, Base, Table, Record);
// END
OPI_TestDataRetrieval.Process(Result, "Airtable", "DeleteRecords");
EndProcedure
#EndRegion // Airtable
#EndRegion // AtomicTests
#EndRegion // Private
File diff suppressed because it is too large Load Diff
+3 -3
View File
@@ -1,4 +1,4 @@
// OneScript: ./OInt/tests/Modules/OPIt_Airtable.os
// OneScript: ./OInt/tests/Modules/OPItc_Airtable.os
// MIT License
@@ -68,8 +68,8 @@
//@skip-check module-unused-method
#Use "../../tools/main"
#Use "../../tools/http"
#Use "../../api"
#Use "../../tools/http"
#Use "../../api"
#Use asserts
#Use "internal"
File diff suppressed because it is too large Load Diff
+919
View File
@@ -0,0 +1,919 @@
// OneScript: ./OInt/tests/Modules/OPItc_CDEK.os
// MIT License
// Copyright (c) 2023-2026 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
// Test suite for YAxUnit
// BSLLS:Typo-off
// BSLLS:LatinAndCyrillicSymbolInWord-off
// BSLLS:IncorrectLineBreak-off
// BSLLS:UsingServiceTag-off
// BSLLS:UnusedParameters-off
// BSLLS:DuplicateStringLiteral-off
// BSLLS:UsingHardcodePath-off
// BSLLS:UnusedLocalVariable-off
// BSLLS:DeprecatedMessage-off
// BSLLS:LineLength-off
// BSLLS:MagicNumber-off
// BSLLS:CommentedCode-off
// BSLLS:AssignAliasFieldsInQuery-off
// BSLLS:UsingHardcodeNetworkAddress-off
// BSLLS:UnreachableCode-off
// BSLLS:UnusedLocalMethod-off
// BSLLS:NestedFunctionInParameters-off
// BSLLS:MissingTemporaryFileDeletion-off
// BSLLS:UsingSynchronousCalls-off
// BSLLS:MagicNumber-off
// BSLLS:MagicDate-off
// BSLLS:MissingParameterDescription-off
// BSLLS:NumberOfOptionalParams-off
// BSLLS:MethodSize-off
// BSLLS:NestedConstructorsInStructureDeclaration-off
// BSLLS:NumberOfValuesInStructureConstructor-off
// BSLLS:UsingHardcodeSecretInformation-off
// BSLLS:SpaceAtStartComment-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
//@skip-check module-unused-local-variable
//@skip-check bsl-legacy-check-string-literal
//@skip-check bsl-legacy-check-method-for-statements-after-return
//@skip-check missing-temporary-file-deletion
//@skip-check module-unused-method
#Use "../../tools/main"
#Use "../../tools/http"
#Use "../../api"
#Use asserts
#Use "internal"
// For YAxUnit
Procedure ИсполняемыеСценарии() Export
OPI_TestDataRetrieval.FormYAXTests("CDEK");
EndProcedure
// For Asserts
Function ПолучитьСписокТестов(UnitTesting) Export
Return OPI_TestDataRetrieval.FormAssertsTests("CDEK");
EndFunction
#Region Internal
#Region RunnableTests
#Region CDEK
Procedure CdekAPI_CommonMethods() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("CDEK_Account" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("CDEK_Password", TestParameters);
CDEK_GetToken(TestParameters);
CDEK_GetCashboxChecksByDate(TestParameters);
CDEK_GetDeliveryCashRegistry(TestParameters);
CDEK_GetDeliveryCashTransfers(TestParameters);
CDEK_GetOfficeFilterDescription(TestParameters);
CDEK_GetOfficeList(TestParameters);
CDEK_GetRegionsList(TestParameters);
EndProcedure
Procedure CDEKAPI_OrdersManagement() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("CDEK_Token", TestParameters);
CDEK_GetOrderDescription(TestParameters);
CDEK_CreateOrder(TestParameters);
OPI_Tools.Pause(25);
CDEK_GetOrder(TestParameters);
CDEK_GetOrderByNumber(TestParameters);
CDEK_CreateReceipt(TestParameters);
CDEK_CreateBarcode(TestParameters);
CDEK_CreatePrealert(TestParameters);
OPI_Tools.Pause(25);
CDEK_GetReceipt(TestParameters);
CDEK_GetBarcode(TestParameters);
CDEK_GetPrealert(TestParameters);
CDEK_GetPassportDataStatus(TestParameters);
CDEK_GetCashboxCheck(TestParameters);
CDEK_UpdateOrder(TestParameters);
CDEK_CreateCustomerRefund(TestParameters);
CDEK_CreateRefusal(TestParameters);
CDEK_DeleteOrder(TestParameters);
EndProcedure
Procedure CdekAPI_CourierInvitationsManagement() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("CDEK_Token", TestParameters);
CDEK_CreateOrder(TestParameters);
OPI_Tools.Pause(25);
CDEK_GetCourierInvitationsDescription(TestParameters);
CDEK_CreateCourierInvitation(TestParameters);
CDEK_GetCourierInvitation(TestParameters);
CDEK_DeleteCourierInvitation(TestParameters);
CDEK_GetAppointmentDescription(TestParameters);
CDEK_GetAvailableDeliveryIntervals(TestParameters);
CDEK_RegisterDeliveryAppointment(TestParameters);
OPI_Tools.Pause(25);
CDEK_GetDeliveryAppointment(TestParameters);
CDEK_DeleteOrder(TestParameters);
EndProcedure
#EndRegion // CDEK
#EndRegion // RunnableTests
#EndRegion // Internal
#Region Private
#Region AtomicTests
#Region CDEK
Procedure CDEK_GetToken(FunctionParameters)
Account = FunctionParameters["CDEK_Account"];
Password = FunctionParameters["CDEK_Password"];
Options = New Structure;
Options.Insert("account", Account);
Options.Insert("pass", Password);
Options.Insert("testapi", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("cdek", "GetToken", Options);
// END
OPI_TestDataRetrieval.Process(Result, "CDEK", "GetToken", , FunctionParameters);
EndProcedure
Procedure CDEK_GetOrderDescription(FunctionParameters)
Options = New Structure;
Result = OPI_TestDataRetrieval.ExecuteTestCLI("cdek", "GetOrderDescription", Options);
// END
OPI_TestDataRetrieval.Process(Result, "CDEK", "GetOrderDescription");
Options = New Structure;
Options.Insert("empty", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("cdek", "GetOrderDescription", Options);
OPI_TestDataRetrieval.Process(Result, "CDEK", "GetOrderDescription", "Clear");
EndProcedure
Procedure CDEK_CreateOrder(FunctionParameters)
Token = FunctionParameters["CDEK_Token"];
OrderDescription = New Structure;
SendLocation = New Structure;
SendLocation.Insert("code" , "44");
SendLocation.Insert("city" , "Moscow");
SendLocation.Insert("address", "Ave. Leningradsky, 4");
DestLocation = New Structure;
DestLocation.Insert("code" , "270");
DestLocation.Insert("city" , "Novosibirsk");
DestLocation.Insert("address", "st. Bluchera, 32");
Recipient = New Structure;
Phones = New Array;
Phones.Add(New Structure("number", "+79134637228"));
Recipient.Insert("phones", Phones);
Recipient.Insert("name" , "Ivaniv Ivan");
Sender = New Structure("name", "Petrov Petr");
Services = New Array;
Service = New Structure;
Service.Insert("code" , "SECURE_PACKAGE_A2");
Service.Insert("parameter", 10);
Services.Add(Service);
Packages = New Array;
Package = New Structure;
Items = New Array;
Item = New Structure;
Payment = New Structure;
Payment.Insert("value", 3000);
Item.Insert("payment" , Payment);
Item.Insert("ware_key", "00055");
Item.Insert("name" , "Product");
Item.Insert("cost" , 300);
Item.Insert("amount" , 2);
Item.Insert("weight" , 700);
Item.Insert("url" , "www.item.ru");
Items.Add(Item);
Package.Insert("items" , Items);
Package.Insert("number" , "bar-001");
Package.Insert("comment", "Packaging");
Package.Insert("height" , 10);
Package.Insert("length" , 10);
Package.Insert("weight" , "4000");
Package.Insert("width" , 10);
Packages.Add(Package);
OrderDescription.Insert("from_location", SendLocation);
OrderDescription.Insert("to_location" , DestLocation);
OrderDescription.Insert("packages" , Packages);
OrderDescription.Insert("recipient" , Recipient);
OrderDescription.Insert("sender" , Sender);
OrderDescription.Insert("services" , Services);
OrderDescription.Insert("number" , String(New UUID));
OrderDescription.Insert("comment" , "New order");
OrderDescription.Insert("tariff_code", 139);
OrderDescription.Insert("delivery_recipient_cost" , New Structure("value" , 50));
OrderDescription.Insert("delivery_recipient_cost_adv", New Structure("sum,threshold", 3000, 200));
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("order", OrderDescription);
Options.Insert("ostore", Истина);
Options.Insert("testapi", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("cdek", "CreateOrder", Options);
// END
OPI_TestDataRetrieval.Process(Result, "CDEK", "CreateOrder", , FunctionParameters);
EndProcedure
Procedure CDEK_GetOrder(FunctionParameters)
Token = FunctionParameters["CDEK_Token"];
UUID = FunctionParameters["CDEK_OrderUUID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("uuid", UUID);
Options.Insert("testapi", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("cdek", "GetOrder", Options);
// END
OPI_TestDataRetrieval.Process(Result, "CDEK", "GetOrder", , FunctionParameters);
EndProcedure
Procedure CDEK_GetOrderByNumber(FunctionParameters)
Token = FunctionParameters["CDEK_Token"];
OrderNumber = FunctionParameters["CDEK_OrderIMN"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("number", OrderNumber);
Options.Insert("internal", Истина);
Options.Insert("testapi", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("cdek", "GetOrderByNumber", Options);
// END
OPI_TestDataRetrieval.Process(Result, "CDEK", "GetOrderByNumber");
EndProcedure
Procedure CDEK_UpdateOrder(FunctionParameters)
Token = FunctionParameters["CDEK_Token"];
UUID = FunctionParameters["CDEK_OrderUUID"];
OrderDescription = New Structure("comment", "NewComment");
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("uuid", UUID);
Options.Insert("order", OrderDescription);
Options.Insert("testapi", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("cdek", "UpdateOrder", Options);
// END
OPI_TestDataRetrieval.Process(Result, "CDEK", "UpdateOrder");
EndProcedure
Procedure CDEK_DeleteOrder(FunctionParameters)
Token = FunctionParameters["CDEK_Token"];
UUID = FunctionParameters["CDEK_OrderUUID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("uuid", UUID);
Options.Insert("testapi", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("cdek", "DeleteOrder", Options);
// END
OPI_TestDataRetrieval.Process(Result, "CDEK", "DeleteOrder");
EndProcedure
Procedure CDEK_CreateCustomerRefund(FunctionParameters)
Token = FunctionParameters["CDEK_Token"];
UUID = FunctionParameters["CDEK_OrderUUID"];
Tariff = 139;
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("uuid", UUID);
Options.Insert("tariff", Tariff);
Options.Insert("testapi", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("cdek", "CreateCustomerRefund", Options);
// END
OPI_TestDataRetrieval.Process(Result, "CDEK", "CreateCustomerRefund");
EndProcedure
Procedure CDEK_CreateRefusal(FunctionParameters)
Token = FunctionParameters["CDEK_Token"];
UUID = FunctionParameters["CDEK_OrderUUID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("uuid", UUID);
Options.Insert("testapi", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("cdek", "CreateRefusal", Options);
// END
OPI_TestDataRetrieval.Process(Result, "CDEK", "CreateRefusal");
EndProcedure
Procedure CDEK_GetCourierInvitationsDescription(FunctionParameters)
Options = New Structure;
Result = OPI_TestDataRetrieval.ExecuteTestCLI("cdek", "GetCourierInvitationsDescription", Options);
// END
OPI_TestDataRetrieval.Process(Result, "CDEK", "GetCourierInvitationsDescription");
Options = New Structure;
Options.Insert("empty", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("cdek", "GetCourierInvitationsDescription", Options);
OPI_TestDataRetrieval.Process(Result, "CDEK", "GetCourierInvitationsDescription", "Clear");
EndProcedure
Procedure CDEK_CreateCourierInvitation(FunctionParameters)
Token = FunctionParameters["CDEK_Token"];
CurrentDate = OPI_Tools.GetCurrentDate();
InvitationDescription = New Structure;
InvitationDescription.Insert("intake_date" , Format(CurrentDate + 60 * 60 * 24, "DF=yyyy-MM-dd"));
InvitationDescription.Insert("intake_time_from", "10:00");
InvitationDescription.Insert("intake_time_to" , "17:00");
InvitationDescription.Insert("name" , "Consolidated cargo");
InvitationDescription.Insert("weight" , 1000);
InvitationDescription.Insert("length" , 10);
InvitationDescription.Insert("width" , 10);
InvitationDescription.Insert("height" , 10);
InvitationDescription.Insert("comment" , "Comment to courier");
InvitationDescription.Insert("need_call" , False);
Sender = New Structure;
Sender.Insert("company", "Company");
Sender.Insert("name" , "Ivaniv Ivan");
Phones = New Array;
Phone = New Structure("number", "+79589441654");
Phones.Add(Phone);
Sender.Insert("phones", Phones);
InvitationDescription.Insert("sender", Sender);
ShippingPoint = New Structure;
ShippingPoint.Insert("code" , "44");
ShippingPoint.Insert("fias_guid" , "0c5b2444-70a0-4932-980c-b4dc0d3f02b5");
ShippingPoint.Insert("postal_code" , "109004");
ShippingPoint.Insert("longitude" , 37.6204);
ShippingPoint.Insert("latitude" , 55.754);
ShippingPoint.Insert("country_code", "RU");
ShippingPoint.Insert("region" , "Moscow");
ShippingPoint.Insert("sub_region" , "Moscow");
ShippingPoint.Insert("city" , "Moscow");
ShippingPoint.Insert("kladr_code" , "7700000000000");
ShippingPoint.Insert("address" , "st. Bluchera, 32");
InvitationDescription.Insert("from_location", ShippingPoint);
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("intake", InvitationDescription);
Options.Insert("testapi", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("cdek", "CreateCourierInvitation", Options);
// END
OPI_TestDataRetrieval.Process(Result, "CDEK", "CreateCourierInvitation", , FunctionParameters);
EndProcedure
Procedure CDEK_GetCourierInvitation(FunctionParameters)
Token = FunctionParameters["CDEK_Token"];
UUID = FunctionParameters["CDEK_IntakeUUID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("uuid", UUID);
Options.Insert("testapi", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("cdek", "GetCourierInvitation", Options);
// END
OPI_TestDataRetrieval.Process(Result, "CDEK", "GetCourierInvitation");
EndProcedure
Procedure CDEK_DeleteCourierInvitation(FunctionParameters)
Token = FunctionParameters["CDEK_Token"];
UUID = FunctionParameters["CDEK_IntakeUUID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("uuid", UUID);
Options.Insert("testapi", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("cdek", "DeleteCourierInvitation", Options);
// END
OPI_TestDataRetrieval.Process(Result, "CDEK", "DeleteCourierInvitation");
EndProcedure
Procedure CDEK_CreateReceipt(FunctionParameters)
Token = FunctionParameters["CDEK_Token"];
UUID = FunctionParameters["CDEK_OrderUUID"];
Type = "tpl_russia";
Copies = 1;
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("uuids", UUID);
Options.Insert("type", Type);
Options.Insert("count", Copies);
Options.Insert("testapi", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("cdek", "CreateReceipt", Options);
// END
OPI_TestDataRetrieval.Process(Result, "CDEK", "CreateReceipt", , FunctionParameters);
EndProcedure
Procedure CDEK_GetReceipt(FunctionParameters)
Token = FunctionParameters["CDEK_Token"];
UUID = FunctionParameters["CDEK_PrintUUID"];
Result = OPI_CDEK.GetReceipt(Token, UUID, , True); // Server response with a URL
// END
OPI_TestDataRetrieval.Process(Result, "CDEK", "GetReceipt");
EndProcedure
Procedure CDEK_CreateBarcode(FunctionParameters)
Token = FunctionParameters["CDEK_Token"];
UUID = FunctionParameters["CDEK_OrderUUID"];
Format = "A5";
Copies = 1;
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("uuids", UUID);
Options.Insert("count", Copies);
Options.Insert("format", Format);
Options.Insert("testapi", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("cdek", "CreateBarcode", Options);
// END
OPI_TestDataRetrieval.Process(Result, "CDEK", "CreateBarcode", , FunctionParameters);
EndProcedure
Procedure CDEK_GetBarcode(FunctionParameters)
Token = FunctionParameters["CDEK_Token"];
UUID = FunctionParameters["CDEK_BarcodeUUID"];
Result = OPI_CDEK.GetBarcode(Token, UUID, , True); // Server response with a URL
// END
OPI_TestDataRetrieval.Process(Result, "CDEK", "GetBarcode");
EndProcedure
Procedure CDEK_GetAvailableDeliveryIntervals(FunctionParameters)
Token = FunctionParameters["CDEK_Token"];
UUID = FunctionParameters["CDEK_OrderUUID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("uuid", UUID);
Options.Insert("testapi", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("cdek", "GetAvailableDeliveryIntervals", Options);
// END
OPI_TestDataRetrieval.Process(Result, "CDEK", "GetAvailableDeliveryIntervals");
EndProcedure
Procedure CDEK_GetAppointmentDescription(FunctionParameters)
Options = New Structure;
Result = OPI_TestDataRetrieval.ExecuteTestCLI("cdek", "GetAppointmentDescription", Options);
// END
OPI_TestDataRetrieval.Process(Result, "CDEK", "GetAppointmentDescription");
Options = New Structure;
Options.Insert("empty", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("cdek", "GetAppointmentDescription", Options);
OPI_TestDataRetrieval.Process(Result, "CDEK", "GetAppointmentDescription", "Clear");
EndProcedure
Procedure CDEK_RegisterDeliveryAppointment(FunctionParameters)
Token = FunctionParameters["CDEK_Token"];
OrderUUID = FunctionParameters["CDEK_OrderUUID"];
Day = 60 * 60 * 24;
CurrentDate = BegOfDay(OPI_Tools.GetCurrentDate());
DeliveryDate = CurrentDate + Day * 14;
While DayOfWeek(DeliveryDate) > 5 Do
DeliveryDate = DeliveryDate + Day;
EndDo;
Appointment = New Structure;
Appointment.Insert("cdek_number", "1106207236");
Appointment.Insert("order_uuid" , OrderUUID);
Appointment.Insert("date" , Format(DeliveryDate, "DF=yyyy-MM-dd"));
Appointment.Insert("time_from" , "10:00");
Appointment.Insert("time_to" , "17:00");
Appointment.Insert("comment" , "Group office");
DeliveryLocation = New Structure;
DeliveryLocation.Insert("code" , "270");
DeliveryLocation.Insert("fias_guid" , "0c5b2444-70a0-4932-980c-b4dc0d3f02b5");
DeliveryLocation.Insert("postal_code" , "109004");
DeliveryLocation.Insert("longitude" , 37.6204);
DeliveryLocation.Insert("latitude" , 55.754);
DeliveryLocation.Insert("country_code", "RU");
DeliveryLocation.Insert("region" , "Novosibirsk");
DeliveryLocation.Insert("sub_region" , "Novosibirsk");
DeliveryLocation.Insert("city" , "Novosibirsk");
DeliveryLocation.Insert("kladr_code" , "7700000000000");
DeliveryLocation.Insert("address" , "st. Bluchera, 33");
Appointment.Insert("to_location", DeliveryLocation);
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("appt", Appointment);
Options.Insert("testapi", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("cdek", "RegisterDeliveryAppointment", Options);
// END
OPI_TestDataRetrieval.Process(Result, "CDEK", "RegisterDeliveryAppointment", , FunctionParameters);
EndProcedure
Procedure CDEK_GetDeliveryAppointment(FunctionParameters)
Token = FunctionParameters["CDEK_Token"];
UUID = FunctionParameters["CDEK_ApptUUID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("uuid", UUID);
Options.Insert("testapi", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("cdek", "GetDeliveryAppointment", Options);
// END
OPI_TestDataRetrieval.Process(Result, "CDEK", "GetDeliveryAppointment");
EndProcedure
Procedure CDEK_CreatePrealert(FunctionParameters)
Token = FunctionParameters["CDEK_Token"];
UUID = FunctionParameters["CDEK_OrderUUID"];
Point = "NSK27";
TransferDate = OPI_Tools.GetCurrentDate() + 60 * 60 * 24;
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("uuids", UUID);
Options.Insert("date", TransferDate);
Options.Insert("point", Point);
Options.Insert("testapi", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("cdek", "CreatePrealert", Options);
// END
OPI_TestDataRetrieval.Process(Result, "CDEK", "CreatePrealert", , FunctionParameters);
EndProcedure
Procedure CDEK_GetPrealert(FunctionParameters)
Token = FunctionParameters["CDEK_Token"];
UUID = FunctionParameters["CDEK_PrealertUUID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("uuid", UUID);
Options.Insert("testapi", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("cdek", "GetPrealert", Options);
// END
OPI_TestDataRetrieval.Process(Result, "CDEK", "GetPrealert");
EndProcedure
Procedure CDEK_GetPassportDataStatus(FunctionParameters)
Token = FunctionParameters["CDEK_Token"];
UUID = FunctionParameters["CDEK_OrderUUID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("uuid", UUID);
Options.Insert("testapi", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("cdek", "GetPassportDataStatus", Options);
// END
OPI_TestDataRetrieval.Process(Result, "CDEK", "GetPassportDataStatus");
EndProcedure
Procedure CDEK_GetCashboxCheck(FunctionParameters)
Token = FunctionParameters["CDEK_Token"];
UUID = FunctionParameters["CDEK_OrderUUID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("uuid", UUID);
Options.Insert("testapi", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("cdek", "GetCashboxCheck", Options);
// END
OPI_TestDataRetrieval.Process(Result, "CDEK", "GetCashboxCheck");
EndProcedure
Procedure CDEK_GetCashboxChecksByDate(FunctionParameters)
Token = FunctionParameters["CDEK_Token"];
ReceivingDate = OPI_Tools.GetCurrentDate();
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("date", ReceivingDate);
Options.Insert("testapi", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("cdek", "GetCashboxChecksByDate", Options);
// END
OPI_TestDataRetrieval.Process(Result, "CDEK", "GetCashboxChecksByDate");
EndProcedure
Procedure CDEK_GetDeliveryCashRegistry(FunctionParameters)
Token = FunctionParameters["CDEK_Token"];
ReceivingDate = OPI_Tools.GetCurrentDate();
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("date", ReceivingDate);
Options.Insert("testapi", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("cdek", "GetDeliveryCashRegistry", Options);
// END
OPI_TestDataRetrieval.Process(Result, "CDEK", "GetDeliveryCashRegistry");
EndProcedure
Procedure CDEK_GetDeliveryCashTransfers(FunctionParameters)
Token = FunctionParameters["CDEK_Token"];
ReceivingDate = OPI_Tools.GetCurrentDate();
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("date", ReceivingDate);
Options.Insert("testapi", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("cdek", "GetDeliveryCashTransfers", Options);
// END
OPI_TestDataRetrieval.Process(Result, "CDEK", "GetDeliveryCashTransfers");
EndProcedure
Procedure CDEK_GetOfficeFilterDescription(FunctionParameters)
Options = New Structure;
Result = OPI_TestDataRetrieval.ExecuteTestCLI("cdek", "GetOfficeFilterDescription", Options);
// END
OPI_TestDataRetrieval.Process(Result, "CDEK", "GetOfficeFilterDescription");
Options = New Structure;
Options.Insert("empty", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("cdek", "GetOfficeFilterDescription", Options);
OPI_TestDataRetrieval.Process(Result, "CDEK", "GetOfficeFilterDescription", "Clear");
EndProcedure
Procedure CDEK_GetOfficeList(FunctionParameters)
Token = FunctionParameters["CDEK_Token"];
Filter = New Structure;
Filter.Insert("weight_max" , 50);
Filter.Insert("city_code" , 270);
Filter.Insert("allowed_cod", True);
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("filter", Filter);
Options.Insert("testapi", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("cdek", "GetOfficeList", Options);
// END
OPI_TestDataRetrieval.Process(Result, "CDEK", "GetOfficeList");
EndProcedure
Procedure CDEK_GetRegionsList(FunctionParameters)
Token = FunctionParameters["CDEK_Token"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("testapi", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("cdek", "GetRegionsList", Options);
// END
OPI_TestDataRetrieval.Process(Result, "CDEK", "GetRegionsList");
EndProcedure
#EndRegion // CDEK
#EndRegion // AtomicTests
#EndRegion // Private
#Region Alternate
Procedure СдэкАПИ_ОбщиеМетоды() Export
CdekAPI_CommonMethods();
EndProcedure
Procedure СдэкАПИ_РаботаСЗаказами() Export
CDEKAPI_OrdersManagement();
EndProcedure
Procedure СдэкАПИ_РаботаСЗаявкамиНаВызовКурьера() Export
CdekAPI_CourierInvitationsManagement();
EndProcedure
#EndRegion
File diff suppressed because it is too large Load Diff
+858
View File
@@ -0,0 +1,858 @@
// OneScript: ./OInt/tests/Modules/OPItc_Dropbox.os
// MIT License
// Copyright (c) 2023-2026 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
// Test suite for YAxUnit
// BSLLS:Typo-off
// BSLLS:LatinAndCyrillicSymbolInWord-off
// BSLLS:IncorrectLineBreak-off
// BSLLS:UsingServiceTag-off
// BSLLS:UnusedParameters-off
// BSLLS:DuplicateStringLiteral-off
// BSLLS:UsingHardcodePath-off
// BSLLS:UnusedLocalVariable-off
// BSLLS:DeprecatedMessage-off
// BSLLS:LineLength-off
// BSLLS:MagicNumber-off
// BSLLS:CommentedCode-off
// BSLLS:AssignAliasFieldsInQuery-off
// BSLLS:UsingHardcodeNetworkAddress-off
// BSLLS:UnreachableCode-off
// BSLLS:UnusedLocalMethod-off
// BSLLS:NestedFunctionInParameters-off
// BSLLS:MissingTemporaryFileDeletion-off
// BSLLS:UsingSynchronousCalls-off
// BSLLS:MagicNumber-off
// BSLLS:MagicDate-off
// BSLLS:MissingParameterDescription-off
// BSLLS:NumberOfOptionalParams-off
// BSLLS:MethodSize-off
// BSLLS:NestedConstructorsInStructureDeclaration-off
// BSLLS:NumberOfValuesInStructureConstructor-off
// BSLLS:UsingHardcodeSecretInformation-off
// BSLLS:SpaceAtStartComment-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
//@skip-check module-unused-local-variable
//@skip-check bsl-legacy-check-string-literal
//@skip-check bsl-legacy-check-method-for-statements-after-return
//@skip-check missing-temporary-file-deletion
//@skip-check module-unused-method
#Use "../../tools/main"
#Use "../../tools/http"
#Use "../../api"
#Use asserts
#Use "internal"
// For YAxUnit
Procedure ИсполняемыеСценарии() Export
OPI_TestDataRetrieval.FormYAXTests("Dropbox");
EndProcedure
// For Asserts
Function ПолучитьСписокТестов(UnitTesting) Export
Return OPI_TestDataRetrieval.FormAssertsTests("Dropbox");
EndFunction
#Region Internal
#Region RunnableTests
#Region Dropbox
Procedure DropboxAPI_GetUpdateToken() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Dropbox_Appkey" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Dropbox_Appsecret", TestParameters);
Dropbox_GetAuthorizationLink(TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Dropbox_Code", TestParameters);
Dropbox_GetToken(TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Dropbox_Refresh", TestParameters);
Dropbox_RefreshToken(TestParameters);
EndProcedure
Procedure DropboxAPI_UploadFile() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Dropbox_Token", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Picture" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Big" , TestParameters);
Dropbox_UploadFile(TestParameters);
Dropbox_GetObjectInformation(TestParameters);
Dropbox_GetObjectVersionList(TestParameters);
Dropbox_RestoreObjectToVersion(TestParameters);
Dropbox_GetPreview(TestParameters);
Dropbox_DownloadFile(TestParameters);
Dropbox_MoveObject(TestParameters);
Dropbox_CopyObject(TestParameters);
Dropbox_DeleteObject(TestParameters);
EndProcedure
Procedure DropboxAPI_CreateFolder() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Dropbox_Token", TestParameters);
Dropbox_CreateFolder(TestParameters);
Dropbox_DownloadFolder(TestParameters);
EndProcedure
Procedure DropboxAPI_GetFolderFileList() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Dropbox_Token", TestParameters);
Dropbox_GetListOfFolderFiles(TestParameters);
EndProcedure
Procedure DropboxAPI_UploadFileByURL() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Dropbox_Token", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Document" , TestParameters);
Dropbox_UploadFileByURL(TestParameters);
Dropbox_GetUploadStatusByURL(TestParameters);
EndProcedure
Procedure DropboxAPI_CreateDeleteTag() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Dropbox_Token", TestParameters);
Dropbox_AddTag(TestParameters);
Dropbox_GetTagList(TestParameters);
Dropbox_DeleteTag(TestParameters);
EndProcedure
Procedure DropboxAPI_GetAccount() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Dropbox_Token", TestParameters);
Dropbox_GetAccountInformation(TestParameters);
Dropbox_GetSpaceUsageData(TestParameters);
EndProcedure
Procedure DropboxAPI_AccessManagement() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Dropbox_Token" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Dropbox_OtherUser", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Dropbox_FileID" , TestParameters);
Dropbox_AddUsersToFile(TestParameters);
Dropbox_PublishFolder(TestParameters);
Dropbox_AddUsersToFolder(TestParameters);
Dropbox_CancelFolderPublication(TestParameters);
Dropbox_GetAsynchronousChangeStatus(TestParameters);
Dropbox_CancelFilePublication(TestParameters);
EndProcedure
#EndRegion // Dropbox
#EndRegion // RunnableTests
#EndRegion // Internal
#Region Private
#Region AtomicTests
#Region Dropbox
Procedure Dropbox_GetAuthorizationLink(FunctionParameters)
AppKey = FunctionParameters["Dropbox_Appkey"];
Options = New Structure;
Options.Insert("appkey", AppKey);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("dropbox", "GetAuthorizationLink", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Dropbox", "GetAuthorizationLink");
EndProcedure
Procedure Dropbox_GetToken(FunctionParameters)
AppKey = FunctionParameters["Dropbox_Appkey"];
AppSecret = FunctionParameters["Dropbox_Appsecret"];
Code = FunctionParameters["Dropbox_Code"];
Options = New Structure;
Options.Insert("appkey", AppKey);
Options.Insert("appsecret", AppSecret);
Options.Insert("code", Code);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("dropbox", "GetToken", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Dropbox", "GetToken");
EndProcedure
Procedure Dropbox_RefreshToken(FunctionParameters)
AppKey = FunctionParameters["Dropbox_Appkey"];
AppSecret = FunctionParameters["Dropbox_Appsecret"];
RefreshToken = FunctionParameters["Dropbox_Refresh"];
Options = New Structure;
Options.Insert("appkey", AppKey);
Options.Insert("appsecret", AppSecret);
Options.Insert("refresh", RefreshToken);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("dropbox", "RefreshToken", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Dropbox", "RefreshToken");
EndProcedure
Procedure Dropbox_GetObjectInformation(FunctionParameters)
Path = "/New/pic.png";
Token = FunctionParameters["Dropbox_Token"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("path", Path);
Options.Insert("detail", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("dropbox", "GetObjectInformation", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Dropbox", "GetObjectInformation", , Path);
EndProcedure
Procedure Dropbox_GetPreview(FunctionParameters)
Token = FunctionParameters["Dropbox_Token"];
Path = "/New/mydoc.docx";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("path", Path);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("dropbox", "GetPreview", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Dropbox", "GetPreview");
EndProcedure
Procedure Dropbox_UploadFile(FunctionParameters)
Path = "/New/pic.png";
Token = FunctionParameters["Dropbox_Token"];
Image = FunctionParameters["Picture"];
ImagePath = GetTempFileName("png");
CopyFile(Image, ImagePath);
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("file", ImagePath);
Options.Insert("path", Path);
Options.Insert("overwrite", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("dropbox", "UploadFile", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Dropbox", "UploadFile", , Path);
OPI_Tools.RemoveFileWithTry(ImagePath, "Failed to delete the temporary file after the test!!");
If Not OPI_Tools.IsOneScript() And FunctionParameters.Property("Big") Then
BigFile = FunctionParameters["Big"];
Path = "/giant.tmp";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("file", BigFile);
Options.Insert("path", Path);
Options.Insert("overwrite", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("dropbox", "UploadFile", Options);
OPI_TestDataRetrieval.Process(Result, "Dropbox", "UploadFile", "Big", Path);
EndIf;
EndProcedure
Procedure Dropbox_UploadFileByURL(FunctionParameters)
Path = "/New/url_doc.docx";
Token = FunctionParameters["Dropbox_Token"];
URL = FunctionParameters["Document"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("url", URL);
Options.Insert("path", Path);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("dropbox", "UploadFileByURL", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Dropbox", "UploadFileByURL", , FunctionParameters);
EndProcedure
Procedure Dropbox_GetUploadStatusByURL(FunctionParameters)
Token = FunctionParameters["Dropbox_Token"];
WorkID = FunctionParameters["Dropbox_Job"];
Status = "in_progress";
While Status = "in_progress" Do
Result = OPI_Dropbox.GetUploadStatusByURL(Token, WorkID);
Status = Result[".tag"];
OPI_Tools.Pause(5);
OPI_TestDataRetrieval.Process(Result, "Dropbox", "GetUploadStatusByURL", "Progress"); // SKIP
EndDo;
// END
OPI_TestDataRetrieval.Process(Result, "Dropbox", "GetUploadStatusByURL");
Token = FunctionParameters["Dropbox_Token"];
Path = "/New/url_doc.docx";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("path", Path);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("dropbox", "DeleteObject", Options);
OPI_TestDataRetrieval.Process(Result, "Dropbox", "GetUploadStatusByURL", "Deletion", Path);
EndProcedure
Procedure Dropbox_DeleteObject(FunctionParameters)
Path = "/New/pic.png";
Token = FunctionParameters["Dropbox_Token"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("path", Path);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("dropbox", "DeleteObject", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Dropbox", "DeleteObject", , Path);
EndProcedure
Procedure Dropbox_CopyObject(FunctionParameters)
Original = "/New/pic.png";
Copy = "/New/pic_copy.png";
Token = FunctionParameters["Dropbox_Token"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("from", Original);
Options.Insert("to", Copy);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("dropbox", "CopyObject", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Dropbox", "CopyObject", , Copy);
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("path", Copy);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("dropbox", "DeleteObject", Options);
OPI_TestDataRetrieval.Process(Result, "Dropbox", "CopyObject", "Deletion", Copy);
EndProcedure
Procedure Dropbox_MoveObject(FunctionParameters)
OriginalPath = "/New/pic.png";
TargetPath = "/pic.png";
Token = FunctionParameters["Dropbox_Token"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("from", OriginalPath);
Options.Insert("to", TargetPath);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("dropbox", "MoveObject", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Dropbox", "MoveObject", , TargetPath);
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("from", TargetPath);
Options.Insert("to", OriginalPath);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("dropbox", "MoveObject", Options);
OPI_TestDataRetrieval.Process(Result, "Dropbox", "MoveObject", "Deletion", OriginalPath);
EndProcedure
Procedure Dropbox_CreateFolder(FunctionParameters)
Token = FunctionParameters["Dropbox_Token"];
Path = "/New catalog";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("path", Path);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("dropbox", "CreateFolder", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Dropbox", "CreateFolder", , Path);
OPI_Dropbox.DeleteObject(Token, Path);
EndProcedure
Procedure Dropbox_DownloadFile(FunctionParameters)
Token = FunctionParameters["Dropbox_Token"];
Path = "/New/pic.png";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("path", Path);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("dropbox", "DownloadFile", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Dropbox", "DownloadFile");
EndProcedure
Procedure Dropbox_DownloadFolder(FunctionParameters)
Token = FunctionParameters["Dropbox_Token"];
Path = "/New";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("path", Path);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("dropbox", "DownloadFolder", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Dropbox", "DownloadFolder");
EndProcedure
Procedure Dropbox_GetListOfFolderFiles(FunctionParameters)
Path = "/New";
Token = FunctionParameters["Dropbox_Token"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("path", Path);
Options.Insert("detail", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("dropbox", "GetListOfFolderFiles", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Dropbox", "GetListOfFolderFiles");
EndProcedure
Procedure Dropbox_GetObjectVersionList(FunctionParameters)
Token = FunctionParameters["Dropbox_Token"];
Path = "/New/pic.png";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("path", Path);
Options.Insert("amount", 1);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("dropbox", "GetObjectVersionList", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Dropbox", "GetObjectVersionList", , FunctionParameters);
EndProcedure
Procedure Dropbox_RestoreObjectToVersion(FunctionParameters)
Version = FunctionParameters["Dropbox_FileRevision"];
Token = FunctionParameters["Dropbox_Token"];
Path = "/New/pic.png";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("path", Path);
Options.Insert("rev", Version);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("dropbox", "RestoreObjectToVersion", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Dropbox", "RestoreObjectToVersion", , Path);
EndProcedure
Procedure Dropbox_GetTagList(FunctionParameters)
Token = FunctionParameters["Dropbox_Token"];
PathsArray = New Array;
PathsArray.Add("/New/Dogs.mp3");
PathsArray.Add("/New/mydoc.docx");
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("paths", PathsArray);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("dropbox", "GetTagList", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Dropbox", "GetTagList", , FunctionParameters, PathsArray);
EndProcedure
Procedure Dropbox_AddTag(FunctionParameters)
Tag = "Important";
Token = FunctionParameters["Dropbox_Token"];
Path = "/New/mydoc.docx";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("path", Path);
Options.Insert("tag", Tag);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("dropbox", "AddTag", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Dropbox", "AddTag");
EndProcedure
Procedure Dropbox_DeleteTag(FunctionParameters)
Tag = "Important";
Token = FunctionParameters["Dropbox_Token"];
Path = "/New/mydoc.docx";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("path", Path);
Options.Insert("tag", Tag);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("dropbox", "DeleteTag", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Dropbox", "DeleteTag");
EndProcedure
Procedure Dropbox_GetAccountInformation(FunctionParameters)
Token = FunctionParameters["Dropbox_Token"];
Options = New Structure;
Options.Insert("token", Token);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("dropbox", "GetAccountInformation", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Dropbox", "GetAccountInformation");
AccountID = Result["account_id"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("account", AccountID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("dropbox", "GetAccountInformation", Options);
OPI_TestDataRetrieval.Process(Result, "Dropbox", "GetAccountInformation", "By ID");
EndProcedure
Procedure Dropbox_GetSpaceUsageData(FunctionParameters)
Token = FunctionParameters["Dropbox_Token"];
Options = New Structure;
Options.Insert("token", Token);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("dropbox", "GetSpaceUsageData", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Dropbox", "GetSpaceUsageData");
EndProcedure
Procedure Dropbox_AddUsersToFile(FunctionParameters)
Token = FunctionParameters["Dropbox_Token"];
Email = FunctionParameters["Dropbox_OtherUser"];
File = FunctionParameters["Dropbox_FileID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("fileid", File);
Options.Insert("emails", Email);
Options.Insert("readonly", Ложь);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("dropbox", "AddUsersToFile", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Dropbox", "AddUsersToFile", , Email, False);
Mails = New Array;
Mails.Add(Email);
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("fileid", File);
Options.Insert("emails", Mails);
Options.Insert("readonly", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("dropbox", "AddUsersToFile", Options);
OPI_TestDataRetrieval.Process(Result, "Dropbox", "AddUsersToFile", , Email, True);
EndProcedure
Procedure Dropbox_PublishFolder(FunctionParameters)
Token = FunctionParameters["Dropbox_Token"];
Path = "/New";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("path", Path);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("dropbox", "PublishFolder", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Dropbox", "PublishFolder", , FunctionParameters);
EndProcedure
Procedure Dropbox_CancelFolderPublication(FunctionParameters)
Token = FunctionParameters["Dropbox_Token"];
Folder = FunctionParameters["Dropbox_SharedFolder"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("folder", Folder);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("dropbox", "CancelFolderPublication", Options);
OPI_TestDataRetrieval.Process(Result, "Dropbox", "CancelFolderPublication"); // SKIP
CurrentStatus = "in_progress";
JobID = Result["async_job_id"];
While CurrentStatus = "in_progress" Do
Result = OPI_Dropbox.GetAsynchronousChangeStatus(Token, JobID);
CurrentStatus = Result[".tag"];
OPI_Tools.Pause(3);
EndDo;
// END
OPI_TestDataRetrieval.Process(Result, "Dropbox", "CancelFolderPublication", "Ending", FunctionParameters, JobID);
EndProcedure
Procedure Dropbox_GetAsynchronousChangeStatus(FunctionParameters)
Token = FunctionParameters["Dropbox_Token"];
JobID = FunctionParameters["Dropbox_NewJobID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("job", JobID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("dropbox", "GetAsynchronousChangeStatus", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Dropbox", "GetAsynchronousChangeStatus");
EndProcedure
Procedure Dropbox_AddUsersToFolder(FunctionParameters)
Token = FunctionParameters["Dropbox_Token"];
Email = FunctionParameters["Dropbox_OtherUser"];
Folder = FunctionParameters["Dropbox_SharedFolder"]; // shared_folder_id
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("folder", Folder);
Options.Insert("emails", Email);
Options.Insert("readonly", Ложь);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("dropbox", "AddUsersToFolder", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Dropbox", "AddUsersToFolder");
Mails = New Array;
Mails.Add(Email);
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("folder", Folder);
Options.Insert("emails", Mails);
Options.Insert("readonly", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("dropbox", "AddUsersToFolder", Options);
OPI_TestDataRetrieval.Process(Result, "Dropbox", "AddUsersToFolder", "Additional");
EndProcedure
Procedure Dropbox_CancelFilePublication(FunctionParameters)
Token = FunctionParameters["Dropbox_Token"];
File = FunctionParameters["Dropbox_FileID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("fileid", File);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("dropbox", "CancelFilePublication", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Dropbox", "CancelFilePublication");
EndProcedure
#EndRegion // Dropbox
#EndRegion // AtomicTests
#EndRegion // Private
#Region Alternate
Procedure ДропБокс_ПолучитьОбновитьТокен() Export
DropboxAPI_GetUpdateToken();
EndProcedure
Procedure ДропБокс_ЗагрузитьФайл() Export
DropboxAPI_UploadFile();
EndProcedure
Procedure ДропБокс_СоздатьКаталог() Export
DropboxAPI_CreateFolder();
EndProcedure
Procedure ДропБокс_ПолучитьСписокФайловПапки() Export
DropboxAPI_GetFolderFileList();
EndProcedure
Procedure ДропБокс_ЗагрузитьФайлПоURL() Export
DropboxAPI_UploadFileByURL();
EndProcedure
Procedure ДропБокс_СоздатьУдалитьТег() Export
DropboxAPI_CreateDeleteTag();
EndProcedure
Procedure ДропБокс_ПолучитьАккаунт() Export
DropboxAPI_GetAccount();
EndProcedure
Procedure ДропБокс_РаботаСДоступами() Export
DropboxAPI_AccessManagement();
EndProcedure
#EndRegion
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+631
View File
@@ -0,0 +1,631 @@
// OneScript: ./OInt/tests/Modules/OPItc_GoogleCalendar.os
// MIT License
// Copyright (c) 2023-2026 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
// Test suite for YAxUnit
// BSLLS:Typo-off
// BSLLS:LatinAndCyrillicSymbolInWord-off
// BSLLS:IncorrectLineBreak-off
// BSLLS:UsingServiceTag-off
// BSLLS:UnusedParameters-off
// BSLLS:DuplicateStringLiteral-off
// BSLLS:UsingHardcodePath-off
// BSLLS:UnusedLocalVariable-off
// BSLLS:DeprecatedMessage-off
// BSLLS:LineLength-off
// BSLLS:MagicNumber-off
// BSLLS:CommentedCode-off
// BSLLS:AssignAliasFieldsInQuery-off
// BSLLS:UsingHardcodeNetworkAddress-off
// BSLLS:UnreachableCode-off
// BSLLS:UnusedLocalMethod-off
// BSLLS:NestedFunctionInParameters-off
// BSLLS:MissingTemporaryFileDeletion-off
// BSLLS:UsingSynchronousCalls-off
// BSLLS:MagicNumber-off
// BSLLS:MagicDate-off
// BSLLS:MissingParameterDescription-off
// BSLLS:NumberOfOptionalParams-off
// BSLLS:MethodSize-off
// BSLLS:NestedConstructorsInStructureDeclaration-off
// BSLLS:NumberOfValuesInStructureConstructor-off
// BSLLS:UsingHardcodeSecretInformation-off
// BSLLS:SpaceAtStartComment-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
//@skip-check module-unused-local-variable
//@skip-check bsl-legacy-check-string-literal
//@skip-check bsl-legacy-check-method-for-statements-after-return
//@skip-check missing-temporary-file-deletion
//@skip-check module-unused-method
#Use "../../tools/main"
#Use "../../tools/http"
#Use "../../api"
#Use asserts
#Use "internal"
// For YAxUnit
Procedure ИсполняемыеСценарии() Export
OPI_TestDataRetrieval.FormYAXTests("GoogleCalendar");
EndProcedure
// For Asserts
Function ПолучитьСписокТестов(UnitTesting) Export
Return OPI_TestDataRetrieval.FormAssertsTests("GoogleCalendar");
EndFunction
#Region Internal
#Region RunnableTests
#Region GoogleCalendar
Procedure GC_Authorization() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Google_ClientID" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Google_ClientSecret", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Google_Code" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Google_Refresh" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Google_ServiceData" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Access_Token" , TestParameters);
GoogleCalendar_FormCodeRetrievalLink(TestParameters);
GoogleCalendar_GetTokenByCode(TestParameters);
GoogleCalendar_RefreshToken(TestParameters);
GoogleCalendar_GetServiceAccountToken(TestParameters);
EndProcedure
Procedure GC_GetCalendarList() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Google_Token", TestParameters);
GoogleCalendar_GetCalendarList(TestParameters);
EndProcedure
Procedure GC_CreateDeleteCalendar() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Google_Token", TestParameters);
GoogleCalendar_CreateCalendar(TestParameters);
GoogleCalendar_EditCalendarMetadata(TestParameters);
GoogleCalendar_GetCalendarMetadata(TestParameters);
GoogleCalendar_AddCalendarToList(TestParameters);
GoogleCalendar_EditListCalendar(TestParameters);
GoogleCalendar_GetListCalendar(TestParameters);
GoogleCalendar_ClearMainCalendar(TestParameters);
// !DISABLED! GoogleCalendar_DeleteCalendarFromList(TestParameters);
GoogleCalendar_DeleteCalendar(TestParameters);
OPI_Tools.Pause(5);
EndProcedure
Procedure GC_CreateDeleteEvent() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Google_Token" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Google_NewCalendarID", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Google_CalendarID" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Picture" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Picture2" , TestParameters);
GoogleCalendar_CreateCalendar(TestParameters);
GoogleCalendar_CreateEvent(TestParameters);
GoogleCalendar_EditEvent(TestParameters);
GoogleCalendar_GetEvent(TestParameters);
GoogleCalendar_MoveEvent(TestParameters);
GoogleCalendar_GetEventList(TestParameters);
GoogleCalendar_GetEventDescription(TestParameters);
GoogleCalendar_DeleteEvent(TestParameters);
GoogleCalendar_DeleteCalendar(TestParameters);
OPI_Tools.Pause(5);
EndProcedure
#EndRegion // GoogleCalendar
#EndRegion // RunnableTests
#EndRegion // Internal
#Region Private
#Region AtomicTests
#Region GoogleCalendar
Procedure GoogleCalendar_FormCodeRetrievalLink(FunctionParameters)
ClientID = FunctionParameters["Google_ClientID"];
Options = New Structure;
Options.Insert("id", ClientID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gcalendar", "FormCodeRetrievalLink", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleCalendar", "FormCodeRetrievalLink");
EndProcedure
Procedure GoogleCalendar_GetTokenByCode(FunctionParameters)
ClientID = FunctionParameters["Google_ClientID"];
ClientSecret = FunctionParameters["Google_ClientSecret"];
Code = FunctionParameters["Google_Code"];
Options = New Structure;
Options.Insert("id", ClientID);
Options.Insert("secret", ClientSecret);
Options.Insert("code", Code);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gcalendar", "GetTokenByCode", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleCalendar", "GetTokenByCode");
EndProcedure
Procedure GoogleCalendar_RefreshToken(FunctionParameters)
ClientID = FunctionParameters["Google_ClientID"];
ClientSecret = FunctionParameters["Google_ClientSecret"];
RefreshToken = FunctionParameters["Google_Refresh"];
Options = New Structure;
Options.Insert("id", ClientID);
Options.Insert("secret", ClientSecret);
Options.Insert("refresh", RefreshToken);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gcalendar", "RefreshToken", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleCalendar", "RefreshToken");
EndProcedure
Procedure GoogleCalendar_GetServiceAccountToken(FunctionParameters)
Data = FunctionParameters["Google_ServiceData"]; // URL, binary Data, file or collection
Token = FunctionParameters["Access_Token"]; // SKIP
Data = OPI_HTTPRequests // SKIP
.NewRequest() // SKIP
.Initialize(Data) // SKIP
.AddBearerAuthorization(Token) // SKIP
.ProcessRequest("GET") // SKIP
.ReturnResponseAsBinaryData(); // SKIP
Scope = New Array;
Scope.Add("https://www.googleapis.com/auth/calendar");
Scope.Add("https://www.googleapis.com/auth/drive");
Scope.Add("https://www.googleapis.com/auth/spreadsheets");
Options = New Structure;
Options.Insert("auth", Data);
Options.Insert("scope", Scope);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gcalendar", "GetServiceAccountToken", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleCalendar", "GetServiceAccountToken");
EndProcedure
Procedure GoogleCalendar_GetCalendarList(FunctionParameters)
Token = FunctionParameters["Google_Token"];
Options = New Structure;
Options.Insert("token", Token);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gcalendar", "GetCalendarList", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleCalendar", "GetCalendarList");
EndProcedure
Procedure GoogleCalendar_CreateCalendar(FunctionParameters)
Token = FunctionParameters["Google_Token"];
Name = "TestCalendar";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("title", Name);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gcalendar", "CreateCalendar", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleCalendar", "CreateCalendar", , FunctionParameters, Name);
EndProcedure
Procedure GoogleCalendar_EditCalendarMetadata(FunctionParameters)
Token = FunctionParameters["Google_Token"];
Calendar = FunctionParameters["Google_NewCalendarID"];
Name = "New name";
Description = "New description";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("calendar", Calendar);
Options.Insert("title", Name);
Options.Insert("description", Description);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gcalendar", "EditCalendarMetadata", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleCalendar", "EditCalendarMetadata", , Name, Description);
EndProcedure
Procedure GoogleCalendar_GetCalendarMetadata(FunctionParameters)
Token = FunctionParameters["Google_Token"];
Calendar = FunctionParameters["Google_NewCalendarID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("calendar", Calendar);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gcalendar", "GetCalendarMetadata", Options);
// END
Name = "New name";
Description = "New description";
OPI_TestDataRetrieval.Process(Result, "GoogleCalendar", "GetCalendarMetadata", , Name, Description);
EndProcedure
Procedure GoogleCalendar_AddCalendarToList(FunctionParameters)
Token = FunctionParameters["Google_Token"];
Calendar = FunctionParameters["Google_NewCalendarID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("calendar", Calendar);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gcalendar", "AddCalendarToList", Options);
// END
Name = "New name";
Description = "New description";
OPI_TestDataRetrieval.Process(Result, "GoogleCalendar", "AddCalendarToList", , Name, Description);
EndProcedure
Procedure GoogleCalendar_EditListCalendar(FunctionParameters)
Token = FunctionParameters["Google_Token"];
Calendar = FunctionParameters["Google_NewCalendarID"];
PrimaryColor = "#000000";
SecondaryColor = "#ffd800";
Hidden = False;
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("calendar", Calendar);
Options.Insert("primary", PrimaryColor);
Options.Insert("secondary", SecondaryColor);
Options.Insert("hidden", Hidden);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gcalendar", "EditListCalendar", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleCalendar", "EditListCalendar", , PrimaryColor, SecondaryColor);
EndProcedure
Procedure GoogleCalendar_GetListCalendar(FunctionParameters)
Token = FunctionParameters["Google_Token"];
Calendar = FunctionParameters["Google_NewCalendarID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("calendar", Calendar);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gcalendar", "GetListCalendar", Options);
// END
PrimaryColor = "#000000";
SecondaryColor = "#ffd800";
OPI_TestDataRetrieval.Process(Result, "GoogleCalendar", "GetListCalendar", , PrimaryColor, SecondaryColor);
EndProcedure
Procedure GoogleCalendar_ClearMainCalendar(FunctionParameters)
Token = FunctionParameters["Google_Token"];
Options = New Structure;
Options.Insert("token", Token);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gcalendar", "ClearMainCalendar", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleCalendar", "ClearMainCalendar");
EndProcedure
Procedure GoogleCalendar_DeleteCalendarFromList(FunctionParameters)
Token = FunctionParameters["Google_Token"];
Calendar = FunctionParameters["Google_NewCalendarID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("calendar", Calendar);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gcalendar", "DeleteCalendarFromList", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleCalendar", "DeleteCalendarFromList");
EndProcedure
Procedure GoogleCalendar_DeleteCalendar(FunctionParameters)
Token = FunctionParameters["Google_Token"];
Calendar = FunctionParameters["Google_NewCalendarID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("calendar", Calendar);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gcalendar", "DeleteCalendar", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleCalendar", "DeleteCalendar");
EndProcedure
Procedure GoogleCalendar_CreateEvent(FunctionParameters)
CurrentDate = OPI_Tools.GetCurrentDate();
Token = FunctionParameters["Google_Token"];
Calendar = FunctionParameters["Google_NewCalendarID"];
Name = "New event";
Description = "TestEventDescription";
Hour = 3600;
Image1 = FunctionParameters["Picture"]; // URL, Binary or File path
Image2 = FunctionParameters["Picture2"]; // URL, Binary or File path
Attachments = New Map;
Attachments.Insert("Image1", Image1);
Attachments.Insert("Image2", Image2);
EventDescription = New Map;
EventDescription.Insert("Description" , Description);
EventDescription.Insert("Title" , Name);
EventDescription.Insert("Venue" , "InOffice");
EventDescription.Insert("StartDate" , CurrentDate);
EventDescription.Insert("EndDate" , EventDescription["StartDate"] + Hour);
EventDescription.Insert("ArrayOfAttachmentURLs", Attachments);
EventDescription.Insert("SendNotifications" , True);
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("calendar", Calendar);
Options.Insert("props", EventDescription);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gcalendar", "CreateEvent", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleCalendar", "CreateEvent", , FunctionParameters, Name, Description);
EndProcedure
Procedure GoogleCalendar_EditEvent(FunctionParameters)
Token = FunctionParameters["Google_Token"];
Calendar = FunctionParameters["Google_NewCalendarID"];
Event = FunctionParameters["Google_EventID"];
Description = "New event description";
EventDescription = New Map;
EventDescription.Insert("Description", Description);
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("calendar", Calendar);
Options.Insert("props", EventDescription);
Options.Insert("event", Event);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gcalendar", "EditEvent", Options);
// END
Name = "New event";
OPI_TestDataRetrieval.Process(Result, "GoogleCalendar", "EditEvent", , Name, Description);
EndProcedure
Procedure GoogleCalendar_GetEvent(FunctionParameters)
Token = FunctionParameters["Google_Token"];
Calendar = FunctionParameters["Google_NewCalendarID"];
Event = FunctionParameters["Google_EventID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("calendar", Calendar);
Options.Insert("event", Event);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gcalendar", "GetEvent", Options);
// END
Name = "New event";
Description = "New event description";
OPI_TestDataRetrieval.Process(Result, "GoogleCalendar", "GetEvent", , Name, Description);
EndProcedure
Procedure GoogleCalendar_MoveEvent(FunctionParameters)
Token = FunctionParameters["Google_Token"];
Event = FunctionParameters["Google_EventID"];
SourceCalendar = FunctionParameters["Google_NewCalendarID"];
TargetCalendar = FunctionParameters["Google_CalendarID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("from", SourceCalendar);
Options.Insert("to", TargetCalendar);
Options.Insert("event", Event);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gcalendar", "MoveEvent", Options);
// END
Name = "New event";
Description = "New event description";
OPI_TestDataRetrieval.Process(Result, "GoogleCalendar", "MoveEvent", , Name, Description);
OPI_GoogleCalendar.MoveEvent(Token, TargetCalendar, SourceCalendar, Event);
EndProcedure
Procedure GoogleCalendar_DeleteEvent(FunctionParameters)
Token = FunctionParameters["Google_Token"];
Calendar = FunctionParameters["Google_NewCalendarID"];
Event = FunctionParameters["Google_EventID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("calendar", Calendar);
Options.Insert("event", Event);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gcalendar", "DeleteEvent", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleCalendar", "DeleteEvent");
EndProcedure
Procedure GoogleCalendar_GetEventList(FunctionParameters)
Token = FunctionParameters["Google_Token"];
Calendar = FunctionParameters["Google_NewCalendarID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("calendar", Calendar);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gcalendar", "GetEventList", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleCalendar", "GetEventList");
EndProcedure
Procedure GoogleCalendar_GetEventDescription(FunctionParameters)
Clear = False;
Options = New Structure;
Options.Insert("empty", Clear);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gcalendar", "GetEventDescription", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleCalendar", "GetEventDescription");
EndProcedure
#EndRegion // GoogleCalendar
#EndRegion // AtomicTests
#EndRegion // Private
#Region Alternate
Procedure ГК_Авторизация() Export
GC_Authorization();
EndProcedure
Procedure ГК_ПолучитьСписокКалендарей() Export
GC_GetCalendarList();
EndProcedure
Procedure ГК_СоздатьУдалитьКалендарь() Export
GC_CreateDeleteCalendar();
EndProcedure
Procedure ГК_СоздатьУдалитьСобытие() Export
GC_CreateDeleteEvent();
EndProcedure
#EndRegion
+609
View File
@@ -0,0 +1,609 @@
// OneScript: ./OInt/tests/Modules/OPItc_GoogleDrive.os
// MIT License
// Copyright (c) 2023-2026 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
// Test suite for YAxUnit
// BSLLS:Typo-off
// BSLLS:LatinAndCyrillicSymbolInWord-off
// BSLLS:IncorrectLineBreak-off
// BSLLS:UsingServiceTag-off
// BSLLS:UnusedParameters-off
// BSLLS:DuplicateStringLiteral-off
// BSLLS:UsingHardcodePath-off
// BSLLS:UnusedLocalVariable-off
// BSLLS:DeprecatedMessage-off
// BSLLS:LineLength-off
// BSLLS:MagicNumber-off
// BSLLS:CommentedCode-off
// BSLLS:AssignAliasFieldsInQuery-off
// BSLLS:UsingHardcodeNetworkAddress-off
// BSLLS:UnreachableCode-off
// BSLLS:UnusedLocalMethod-off
// BSLLS:NestedFunctionInParameters-off
// BSLLS:MissingTemporaryFileDeletion-off
// BSLLS:UsingSynchronousCalls-off
// BSLLS:MagicNumber-off
// BSLLS:MagicDate-off
// BSLLS:MissingParameterDescription-off
// BSLLS:NumberOfOptionalParams-off
// BSLLS:MethodSize-off
// BSLLS:NestedConstructorsInStructureDeclaration-off
// BSLLS:NumberOfValuesInStructureConstructor-off
// BSLLS:UsingHardcodeSecretInformation-off
// BSLLS:SpaceAtStartComment-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
//@skip-check module-unused-local-variable
//@skip-check bsl-legacy-check-string-literal
//@skip-check bsl-legacy-check-method-for-statements-after-return
//@skip-check missing-temporary-file-deletion
//@skip-check module-unused-method
#Use "../../tools/main"
#Use "../../tools/http"
#Use "../../api"
#Use asserts
#Use "internal"
// For YAxUnit
Procedure ИсполняемыеСценарии() Export
OPI_TestDataRetrieval.FormYAXTests("GoogleDrive");
EndProcedure
// For Asserts
Function ПолучитьСписокТестов(UnitTesting) Export
Return OPI_TestDataRetrieval.FormAssertsTests("GoogleDrive");
EndFunction
#Region Internal
#Region RunnableTests
#Region GoogleDrive
Procedure GD_Authorization() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Google_ClientID" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Google_ClientSecret", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Google_Code" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Google_Refresh" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Google_ServiceData" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Access_Token" , TestParameters);
GoogleDrive_FormCodeRetrievalLink(TestParameters);
GoogleDrive_GetTokenByCode(TestParameters);
GoogleDrive_RefreshToken(TestParameters);
GoogleDrive_GetServiceAccountToken(TestParameters);
EndProcedure
Procedure GD_GetCatalogList() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Google_Token", TestParameters);
GoogleDrive_GetDirectoriesList(TestParameters);
GoogleDrive_GetObjectInformation(TestParameters);
EndProcedure
Procedure GD_UploadDeleteFile() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Google_Token", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("GD_Catalog" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Picture" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Picture2" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Big" , TestParameters);
TestParameters.Insert("ArrayOfDeletions", New Array);
GoogleDrive_UploadFile(TestParameters);
GoogleDrive_CopyObject(TestParameters);
GoogleDrive_DownloadFile(TestParameters);
GoogleDrive_UpdateFile(TestParameters);
GoogleDrive_GetFilesList(TestParameters);
GoogleDrive_DeleteObject(TestParameters);
GoogleDrive_GetFileDescription(TestParameters);
OPI_Tools.Pause(5);
EndProcedure
Procedure GD_CreateDeleteComment() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Google_Token", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("GD_Catalog" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Picture" , TestParameters);
TestParameters.Insert("ArrayOfDeletions", New Array);
GoogleDrive_UploadFile(TestParameters);
GoogleDrive_CreateComment(TestParameters);
GoogleDrive_GetComment(TestParameters);
GoogleDrive_GetCommentList(TestParameters);
GoogleDrive_DeleteComment(TestParameters);
GoogleDrive_DeleteObject(TestParameters);
EndProcedure
Procedure GD_CreateCatalog() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Google_Token", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("GD_Catalog" , TestParameters);
GoogleDrive_CreateFolder(TestParameters);
EndProcedure
#EndRegion // GoogleDrive
#EndRegion // RunnableTests
#EndRegion // Internal
#Region Private
#Region AtomicTests
#Region GoogleDrive
Procedure GoogleDrive_FormCodeRetrievalLink(FunctionParameters)
ClientID = FunctionParameters["Google_ClientID"];
Options = New Structure;
Options.Insert("id", ClientID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gdrive", "FormCodeRetrievalLink", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleDrive", "FormCodeRetrievalLink");
EndProcedure
Procedure GoogleDrive_GetTokenByCode(FunctionParameters)
ClientID = FunctionParameters["Google_ClientID"];
ClientSecret = FunctionParameters["Google_ClientSecret"];
Code = FunctionParameters["Google_Code"];
Options = New Structure;
Options.Insert("id", ClientID);
Options.Insert("secret", ClientSecret);
Options.Insert("code", Code);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gdrive", "GetTokenByCode", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleDrive", "GetTokenByCode");
EndProcedure
Procedure GoogleDrive_RefreshToken(FunctionParameters)
ClientID = FunctionParameters["Google_ClientID"];
ClientSecret = FunctionParameters["Google_ClientSecret"];
RefreshToken = FunctionParameters["Google_Refresh"];
Options = New Structure;
Options.Insert("id", ClientID);
Options.Insert("secret", ClientSecret);
Options.Insert("refresh", RefreshToken);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gdrive", "RefreshToken", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleDrive", "RefreshToken");
EndProcedure
Procedure GoogleDrive_GetServiceAccountToken(FunctionParameters)
Data = FunctionParameters["Google_ServiceData"]; // URL, binary Data, file or collection
Token = FunctionParameters["Access_Token"]; // SKIP
Data = OPI_HTTPRequests // SKIP
.NewRequest() // SKIP
.Initialize(Data) // SKIP
.AddBearerAuthorization(Token) // SKIP
.ProcessRequest("GET") // SKIP
.ReturnResponseAsBinaryData(); // SKIP
Scope = New Array;
Scope.Add("https://www.googleapis.com/auth/calendar");
Scope.Add("https://www.googleapis.com/auth/drive");
Scope.Add("https://www.googleapis.com/auth/spreadsheets");
Options = New Structure;
Options.Insert("auth", Data);
Options.Insert("scope", Scope);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gdrive", "GetServiceAccountToken", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleDrive", "GetServiceAccountToken");
EndProcedure
Procedure GoogleDrive_GetDirectoriesList(FunctionParameters)
Name = "TestFolder";
Token = FunctionParameters["Google_Token"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("query", Name);
Options.Insert("depth", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gdrive", "GetDirectoriesList", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleDrive", "GetDirectoriesList", , FunctionParameters);
EndProcedure
Procedure GoogleDrive_GetObjectInformation(FunctionParameters)
Token = FunctionParameters["Google_Token"];
Identifier = FunctionParameters["GD_Catalog"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("object", Identifier);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gdrive", "GetObjectInformation", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleDrive", "GetObjectInformation");
EndProcedure
Procedure GoogleDrive_UploadFile(FunctionParameters)
Token = FunctionParameters["Google_Token"];
Directory = FunctionParameters["GD_Catalog"];
Image = FunctionParameters["Picture"]; // URL, Binary Data or File path
Clear = False;
Options = New Structure;
Options.Insert("empty", Clear);
Description = OPI_TestDataRetrieval.ExecuteTestCLI("gdrive", "GetFileDescription", Options);
Description.Insert("Parent", Directory);
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("file", Image);
Options.Insert("props", Description);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gdrive", "UploadFile", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleDrive", "UploadFile", , FunctionParameters, Description);
If Not OPI_Tools.IsOneScript() And FunctionParameters.Property("Big") Then
BigFile = FunctionParameters["Big"];
Description.Insert("Name", "big.rar");
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("file", BigFile);
Options.Insert("props", Description);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gdrive", "UploadFile", Options);
OPI_TestDataRetrieval.Process(Result, "GoogleDrive", "UploadFile", "Big", FunctionParameters, Description);
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("object", Result);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gdrive", "DownloadFile", Options);
OPI_TestDataRetrieval.Process(Result, "GoogleDrive", "UploadFile", "Check", FunctionParameters, Description);
EndIf;
EndProcedure
Procedure GoogleDrive_CopyObject(FunctionParameters)
Token = FunctionParameters["Google_Token"];
Identifier = FunctionParameters["GD_File"];
NewName = "CopiedFile.jpeg";
NewParent = "root";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("object", Identifier);
Options.Insert("title", NewName);
Options.Insert("catalog", NewParent);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gdrive", "CopyObject", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleDrive", "CopyObject", , FunctionParameters, NewName);
EndProcedure
Procedure GoogleDrive_DownloadFile(FunctionParameters)
Token = FunctionParameters["Google_Token"];
Identifier = FunctionParameters["GD_File"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("object", Identifier);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gdrive", "DownloadFile", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleDrive", "DownloadFile", , FunctionParameters);
EndProcedure
Procedure GoogleDrive_UpdateFile(FunctionParameters)
Token = FunctionParameters["Google_Token"];
NewName = "UpdatedFile.jpg";
Identifier = FunctionParameters["GD_File"];
File = FunctionParameters["Picture2"]; // URL, Binary Data or File path
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("object", Identifier);
Options.Insert("file", File);
Options.Insert("title", NewName);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gdrive", "UpdateFile", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleDrive", "UpdateFile", , NewName);
EndProcedure
Procedure GoogleDrive_GetFilesList(FunctionParameters)
Token = FunctionParameters["Google_Token"];
Directory = "root";
NameContains = "data";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("query", NameContains);
Options.Insert("catalog", Directory);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gdrive", "GetFilesList", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleDrive", "GetFilesList");
EndProcedure
Procedure GoogleDrive_DeleteObject(FunctionParameters)
Token = FunctionParameters["Google_Token"];
Identifier = FunctionParameters["GD_File"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("object", Identifier);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gdrive", "DeleteObject", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleDrive", "DeleteObject");
For Each Deletable In FunctionParameters["ArrayOfDeletions"] Do
Result = OPI_GoogleDrive.DeleteObject(Token, Deletable);
OPI_TestDataRetrieval.Process(Result, "GoogleDrive", "DeleteObject", "Additional");
OPI_Tools.Pause(2);
EndDo;
EndProcedure
Procedure GoogleDrive_GetFileDescription(FunctionParameters)
Options = New Structure;
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gdrive", "GetFileDescription", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleDrive", "GetFileDescription");
EndProcedure
Procedure GoogleDrive_CreateComment(FunctionParameters)
Token = FunctionParameters["Google_Token"];
Identifier = FunctionParameters["GD_File"];
Comment = "Comment text";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("object", Identifier);
Options.Insert("text", Comment);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gdrive", "CreateComment", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleDrive", "CreateComment", , FunctionParameters, Comment);
EndProcedure
Procedure GoogleDrive_GetComment(FunctionParameters)
Token = FunctionParameters["Google_Token"];
Identifier = FunctionParameters["GD_File"];
CommentID = FunctionParameters["GD_Comment"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("object", Identifier);
Options.Insert("comment", CommentID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gdrive", "GetComment", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleDrive", "GetComment");
EndProcedure
Procedure GoogleDrive_GetCommentList(FunctionParameters)
Token = FunctionParameters["Google_Token"];
Identifier = FunctionParameters["GD_File"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("object", Identifier);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gdrive", "GetCommentList", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleDrive", "GetCommentList");
EndProcedure
Procedure GoogleDrive_DeleteComment(FunctionParameters)
Token = FunctionParameters["Google_Token"];
Identifier = FunctionParameters["GD_File"];
CommentID = FunctionParameters["GD_Comment"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("object", Identifier);
Options.Insert("comment", CommentID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gdrive", "DeleteComment", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleDrive", "DeleteComment");
EndProcedure
Procedure GoogleDrive_CreateFolder(FunctionParameters)
Token = FunctionParameters["Google_Token"];
Directory = FunctionParameters["GD_Catalog"];
Name = "TestFolder";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("title", Name);
Options.Insert("catalog", Directory);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gdrive", "CreateFolder", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleDrive", "CreateFolder");
CatalogID = Result["id"];
OPI_GoogleDrive.DeleteObject(Token, CatalogID);
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("title", Name);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gdrive", "CreateFolder", Options);
OPI_TestDataRetrieval.Process(Result, "GoogleDrive", "CreateFolder", "Root");
CatalogID = Result["id"];
OPI_GoogleDrive.DeleteObject(Token, CatalogID);
EndProcedure
#EndRegion // GoogleDrive
#EndRegion // AtomicTests
#EndRegion // Private
#Region Alternate
Procedure ГД_Авторизация() Export
GD_Authorization();
EndProcedure
Procedure ГД_ПолучитьСписокКаталогов() Export
GD_GetCatalogList();
EndProcedure
Procedure ГД_ЗагрузитьУдалитьФайл() Export
GD_UploadDeleteFile();
EndProcedure
Procedure ГД_СоздатьУдалитьКомментарий() Export
GD_CreateDeleteComment();
EndProcedure
Procedure ГД_СоздатьКаталог() Export
GD_CreateCatalog();
EndProcedure
#EndRegion
+494
View File
@@ -0,0 +1,494 @@
// OneScript: ./OInt/tests/Modules/OPItc_GoogleSheets.os
// MIT License
// Copyright (c) 2023-2026 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
// Test suite for YAxUnit
// BSLLS:Typo-off
// BSLLS:LatinAndCyrillicSymbolInWord-off
// BSLLS:IncorrectLineBreak-off
// BSLLS:UsingServiceTag-off
// BSLLS:UnusedParameters-off
// BSLLS:DuplicateStringLiteral-off
// BSLLS:UsingHardcodePath-off
// BSLLS:UnusedLocalVariable-off
// BSLLS:DeprecatedMessage-off
// BSLLS:LineLength-off
// BSLLS:MagicNumber-off
// BSLLS:CommentedCode-off
// BSLLS:AssignAliasFieldsInQuery-off
// BSLLS:UsingHardcodeNetworkAddress-off
// BSLLS:UnreachableCode-off
// BSLLS:UnusedLocalMethod-off
// BSLLS:NestedFunctionInParameters-off
// BSLLS:MissingTemporaryFileDeletion-off
// BSLLS:UsingSynchronousCalls-off
// BSLLS:MagicNumber-off
// BSLLS:MagicDate-off
// BSLLS:MissingParameterDescription-off
// BSLLS:NumberOfOptionalParams-off
// BSLLS:MethodSize-off
// BSLLS:NestedConstructorsInStructureDeclaration-off
// BSLLS:NumberOfValuesInStructureConstructor-off
// BSLLS:UsingHardcodeSecretInformation-off
// BSLLS:SpaceAtStartComment-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
//@skip-check module-unused-local-variable
//@skip-check bsl-legacy-check-string-literal
//@skip-check bsl-legacy-check-method-for-statements-after-return
//@skip-check missing-temporary-file-deletion
//@skip-check module-unused-method
#Use "../../tools/main"
#Use "../../tools/http"
#Use "../../api"
#Use asserts
#Use "internal"
// For YAxUnit
Procedure ИсполняемыеСценарии() Export
OPI_TestDataRetrieval.FormYAXTests("GoogleSheets");
EndProcedure
// For Asserts
Function ПолучитьСписокТестов(UnitTesting) Export
Return OPI_TestDataRetrieval.FormAssertsTests("GoogleSheets");
EndFunction
#Region Internal
#Region RunnableTests
#Region GoogleSheets
Procedure GT_Authorization() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Google_ClientID" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Google_ClientSecret", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Google_Code" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Google_Refresh" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Google_ServiceData" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Access_Token" , TestParameters);
GoogleSheets_FormCodeRetrievalLink(TestParameters);
GoogleSheets_GetTokenByCode(TestParameters);
GoogleSheets_RefreshToken(TestParameters);
GoogleSheets_GetServiceAccountToken(TestParameters);
EndProcedure
Procedure GT_CreateTable() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Google_Token", TestParameters);
GoogleSheets_CreateSpreadsheet(TestParameters);
GoogleSheets_GetSpreadsheet(TestParameters);
GoogleSheets_CopySheet(TestParameters);
GoogleSheets_AddSheet(TestParameters);
GoogleSheets_DeleteSheet(TestParameters);
GoogleSheets_EditSpreadsheetTitle(TestParameters);
GoogleSheets_GetTable(TestParameters);
OPI_GoogleDrive.DeleteObject(TestParameters["Google_Token"], TestParameters["GS_Spreadsheet"]);
OPI_GoogleDrive.DeleteObject(TestParameters["Google_Token"], TestParameters["GS_Spreadsheet2"]);
EndProcedure
Procedure GT_FillClearCells() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Google_Token", TestParameters);
GoogleSheets_CreateSpreadsheet(TestParameters);
GoogleSheets_SetCellValues(TestParameters);
GoogleSheets_GetCellValues(TestParameters);
GoogleSheets_ClearCells(TestParameters);
OPI_GoogleDrive.DeleteObject(TestParameters["Google_Token"], TestParameters["GS_Spreadsheet"]);
OPI_GoogleDrive.DeleteObject(TestParameters["Google_Token"], TestParameters["GS_Spreadsheet2"]);
EndProcedure
#EndRegion // GoogleSheets
#EndRegion // RunnableTests
#EndRegion // Internal
#Region Private
#Region AtomicTests
#Region GoogleSheets
Procedure GoogleSheets_FormCodeRetrievalLink(FunctionParameters)
ClientID = FunctionParameters["Google_ClientID"];
Options = New Structure;
Options.Insert("id", ClientID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gsheets", "FormCodeRetrievalLink", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleSheets", "FormCodeRetrievalLink");
EndProcedure
Procedure GoogleSheets_GetTokenByCode(FunctionParameters)
ClientID = FunctionParameters["Google_ClientID"];
ClientSecret = FunctionParameters["Google_ClientSecret"];
Code = FunctionParameters["Google_Code"];
Options = New Structure;
Options.Insert("id", ClientID);
Options.Insert("secret", ClientSecret);
Options.Insert("code", Code);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gsheets", "GetTokenByCode", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleSheets", "GetTokenByCode");
EndProcedure
Procedure GoogleSheets_RefreshToken(FunctionParameters)
ClientID = FunctionParameters["Google_ClientID"];
ClientSecret = FunctionParameters["Google_ClientSecret"];
RefreshToken = FunctionParameters["Google_Refresh"];
Options = New Structure;
Options.Insert("id", ClientID);
Options.Insert("secret", ClientSecret);
Options.Insert("refresh", RefreshToken);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gsheets", "RefreshToken", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleSheets", "RefreshToken");
EndProcedure
Procedure GoogleSheets_GetServiceAccountToken(FunctionParameters)
Data = FunctionParameters["Google_ServiceData"]; // URL, binary Data, file or collection
Token = FunctionParameters["Access_Token"]; // SKIP
Data = OPI_HTTPRequests // SKIP
.NewRequest() // SKIP
.Initialize(Data) // SKIP
.AddBearerAuthorization(Token) // SKIP
.ProcessRequest("GET") // SKIP
.ReturnResponseAsBinaryData(); // SKIP
Scope = New Array;
Scope.Add("https://www.googleapis.com/auth/calendar");
Scope.Add("https://www.googleapis.com/auth/drive");
Scope.Add("https://www.googleapis.com/auth/spreadsheets");
Options = New Structure;
Options.Insert("auth", Data);
Options.Insert("scope", Scope);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gsheets", "GetServiceAccountToken", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleSheets", "GetServiceAccountToken");
EndProcedure
Procedure GoogleSheets_CreateSpreadsheet(FunctionParameters)
Token = FunctionParameters["Google_Token"];
Name = "TestTable";
SheetArray = New Array;
SheetArray.Add("Sheet1");
SheetArray.Add("Sheet2");
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("title", Name);
Options.Insert("sheets", SheetArray);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gsheets", "CreateSpreadsheet", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleSheets", "CreateSpreadsheet", , FunctionParameters, Name, SheetArray);
Name = "Test table (new.)";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("title", Name);
Options.Insert("sheets", SheetArray);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gsheets", "CreateSpreadsheet", Options);
OPI_TestDataRetrieval.Process(Result, "GoogleSheets", "CreateSpreadsheet", "Additionally", FunctionParameters, Name);
EndProcedure
Procedure GoogleSheets_GetSpreadsheet(FunctionParameters)
Token = FunctionParameters["Google_Token"];
Identifier = FunctionParameters["GS_Spreadsheet"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("spreadsheet", Identifier);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gsheets", "GetSpreadsheet", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleSheets", "GetSpreadsheet");
EndProcedure
Procedure GoogleSheets_CopySheet(FunctionParameters)
Token = FunctionParameters["Google_Token"];
From = FunctionParameters["GS_Spreadsheet"];
Target = FunctionParameters["GS_Spreadsheet2"];
Sheet = FunctionParameters["GS_Sheet"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("from", From);
Options.Insert("to", Target);
Options.Insert("sheet", Sheet);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gsheets", "CopySheet", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleSheets", "CopySheet");
EndProcedure
Procedure GoogleSheets_AddSheet(FunctionParameters)
Token = FunctionParameters["Google_Token"];
Spreadsheet = FunctionParameters["GS_Spreadsheet"];
Name = "TestSheet";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("spreadsheet", Spreadsheet);
Options.Insert("title", Name);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gsheets", "AddSheet", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleSheets", "AddSheet");
EndProcedure
Procedure GoogleSheets_DeleteSheet(FunctionParameters)
Token = FunctionParameters["Google_Token"];
Spreadsheet = FunctionParameters["GS_Spreadsheet"];
Sheet = FunctionParameters["GS_Sheet"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("spreadsheet", Spreadsheet);
Options.Insert("sheet", Sheet);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gsheets", "DeleteSheet", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleSheets", "DeleteSheet", , Spreadsheet);
EndProcedure
Procedure GoogleSheets_EditSpreadsheetTitle(FunctionParameters)
Token = FunctionParameters["Google_Token"];
Spreadsheet = FunctionParameters["GS_Spreadsheet"];
Name = "Test table (changed.)";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("spreadsheet", Spreadsheet);
Options.Insert("title", Name);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gsheets", "EditSpreadsheetTitle", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleSheets", "EditSpreadsheetTitle", , Spreadsheet);
EndProcedure
Procedure GoogleSheets_GetTable(FunctionParameters)
Token = FunctionParameters["Google_Token"];
Spreadsheet = FunctionParameters["GS_Spreadsheet"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("spreadsheet", Spreadsheet);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gsheets", "GetSpreadsheet", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleSheets", "GetTable");
EndProcedure
Procedure GoogleSheets_SetCellValues(FunctionParameters)
Token = FunctionParameters["Google_Token"];
Spreadsheet = FunctionParameters["GS_Spreadsheet"];
Sheet = "Sheet2";
ValueMapping = New Map;
ValueMapping.Insert("A1", "ThisIsA1");
ValueMapping.Insert("A2", "ThisIsA2");
ValueMapping.Insert("B2", "ThisIsB2");
ValueMapping.Insert("B3", "ThisIsB3");
ValueMapping.Insert("A3", "ThisIsA3");
ValueMapping.Insert("A4", "ThisIsA4");
ValueMapping.Insert("B1", "ThisIsB1");
ValueMapping.Insert("B4", "ThisIsB4");
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("spreadsheet", Spreadsheet);
Options.Insert("data", ValueMapping);
Options.Insert("sheetname", Sheet);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gsheets", "SetCellValues", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleSheets", "SetCellValues", , ValueMapping.Count());
EndProcedure
Procedure GoogleSheets_GetCellValues(FunctionParameters)
Token = FunctionParameters["Google_Token"];
Spreadsheet = FunctionParameters["GS_Spreadsheet"];
Sheet = "Sheet2";
CellsArray = New Array;
CellsArray.Add("B2");
CellsArray.Add("A3");
CellsArray.Add("B4");
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("spreadsheet", Spreadsheet);
Options.Insert("cells", CellsArray);
Options.Insert("sheetname", Sheet);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gsheets", "GetCellValues", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleSheets", "GetCellValues", , CellsArray.Count());
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("spreadsheet", Spreadsheet);
Options.Insert("sheetname", Sheet);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gsheets", "GetCellValues", Options);
OPI_TestDataRetrieval.Process(Result, "GoogleSheets", "GetCellValues", "All", Spreadsheet);
EndProcedure
Procedure GoogleSheets_ClearCells(FunctionParameters)
Token = FunctionParameters["Google_Token"];
Spreadsheet = FunctionParameters["GS_Spreadsheet"];
Sheet = "Sheet2";
CellsArray = New Array;
CellsArray.Add("B2");
CellsArray.Add("A3");
CellsArray.Add("B4");
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("spreadsheet", Spreadsheet);
Options.Insert("cells", CellsArray);
Options.Insert("sheetname", Sheet);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("gsheets", "ClearCells", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleSheets", "ClearCells", , CellsArray.Count());
EndProcedure
#EndRegion // GoogleSheets
#EndRegion // AtomicTests
#EndRegion // Private
#Region Alternate
Procedure ГТ_Авторизация() Export
GT_Authorization();
EndProcedure
Procedure ГТ_СоздатьТаблицу() Export
GT_CreateTable();
EndProcedure
Procedure ГТ_ЗаполнитьОчиститьЯчейки() Export
GT_FillClearCells();
EndProcedure
#EndRegion
+221
View File
@@ -0,0 +1,221 @@
// OneScript: ./OInt/tests/Modules/OPItc_GoogleWorkspace.os
// MIT License
// Copyright (c) 2023-2026 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
// Test suite for YAxUnit
// BSLLS:Typo-off
// BSLLS:LatinAndCyrillicSymbolInWord-off
// BSLLS:IncorrectLineBreak-off
// BSLLS:UsingServiceTag-off
// BSLLS:UnusedParameters-off
// BSLLS:DuplicateStringLiteral-off
// BSLLS:UsingHardcodePath-off
// BSLLS:UnusedLocalVariable-off
// BSLLS:DeprecatedMessage-off
// BSLLS:LineLength-off
// BSLLS:MagicNumber-off
// BSLLS:CommentedCode-off
// BSLLS:AssignAliasFieldsInQuery-off
// BSLLS:UsingHardcodeNetworkAddress-off
// BSLLS:UnreachableCode-off
// BSLLS:UnusedLocalMethod-off
// BSLLS:NestedFunctionInParameters-off
// BSLLS:MissingTemporaryFileDeletion-off
// BSLLS:UsingSynchronousCalls-off
// BSLLS:MagicNumber-off
// BSLLS:MagicDate-off
// BSLLS:MissingParameterDescription-off
// BSLLS:NumberOfOptionalParams-off
// BSLLS:MethodSize-off
// BSLLS:NestedConstructorsInStructureDeclaration-off
// BSLLS:NumberOfValuesInStructureConstructor-off
// BSLLS:UsingHardcodeSecretInformation-off
// BSLLS:SpaceAtStartComment-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
//@skip-check module-unused-local-variable
//@skip-check bsl-legacy-check-string-literal
//@skip-check bsl-legacy-check-method-for-statements-after-return
//@skip-check missing-temporary-file-deletion
//@skip-check module-unused-method
#Use "../../tools/main"
#Use "../../tools/http"
#Use "../../api"
#Use asserts
#Use "internal"
// For YAxUnit
Procedure ИсполняемыеСценарии() Export
OPI_TestDataRetrieval.FormYAXTests("GoogleWorkspace");
EndProcedure
// For Asserts
Function ПолучитьСписокТестов(UnitTesting) Export
Return OPI_TestDataRetrieval.FormAssertsTests("GoogleWorkspace");
EndFunction
#Region Internal
#Region RunnableTests
#Region GoogleWorkspace
Procedure GW_Auth() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Google_ClientID" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Google_ClientSecret", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Google_Code" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Google_Refresh" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Google_ServiceData" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Access_Token" , TestParameters);
GoogleWorkspace_FormCodeRetrievalLink(TestParameters);
GoogleWorkspace_GetTokenByCode(TestParameters);
GoogleWorkspace_RefreshToken(TestParameters);
GoogleWorkspace_GetServiceAccountToken(TestParameters);
EndProcedure
#EndRegion // GoogleWorkspace
#EndRegion // RunnableTests
#EndRegion // Internal
#Region Private
#Region AtomicTests
#Region GoogleWorkspace
Procedure GoogleWorkspace_FormCodeRetrievalLink(FunctionParameters)
ClientID = FunctionParameters["Google_ClientID"];
Options = New Structure;
Options.Insert("id", ClientID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("google", "FormCodeRetrievalLink", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleWorkspace", "FormCodeRetrievalLink");
EndProcedure
Procedure GoogleWorkspace_GetTokenByCode(FunctionParameters)
ClientID = FunctionParameters["Google_ClientID"];
ClientSecret = FunctionParameters["Google_ClientSecret"];
Code = FunctionParameters["Google_Code"];
Options = New Structure;
Options.Insert("id", ClientID);
Options.Insert("secret", ClientSecret);
Options.Insert("code", Code);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("google", "GetTokenByCode", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleWorkspace", "GetTokenByCode");
EndProcedure
Procedure GoogleWorkspace_RefreshToken(FunctionParameters)
ClientID = FunctionParameters["Google_ClientID"];
ClientSecret = FunctionParameters["Google_ClientSecret"];
RefreshToken = FunctionParameters["Google_Refresh"];
Options = New Structure;
Options.Insert("id", ClientID);
Options.Insert("secret", ClientSecret);
Options.Insert("refresh", RefreshToken);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("google", "RefreshToken", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleWorkspace", "RefreshToken");
EndProcedure
Procedure GoogleWorkspace_GetServiceAccountToken(FunctionParameters)
Data = FunctionParameters["Google_ServiceData"]; // URL, binary Data, file or collection
Token = FunctionParameters["Access_Token"]; // SKIP
Data = OPI_HTTPRequests // SKIP
.NewRequest() // SKIP
.Initialize(Data) // SKIP
.AddBearerAuthorization(Token) // SKIP
.ProcessRequest("GET") // SKIP
.ReturnResponseAsBinaryData(); // SKIP
Scope = New Array;
Scope.Add("https://www.googleapis.com/auth/calendar");
Scope.Add("https://www.googleapis.com/auth/drive");
Scope.Add("https://www.googleapis.com/auth/spreadsheets");
Options = New Structure;
Options.Insert("auth", Data);
Options.Insert("scope", Scope);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("google", "GetServiceAccountToken", Options);
// END
OPI_TestDataRetrieval.Process(Result, "GoogleWorkspace", "GetServiceAccountToken");
EndProcedure
#EndRegion // GoogleWorkspace
#EndRegion // AtomicTests
#EndRegion // Private
#Region Alternate
Procedure ГВ_Авторизация() Export
GW_Auth();
EndProcedure
#EndRegion
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+323
View File
@@ -0,0 +1,323 @@
// OneScript: ./OInt/tests/Modules/OPItc_Neocities.os
// MIT License
// Copyright (c) 2023-2026 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
// Test suite for YAxUnit
// BSLLS:Typo-off
// BSLLS:LatinAndCyrillicSymbolInWord-off
// BSLLS:IncorrectLineBreak-off
// BSLLS:UsingServiceTag-off
// BSLLS:UnusedParameters-off
// BSLLS:DuplicateStringLiteral-off
// BSLLS:UsingHardcodePath-off
// BSLLS:UnusedLocalVariable-off
// BSLLS:DeprecatedMessage-off
// BSLLS:LineLength-off
// BSLLS:MagicNumber-off
// BSLLS:CommentedCode-off
// BSLLS:AssignAliasFieldsInQuery-off
// BSLLS:UsingHardcodeNetworkAddress-off
// BSLLS:UnreachableCode-off
// BSLLS:UnusedLocalMethod-off
// BSLLS:NestedFunctionInParameters-off
// BSLLS:MissingTemporaryFileDeletion-off
// BSLLS:UsingSynchronousCalls-off
// BSLLS:MagicNumber-off
// BSLLS:MagicDate-off
// BSLLS:MissingParameterDescription-off
// BSLLS:NumberOfOptionalParams-off
// BSLLS:MethodSize-off
// BSLLS:NestedConstructorsInStructureDeclaration-off
// BSLLS:NumberOfValuesInStructureConstructor-off
// BSLLS:UsingHardcodeSecretInformation-off
// BSLLS:SpaceAtStartComment-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
//@skip-check module-unused-local-variable
//@skip-check bsl-legacy-check-string-literal
//@skip-check bsl-legacy-check-method-for-statements-after-return
//@skip-check missing-temporary-file-deletion
//@skip-check module-unused-method
#Use "../../tools/main"
#Use "../../tools/http"
#Use "../../api"
#Use asserts
#Use "internal"
// For YAxUnit
Procedure ИсполняемыеСценарии() Export
OPI_TestDataRetrieval.FormYAXTests("Neocities");
EndProcedure
// For Asserts
Function ПолучитьСписокТестов(UnitTesting) Export
Return OPI_TestDataRetrieval.FormAssertsTests("Neocities");
EndFunction
#Region Internal
#Region RunnableTests
#Region Neocities
Procedure NC_FilesManagement() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("NC_Token", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Picture" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Picture2", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Gif" , TestParameters);
Neocities_UploadFile(TestParameters);
Neocities_UploadFiles(TestParameters);
Neocities_GetFilesList(TestParameters);
Neocities_DeleteSelectedFiles(TestParameters);
Neocities_SynchronizeFolders(TestParameters);
EndProcedure
Procedure NC_DataRetrieving() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("NC_Token" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("NC_Login" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("NC_Password", TestParameters);
Neocities_GetSiteData(TestParameters);
Neocities_GetToken(TestParameters);
EndProcedure
#EndRegion // Neocities
#EndRegion // RunnableTests
#EndRegion // Internal
#Region Private
#Region AtomicTests
#Region Neocities
Procedure Neocities_UploadFile(FunctionParameters)
Token = FunctionParameters["NC_Token"];
Data = FunctionParameters["Picture"]; // URL, Path or Binary Data
Path = "testfolder/test_pic.png";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("path", Path);
Options.Insert("file", Data);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("neocities", "UploadFile", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Neocities", "UploadFile");
EndProcedure
Procedure Neocities_UploadFiles(FunctionParameters)
Token = FunctionParameters["NC_Token"];
Image1 = FunctionParameters["Picture"]; // URL, Path or Binary Data
Image2 = FunctionParameters["Picture2"]; // URL, Path or Binary Data
GIF = FunctionParameters["Gif"]; // URL, Path or Binary Data
FileMapping = New Map;
FileMapping.Insert("test/pic1.png", Image1);
FileMapping.Insert("test/gif.gif" , Image2);
FileMapping.Insert("pic2.png" , GIF);
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("files", FileMapping);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("neocities", "UploadFiles", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Neocities", "UploadFiles");
EndProcedure
Procedure Neocities_DeleteSelectedFiles(FunctionParameters)
Token = FunctionParameters["NC_Token"];
Paths = New Array;
Paths.Add("/test/pic1.png");
Paths.Add("/test/gif.gif");
Paths.Add("/pic2.png");
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("paths", Paths);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("neocities", "DeleteSelectedFiles", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Neocities", "DeleteSelectedFiles");
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("paths", "/testfolder");
Result = OPI_TestDataRetrieval.ExecuteTestCLI("neocities", "DeleteSelectedFiles", Options);
OPI_TestDataRetrieval.Process(Result, "Neocities", "DeleteSelectedFiles", "Directory 1");
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("paths", "/test");
Result = OPI_TestDataRetrieval.ExecuteTestCLI("neocities", "DeleteSelectedFiles", Options);
OPI_TestDataRetrieval.Process(Result, "Neocities", "DeleteSelectedFiles", "Directory 2");
EndProcedure
Procedure Neocities_GetFilesList(FunctionParameters)
Token = FunctionParameters["NC_Token"];
Path = "test";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("path", Path);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("neocities", "GetFilesList", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Neocities", "GetFilesList");
Options = New Structure;
Options.Insert("token", Token);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("neocities", "GetFilesList", Options);
OPI_TestDataRetrieval.Process(Result, "Neocities", "GetFilesList", "All");
EndProcedure
Procedure Neocities_GetSiteData(FunctionParameters)
Token = FunctionParameters["NC_Token"];
Website = "2athenaeum";
Options = New Structure;
Options.Insert("token", Token);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("neocities", "GetSiteData", Options);
OPI_TestDataRetrieval.Process(Result, "Neocities", "GetSiteData"); // SKIP
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("sitename", Website);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("neocities", "GetSiteData", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Neocities", "GetSiteData", "Website");
EndProcedure
Procedure Neocities_GetToken(FunctionParameters)
Login = FunctionParameters["NC_Login"];
Password = FunctionParameters["NC_Password"];
Options = New Structure;
Options.Insert("login", Login);
Options.Insert("password", Password);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("neocities", "GetToken", Options);
// END
Result["api_key"] = "***";
OPI_TestDataRetrieval.Process(Result, "Neocities", "GetToken");
EndProcedure
Procedure Neocities_SynchronizeFolders(FunctionParameters)
Token = FunctionParameters["NC_Token"];
LocalFolder = "C:\test_site";
RemoteFolder = "test_sync";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("local", LocalFolder);
Options.Insert("remote", RemoteFolder);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("neocities", "SynchronizeFolders", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Neocities", "SynchronizeFolders");
EndProcedure
#EndRegion // Neocities
#EndRegion // AtomicTests
#EndRegion // Private
#Region Alternate
Procedure НС_РаботаСФайлами() Export
NC_FilesManagement();
EndProcedure
Procedure НС_ПолучениеДанных() Export
NC_DataRetrieving();
EndProcedure
#EndRegion
+476
View File
@@ -0,0 +1,476 @@
// OneScript: ./OInt/tests/Modules/OPItc_Notion.os
// MIT License
// Copyright (c) 2023-2026 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
// Test suite for YAxUnit
// BSLLS:Typo-off
// BSLLS:LatinAndCyrillicSymbolInWord-off
// BSLLS:IncorrectLineBreak-off
// BSLLS:UsingServiceTag-off
// BSLLS:UnusedParameters-off
// BSLLS:DuplicateStringLiteral-off
// BSLLS:UsingHardcodePath-off
// BSLLS:UnusedLocalVariable-off
// BSLLS:DeprecatedMessage-off
// BSLLS:LineLength-off
// BSLLS:MagicNumber-off
// BSLLS:CommentedCode-off
// BSLLS:AssignAliasFieldsInQuery-off
// BSLLS:UsingHardcodeNetworkAddress-off
// BSLLS:UnreachableCode-off
// BSLLS:UnusedLocalMethod-off
// BSLLS:NestedFunctionInParameters-off
// BSLLS:MissingTemporaryFileDeletion-off
// BSLLS:UsingSynchronousCalls-off
// BSLLS:MagicNumber-off
// BSLLS:MagicDate-off
// BSLLS:MissingParameterDescription-off
// BSLLS:NumberOfOptionalParams-off
// BSLLS:MethodSize-off
// BSLLS:NestedConstructorsInStructureDeclaration-off
// BSLLS:NumberOfValuesInStructureConstructor-off
// BSLLS:UsingHardcodeSecretInformation-off
// BSLLS:SpaceAtStartComment-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
//@skip-check module-unused-local-variable
//@skip-check bsl-legacy-check-string-literal
//@skip-check bsl-legacy-check-method-for-statements-after-return
//@skip-check missing-temporary-file-deletion
//@skip-check module-unused-method
#Use "../../tools/main"
#Use "../../tools/http"
#Use "../../api"
#Use asserts
#Use "internal"
// For YAxUnit
Procedure ИсполняемыеСценарии() Export
OPI_TestDataRetrieval.FormYAXTests("Notion");
EndProcedure
// For Asserts
Function ПолучитьСписокТестов(UnitTesting) Export
Return OPI_TestDataRetrieval.FormAssertsTests("Notion");
EndFunction
#Region Internal
#Region RunnableTests
#Region Notion
Procedure NotionAPI_CreatePage() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Notion_Token" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Notion_Parent", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Picture" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Picture2" , TestParameters);
Notion_CreatePage(TestParameters);
Notion_GetPage(TestParameters);
Notion_EditPageProperties(TestParameters);
EndProcedure
Procedure NotionAPI_CreateUpdateBase() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Notion_Token" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Notion_Parent", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Picture" , TestParameters);
Notion_CreateDatabase(TestParameters);
Notion_EditDatabaseProperties(TestParameters);
Notion_GetDatabase(TestParameters);
Notion_CreatePageInDatabase(TestParameters);
EndProcedure
Procedure NotionAPI_CreateDeleteBlock() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Notion_Token" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Notion_Parent", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Notion_Block" , TestParameters);
Notion_ReturnBlock(TestParameters);
Notion_CreateBlock(TestParameters);
Notion_ReturnChildBlocks(TestParameters);
Notion_DeleteBlock(TestParameters);
EndProcedure
Procedure NotionAPI_GetUsers() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Notion_Token", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Notion_User" , TestParameters);
Notion_UserList(TestParameters);
Notion_GetUserData(TestParameters);
EndProcedure
#EndRegion // Notion
#EndRegion // RunnableTests
#EndRegion // Internal
#Region Private
#Region AtomicTests
#Region Notion
Procedure Notion_CreatePage(FunctionParameters)
Token = FunctionParameters["Notion_Token"];
Parent = FunctionParameters["Notion_Parent"];
Title = "TestTitle";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("page", Parent);
Options.Insert("title", Title);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("notion", "CreatePage", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Notion", "CreatePage", , FunctionParameters);
EndProcedure
Procedure Notion_CreateDatabase(FunctionParameters)
Token = FunctionParameters["Notion_Token"];
Parent = FunctionParameters["Notion_Parent"];
Title = "TestTitle";
Properties = New Map;
Properties.Insert("Name" , "title");
Properties.Insert("Description" , "rich_text");
Properties.Insert("Number" , "number");
Properties.Insert("CreationDate", "date");
Properties.Insert("Image" , "files");
Properties.Insert("Active" , "checkbox");
Properties.Insert("Website" , "url");
Properties.Insert("Email" , "email");
Properties.Insert("Phone" , "phone_number");
Properties.Insert("User" , "people");
ValueSelection = New Map;
ValueSelection.Insert("New" , "green");
ValueSelection.Insert("InProgress" , "yellow");
ValueSelection.Insert("Remote" , "red");
Properties.Insert("Status", ValueSelection);
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("page", Parent);
Options.Insert("title", Title);
Options.Insert("props", Properties);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("notion", "CreateDatabase", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Notion", "CreateDatabase", , FunctionParameters);
EndProcedure
Procedure Notion_EditDatabaseProperties(FunctionParameters)
Token = FunctionParameters["Notion_Token"];
Base = FunctionParameters["Notion_Base"];
Title = "TestTitle";
Description = "TestDescription";
Properties = New Map;
Properties.Insert("Email", "rich_text"); // Type fields "Email" will changed with email to text
Properties.Insert("Website"); // Field "Website" will deleted
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("base", Base);
Options.Insert("props", Properties);
Options.Insert("title", Title);
Options.Insert("description", Description);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("notion", "EditDatabaseProperties", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Notion", "EditDatabaseProperties");
EndProcedure
Procedure Notion_GetPage(FunctionParameters)
Token = FunctionParameters["Notion_Token"];
Page = FunctionParameters["Notion_Page"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("page", Page);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("notion", "GetPage", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Notion", "GetPage");
EndProcedure
Procedure Notion_GetDatabase(FunctionParameters)
Token = FunctionParameters["Notion_Token"];
Base = FunctionParameters["Notion_Base"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("base", Base);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("notion", "GetDatabase", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Notion", "GetDatabase");
EndProcedure
Procedure Notion_CreatePageInDatabase(FunctionParameters)
Token = FunctionParameters["Notion_Token"];
Base = FunctionParameters["Notion_Base"];
Image_ = FunctionParameters["Picture"]; // URL, Binary Data or File path
Image = New Map;
Image.Insert("Logo", Image_);
Properties = New Map;
Properties.Insert("Name" , "LLC Vector");
Properties.Insert("Description" , "OurFirstClient");
Properties.Insert("Number" , 1);
Properties.Insert("CreationDate", OPI_Tools.GetCurrentDate());
Properties.Insert("Image" , Image);
Properties.Insert("Active" , True);
Properties.Insert("Website" , "https://vector.ru");
Properties.Insert("Email" , "mail@vector.ru");
Properties.Insert("Phone" , "88005553535");
Properties.Insert("Status" , "New");
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("base", Base);
Options.Insert("data", Properties);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("notion", "CreatePageInDatabase", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Notion", "CreatePageInDatabase", , Base);
EndProcedure
Procedure Notion_EditPageProperties(FunctionParameters)
Token = FunctionParameters["Notion_Token"];
Page = FunctionParameters["Notion_Page"];
Icon = FunctionParameters["Picture"];
Cover = FunctionParameters["Picture2"];
Archive = False;
Properties = New Map;
Properties.Insert("Active", False);
Properties.Insert("Email" , "vector@mail.ru");
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("page", Page);
Options.Insert("data", Properties);
Options.Insert("icon", Icon);
Options.Insert("cover", Cover);
Options.Insert("archive", Archive);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("notion", "EditPageProperties", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Notion", "EditPageProperties");
EndProcedure
Procedure Notion_ReturnBlock(FunctionParameters)
Token = FunctionParameters["Notion_Token"];
Block = FunctionParameters["Notion_Block"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("block", Block);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("notion", "ReturnBlock", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Notion", "ReturnBlock");
EndProcedure
Procedure Notion_CreateBlock(FunctionParameters)
Token = FunctionParameters["Notion_Token"];
Parent = FunctionParameters["Notion_Parent"];
Block = FunctionParameters["Notion_Block"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("block", Block);
BlockData = OPI_TestDataRetrieval.ExecuteTestCLI("notion", "ReturnBlock", Options);
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("page", Parent);
Options.Insert("block", BlockData);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("notion", "CreateBlock", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Notion", "CreateBlock", , FunctionParameters);
EndProcedure
Procedure Notion_ReturnChildBlocks(FunctionParameters)
Token = FunctionParameters["Notion_Token"];
Block = FunctionParameters["Notion_NewBlock"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("block", Block);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("notion", "ReturnChildBlocks", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Notion", "ReturnChildBlocks");
EndProcedure
Procedure Notion_DeleteBlock(FunctionParameters)
Token = FunctionParameters["Notion_Token"];
Block = FunctionParameters["Notion_NewBlock"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("block", Block);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("notion", "DeleteBlock", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Notion", "DeleteBlock");
EndProcedure
Procedure Notion_UserList(FunctionParameters)
Token = FunctionParameters["Notion_Token"];
Options = New Structure;
Options.Insert("token", Token);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("notion", "UserList", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Notion", "UserList");
EndProcedure
Procedure Notion_GetUserData(FunctionParameters)
Token = FunctionParameters["Notion_Token"];
User = FunctionParameters["Notion_User"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("user", User);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("notion", "GetUserData", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Notion", "GetUserData");
EndProcedure
#EndRegion // Notion
#EndRegion // AtomicTests
#EndRegion // Private
#Region Alternate
Procedure НоушнАпи_СоздатьСтраницу() Export
NotionAPI_CreatePage();
EndProcedure
Procedure НоушнАпи_СоздатьИзменитьБазу() Export
NotionAPI_CreateUpdateBase();
EndProcedure
Procedure НоушнАпи_СоздатьУдалитьБлок() Export
NotionAPI_CreateDeleteBlock();
EndProcedure
Procedure НоушнАпи_ПолучитьПользователей() Export
NotionAPI_GetUsers();
EndProcedure
#EndRegion
+818
View File
@@ -0,0 +1,818 @@
// OneScript: ./OInt/tests/Modules/OPItc_Ollama.os
// MIT License
// Copyright (c) 2023-2026 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
// Test suite for YAxUnit
// BSLLS:Typo-off
// BSLLS:LatinAndCyrillicSymbolInWord-off
// BSLLS:IncorrectLineBreak-off
// BSLLS:UsingServiceTag-off
// BSLLS:UnusedParameters-off
// BSLLS:DuplicateStringLiteral-off
// BSLLS:UsingHardcodePath-off
// BSLLS:UnusedLocalVariable-off
// BSLLS:DeprecatedMessage-off
// BSLLS:LineLength-off
// BSLLS:MagicNumber-off
// BSLLS:CommentedCode-off
// BSLLS:AssignAliasFieldsInQuery-off
// BSLLS:UsingHardcodeNetworkAddress-off
// BSLLS:UnreachableCode-off
// BSLLS:UnusedLocalMethod-off
// BSLLS:NestedFunctionInParameters-off
// BSLLS:MissingTemporaryFileDeletion-off
// BSLLS:UsingSynchronousCalls-off
// BSLLS:MagicNumber-off
// BSLLS:MagicDate-off
// BSLLS:MissingParameterDescription-off
// BSLLS:NumberOfOptionalParams-off
// BSLLS:MethodSize-off
// BSLLS:NestedConstructorsInStructureDeclaration-off
// BSLLS:NumberOfValuesInStructureConstructor-off
// BSLLS:UsingHardcodeSecretInformation-off
// BSLLS:SpaceAtStartComment-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
//@skip-check module-unused-local-variable
//@skip-check bsl-legacy-check-string-literal
//@skip-check bsl-legacy-check-method-for-statements-after-return
//@skip-check missing-temporary-file-deletion
//@skip-check module-unused-method
#Use "../../tools/main"
#Use "../../tools/http"
#Use "../../api"
#Use asserts
#Use "internal"
// For YAxUnit
Procedure ИсполняемыеСценарии() Export
OPI_TestDataRetrieval.FormYAXTests("Ollama");
EndProcedure
// For Asserts
Function ПолучитьСписокТестов(UnitTesting) Export
Return OPI_TestDataRetrieval.FormAssertsTests("Ollama");
EndFunction
#Region Internal
#Region RunnableTests
#Region Ollama
Procedure OLLM_RequestsProcessing() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Ollama_URL" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Ollama_Token", TestParameters);
Ollama_PullModel(TestParameters);
Ollama_GetVersion(TestParameters);
Ollama_GetResponse(TestParameters);
Ollama_GetContextResponse(TestParameters);
Ollama_GetEmbeddings(TestParameters);
Ollama_GetRequestParameterStructure(TestParameters);
Ollama_GetContextParameterStructure(TestParameters);
Ollama_GetContextMessageStructure(TestParameters);
Ollama_GetEmbeddingsParameterStructure(TestParameters);
EndProcedure
Procedure OLLM_ModelsManagement() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Ollama_URL" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Ollama_Token", TestParameters);
Ollama_PullModel(TestParameters);
Ollama_LoadModelToMemory(TestParameters);
Ollama_UnloadModelFromMemory(TestParameters);
Ollama_CreateModel(TestParameters);
Ollama_GetModelInformation(TestParameters);
Ollama_GetModelList(TestParameters);
Ollama_ListRunningModels(TestParameters);
Ollama_CopyModel(TestParameters);
Ollama_PushModel(TestParameters);
Ollama_GetModelSettingsStructure(TestParameters);
Ollama_DeleteModel(TestParameters);
EndProcedure
Procedure OLLM_WorkingWithBlob() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Ollama_URL" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Ollama_Token", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Picture" , TestParameters);
Ollama_PushBlob(TestParameters);
Ollama_CheckBlob(TestParameters);
EndProcedure
#EndRegion // Ollama
#EndRegion // RunnableTests
#EndRegion // Internal
#Region Private
#Region AtomicTests
#Region Ollama
Procedure Ollama_GetResponse(FunctionParameters)
URL = FunctionParameters["Ollama_URL"];
Token = FunctionParameters["Ollama_Token"]; // Authorization - not part API Ollama
Prompt = "What is 1C:Enterprise?";
Model = "tinyllama";
AdditionalHeaders = New Map;
AdditionalHeaders.Insert("Authorization", StrTemplate("Bearer %1", Token));
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("model", Model);
Options.Insert("prompt", Prompt);
Options.Insert("headers", AdditionalHeaders);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "GetResponse", Options);
OPI_TestDataRetrieval.Process(Result, "Ollama", "GetResponse"); // SKIP
// With paramether
Prompt = "Ollama is 22 years old and is busy saving the world. Respond using JSON";
Format = OPI_Tools.JSONToStructure("
|{
|""type"": ""object"",
|""properties"": {
| ""age"": {
| ""type"": ""integer""
| },
| ""available"": {
| ""type"": ""boolean""
| }
|},
|""required"": [
| ""age"",
| ""available""
|]
|}");
AdditionalParameters = New Structure("format", Format);
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("model", Model);
Options.Insert("prompt", Prompt);
Options.Insert("options", AdditionalParameters);
Options.Insert("headers", AdditionalHeaders);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "GetResponse", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Ollama", "GetResponse", "Parameters");
EndProcedure
Procedure Ollama_GetContextResponse(FunctionParameters)
URL = FunctionParameters["Ollama_URL"];
Token = FunctionParameters["Ollama_Token"]; // Authorization - not part API Ollama
AdditionalHeaders = New Map;
AdditionalHeaders.Insert("Authorization", StrTemplate("Bearer %1", Token));
Model = "tinyllama";
MessagesArray = New Array;
Options = New Structure;
Options.Insert("role", "user");
Options.Insert("text", "What is 1C:Enterprise?");
Question1 = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "GetContextMessageStructure", Options);
Question2 = OPI_Ollama.GetContextMessageStructure("user", "When the first version was released?"); // Question without specifics
// Adding the first question to the context
MessagesArray.Add(Question1);
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("model", Model);
Options.Insert("msgs", MessagesArray);
Options.Insert("headers", AdditionalHeaders);
Response1 = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "GetContextResponse", Options);
OPI_TestDataRetrieval.Process(Response1, "Ollama", "GetContextResponse", "Preliminary"); // SKIP
MessagesArray.Add(Response1["message"]); // Add response to first question in context
MessagesArray.Add(Question2); // Add second question in context
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("model", Model);
Options.Insert("msgs", MessagesArray);
Options.Insert("headers", AdditionalHeaders);
Response2 = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "GetContextResponse", Options);
MessagesArray.Add(Response2["message"]);
// ...
// END
OPI_TestDataRetrieval.Process(Response2, "Ollama", "GetContextResponse");
MessagesArray = New Array;
Question = New Structure("role,content", "user", "Hello!");
MessagesArray.Add(Question);
Options = New Structure("seed,temperature", 101, 0);
AdditionalParameters = New Structure("options", Options);
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("model", Model);
Options.Insert("msgs", MessagesArray);
Options.Insert("options", AdditionalParameters);
Options.Insert("headers", AdditionalHeaders);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "GetContextResponse", Options);
OPI_TestDataRetrieval.Process(Result, "Ollama", "GetContextResponse", "Seed 1");
Message1 = Result["message"]["content"];
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("model", Model);
Options.Insert("msgs", MessagesArray);
Options.Insert("options", AdditionalParameters);
Options.Insert("headers", AdditionalHeaders);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "GetContextResponse", Options);
OPI_TestDataRetrieval.Process(Result, "Ollama", "GetContextResponse", "Seed 2");
Message2 = Result["message"]["content"];
Options = New Structure("seed,temperature", 555, 10);
AdditionalParameters = New Structure("options", Options);
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("model", Model);
Options.Insert("msgs", MessagesArray);
Options.Insert("options", AdditionalParameters);
Options.Insert("headers", AdditionalHeaders);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "GetContextResponse", Options);
OPI_TestDataRetrieval.Process(Result, "Ollama", "GetContextResponse", "Seed 3");
Message3 = Result["message"]["content"];
OPI_TestDataRetrieval.Process(Message3, "Ollama", "GetContextResponse", "Comparison", Message1, Message2, Message3);
EndProcedure
Procedure Ollama_LoadModelToMemory(FunctionParameters)
URL = FunctionParameters["Ollama_URL"];
Token = FunctionParameters["Ollama_Token"]; // Authorization - not part API Ollama
Model = "tinyllama";
Period = 500;
AdditionalHeaders = New Map;
AdditionalHeaders.Insert("Authorization", StrTemplate("Bearer %1", Token));
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("model", Model);
Options.Insert("keep", Period);
Options.Insert("headers", AdditionalHeaders);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "LoadModelToMemory", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Ollama", "LoadModelToMemory");
EndProcedure
Procedure Ollama_UnloadModelFromMemory(FunctionParameters)
URL = FunctionParameters["Ollama_URL"];
Token = FunctionParameters["Ollama_Token"]; // Authorization - not part API Ollama
Model = "tinyllama";
AdditionalHeaders = New Map;
AdditionalHeaders.Insert("Authorization", StrTemplate("Bearer %1", Token));
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("model", Model);
Options.Insert("headers", AdditionalHeaders);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "UnloadModelFromMemory", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Ollama", "UnloadModelFromMemory");
EndProcedure
Procedure Ollama_GetRequestParameterStructure(FunctionParameters)
Options = New Structure;
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "GetRequestParameterStructure", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Ollama", "GetRequestParameterStructure");
Options = New Structure;
Options.Insert("empty", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "GetRequestParameterStructure", Options);
OPI_TestDataRetrieval.Process(Result, "Ollama", "GetRequestParameterStructure", "Clear");
EndProcedure
Procedure Ollama_GetContextParameterStructure(FunctionParameters)
Options = New Structure;
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "GetContextParameterStructure", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Ollama", "GetContextParameterStructure");
Options = New Structure;
Options.Insert("empty", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "GetContextParameterStructure", Options);
OPI_TestDataRetrieval.Process(Result, "Ollama", "GetContextParameterStructure", "Clear");
EndProcedure
Procedure Ollama_GetContextMessageStructure(FunctionParameters)
Options = New Structure;
Options.Insert("role", "user");
Options.Insert("text", "Hello!");
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "GetContextMessageStructure", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Ollama", "GetContextMessageStructure");
EndProcedure
Procedure Ollama_GetModelSettingsStructure(FunctionParameters)
Options = New Structure;
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "GetModelSettingsStructure", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Ollama", "GetModelSettingsStructure");
Options = New Structure;
Options.Insert("empty", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "GetModelSettingsStructure", Options);
OPI_TestDataRetrieval.Process(Result, "Ollama", "GetModelSettingsStructure", "Clear");
EndProcedure
Procedure Ollama_CreateModel(FunctionParameters)
URL = FunctionParameters["Ollama_URL"];
Token = FunctionParameters["Ollama_Token"]; // Authorization - not part API Ollama
Model = "mario";
AdditionalHeaders = New Map;
AdditionalHeaders.Insert("Authorization", StrTemplate("Bearer %1", Token));
Settings = New Structure("from,system", "tinyllama", "You are Mario from Super Mario Bros.");
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("model", Model);
Options.Insert("settings", Settings);
Options.Insert("headers", AdditionalHeaders);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "CreateModel", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Ollama", "CreateModel");
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("model", Model);
Options.Insert("prompt", "How are you?");
Options.Insert("headers", AdditionalHeaders);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "GetResponse", Options);
OPI_TestDataRetrieval.Process(Result, "Ollama", "CreateModel", "Request");
EndProcedure
Procedure Ollama_DeleteModel(FunctionParameters)
URL = FunctionParameters["Ollama_URL"];
Token = FunctionParameters["Ollama_Token"]; // Authorization - not part API Ollama
Model = "mario";
AdditionalHeaders = New Map;
AdditionalHeaders.Insert("Authorization", StrTemplate("Bearer %1", Token));
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("model", Model);
Options.Insert("headers", AdditionalHeaders);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "DeleteModel", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Ollama", "DeleteModel");
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("model", "library/tinyllama:latest");
Options.Insert("headers", AdditionalHeaders);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "DeleteModel", Options);
OPI_TestDataRetrieval.Process(Result, "Ollama", "DeleteModel", "Tiny");
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("model", "bayselonarrend/tinyllama:latest");
Options.Insert("headers", AdditionalHeaders);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "DeleteModel", Options);
OPI_TestDataRetrieval.Process(Result, "Ollama", "DeleteModel", "Tiny, account");
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("headers", AdditionalHeaders);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "GetModelList", Options);
OPI_TestDataRetrieval.Process(Result, "Ollama", "DeleteModel", "List");
EndProcedure
Procedure Ollama_GetModelList(FunctionParameters)
URL = FunctionParameters["Ollama_URL"];
Token = FunctionParameters["Ollama_Token"]; // Authorization - not part API Ollama
AdditionalHeaders = New Map;
AdditionalHeaders.Insert("Authorization", StrTemplate("Bearer %1", Token));
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("headers", AdditionalHeaders);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "GetModelList", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Ollama", "GetModelList");
EndProcedure
Procedure Ollama_ListRunningModels(FunctionParameters)
URL = FunctionParameters["Ollama_URL"];
Token = FunctionParameters["Ollama_Token"]; // Authorization - not part API Ollama
AdditionalHeaders = New Map;
AdditionalHeaders.Insert("Authorization", StrTemplate("Bearer %1", Token));
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("headers", AdditionalHeaders);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "ListRunningModels", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Ollama", "ListRunningModels");
EndProcedure
Procedure Ollama_GetModelInformation(FunctionParameters)
URL = FunctionParameters["Ollama_URL"];
Token = FunctionParameters["Ollama_Token"]; // Authorization - not part API Ollama
Model = "mario";
AdditionalHeaders = New Map;
AdditionalHeaders.Insert("Authorization", StrTemplate("Bearer %1", Token));
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("model", Model);
Options.Insert("verbose", Ложь);
Options.Insert("headers", AdditionalHeaders);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "GetModelInformation", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Ollama", "GetModelInformation");
EndProcedure
Procedure Ollama_CopyModel(FunctionParameters)
URL = FunctionParameters["Ollama_URL"];
Token = FunctionParameters["Ollama_Token"]; // Authorization - not part API Ollama
Model = "mario";
Name = "mario2";
AdditionalHeaders = New Map;
AdditionalHeaders.Insert("Authorization", StrTemplate("Bearer %1", Token));
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("model", Model);
Options.Insert("name", Name);
Options.Insert("headers", AdditionalHeaders);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "CopyModel", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Ollama", "CopyModel");
OPI_Ollama.DeleteModel(URL, Name, AdditionalHeaders);
EndProcedure
Procedure Ollama_GetVersion(FunctionParameters)
URL = FunctionParameters["Ollama_URL"];
Token = FunctionParameters["Ollama_Token"]; // Authorization - not part API Ollama
AdditionalHeaders = New Map;
AdditionalHeaders.Insert("Authorization", StrTemplate("Bearer %1", Token));
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("headers", AdditionalHeaders);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "GetVersion", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Ollama", "GetVersion");
EndProcedure
Procedure Ollama_GetEmbeddings(FunctionParameters)
URL = FunctionParameters["Ollama_URL"];
Token = FunctionParameters["Ollama_Token"]; // Authorization - not part API Ollama
StingsArray = New Array;
StingsArray.Add("Why is the sky blue?");
StingsArray.Add("Why is the grass green?");
Model = "tinyllama";
AdditionalHeaders = New Map;
AdditionalHeaders.Insert("Authorization", StrTemplate("Bearer %1", Token));
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("model", Model);
Options.Insert("input", StingsArray);
Options.Insert("headers", AdditionalHeaders);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "GetEmbeddings", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Ollama", "GetEmbeddings");
EndProcedure
Procedure Ollama_GetEmbeddingsParameterStructure(FunctionParameters)
Options = New Structure;
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "GetEmbeddingsParameterStructure", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Ollama", "GetEmbeddingsParameterStructure");
Options = New Structure;
Options.Insert("empty", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "GetEmbeddingsParameterStructure", Options);
OPI_TestDataRetrieval.Process(Result, "Ollama", "GetEmbeddingsParameterStructure", "Clear");
EndProcedure
Procedure Ollama_PushModel(FunctionParameters)
URL = FunctionParameters["Ollama_URL"];
Token = FunctionParameters["Ollama_Token"]; // Authorization - not part API Ollama
Model = "bayselonarrend/tinyllama:latest";
AdditionalHeaders = New Map;
AdditionalHeaders.Insert("Authorization", StrTemplate("Bearer %1", Token));
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("model", Model);
Options.Insert("headers", AdditionalHeaders);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "PushModel", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Ollama", "PushModel");
EndProcedure
Procedure Ollama_PullModel(FunctionParameters)
URL = FunctionParameters["Ollama_URL"];
Token = FunctionParameters["Ollama_Token"]; // Authorization - not part API Ollama
Model = "tinyllama";
AdditionalHeaders = New Map;
AdditionalHeaders.Insert("Authorization", StrTemplate("Bearer %1", Token));
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("model", Model);
Options.Insert("headers", AdditionalHeaders);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "PullModel", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Ollama", "PullModel");
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("model", "bayselonarrend/tinyllama:latest");
Options.Insert("headers", AdditionalHeaders);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "PullModel", Options);
OPI_TestDataRetrieval.Process(Result, "Ollama", "PullModel", "Account");
EndProcedure
Procedure Ollama_PushBlob(FunctionParameters)
URL = FunctionParameters["Ollama_URL"];
Token = FunctionParameters["Ollama_Token"]; // Authorization - not part API Ollama
Image = FunctionParameters["Picture"]; // URL, Path or Binary Data
OPI_TypeConversion.GetBinaryData(Image, True); // SKIP
Random = GetBinaryDataFromString(String(New UUID)); // SKIP
Image = OPI_Tools.MergeData(Image, Random); // SKIP
AdditionalHeaders = New Map;
AdditionalHeaders.Insert("Authorization", StrTemplate("Bearer %1", Token));
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("data", Image);
Options.Insert("headers", AdditionalHeaders);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "PushBlob", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Ollama", "PushBlob", , FunctionParameters);
EndProcedure
Procedure Ollama_CheckBlob(FunctionParameters)
URL = FunctionParameters["Ollama_URL"];
Token = FunctionParameters["Ollama_Token"]; // Authorization - not part API Ollama
SHA256 = FunctionParameters["Ollama_Blob"];
AdditionalHeaders = New Map;
AdditionalHeaders.Insert("Authorization", StrTemplate("Bearer %1", Token));
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("digest", SHA256);
Options.Insert("headers", AdditionalHeaders);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "CheckBlob", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Ollama", "CheckBlob");
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("digest", "yoyoyo");
Options.Insert("headers", AdditionalHeaders);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ollama", "CheckBlob", Options);
OPI_TestDataRetrieval.Process(Result, "Ollama", "CheckBlob", "Error");
EndProcedure
#EndRegion // Ollama
#EndRegion // AtomicTests
#EndRegion // Private
#Region Alternate
Procedure OLLM_ОбработкаЗапросов() Export
OLLM_RequestsProcessing();
EndProcedure
Procedure OLLM_РаботаСМоделями() Export
OLLM_ModelsManagement();
EndProcedure
Procedure OLLM_РаботаСBlob() Export
OLLM_WorkingWithBlob();
EndProcedure
#EndRegion
+682
View File
@@ -0,0 +1,682 @@
// OneScript: ./OInt/tests/Modules/OPItc_OpenAI.os
// MIT License
// Copyright (c) 2023-2026 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
// Test suite for YAxUnit
// BSLLS:Typo-off
// BSLLS:LatinAndCyrillicSymbolInWord-off
// BSLLS:IncorrectLineBreak-off
// BSLLS:UsingServiceTag-off
// BSLLS:UnusedParameters-off
// BSLLS:DuplicateStringLiteral-off
// BSLLS:UsingHardcodePath-off
// BSLLS:UnusedLocalVariable-off
// BSLLS:DeprecatedMessage-off
// BSLLS:LineLength-off
// BSLLS:MagicNumber-off
// BSLLS:CommentedCode-off
// BSLLS:AssignAliasFieldsInQuery-off
// BSLLS:UsingHardcodeNetworkAddress-off
// BSLLS:UnreachableCode-off
// BSLLS:UnusedLocalMethod-off
// BSLLS:NestedFunctionInParameters-off
// BSLLS:MissingTemporaryFileDeletion-off
// BSLLS:UsingSynchronousCalls-off
// BSLLS:MagicNumber-off
// BSLLS:MagicDate-off
// BSLLS:MissingParameterDescription-off
// BSLLS:NumberOfOptionalParams-off
// BSLLS:MethodSize-off
// BSLLS:NestedConstructorsInStructureDeclaration-off
// BSLLS:NumberOfValuesInStructureConstructor-off
// BSLLS:UsingHardcodeSecretInformation-off
// BSLLS:SpaceAtStartComment-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
//@skip-check module-unused-local-variable
//@skip-check bsl-legacy-check-string-literal
//@skip-check bsl-legacy-check-method-for-statements-after-return
//@skip-check missing-temporary-file-deletion
//@skip-check module-unused-method
#Use "../../tools/main"
#Use "../../tools/http"
#Use "../../api"
#Use asserts
#Use "internal"
// For YAxUnit
Procedure ИсполняемыеСценарии() Export
OPI_TestDataRetrieval.FormYAXTests("OpenAI");
EndProcedure
// For Asserts
Function ПолучитьСписокТестов(UnitTesting) Export
Return OPI_TestDataRetrieval.FormAssertsTests("OpenAI");
EndFunction
#Region Internal
#Region RunnableTests
#Region OpenAI
Procedure OAI_RequestsProcessing() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("OpenAI_Token" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("OpenAI_URL" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("OpenAI_Token2" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("OpenAI_URL2" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("OpenAI_File" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Picture" , TestParameters);
OpenAI_GetResponse(TestParameters);
OpenAI_GetEmbeddings(TestParameters);
OpenAI_GetMessageStructure(TestParameters);
OpenAI_GetImageMessageStructure(TestParameters);
OpenAI_GetImages(TestParameters);
OpenAI_GetAssistantMessage(TestParameters);
OpenAI_GetUserMessage(TestParameters);
OpenAI_GetSystemMessage(TestParameters);
EndProcedure
Procedure OAI_Assistants() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("OpenAI_Token" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("OpenAI_URL" , TestParameters);
OpenAI_CreateAssistant(TestParameters);
OpenAI_RetrieveAssistant(TestParameters);
OpenAI_GetAssistantsList(TestParameters);
OpenAI_DeleteAssistant(TestParameters);
EndProcedure
Procedure OAI_FileManagement() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("OpenAI_Token" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("OpenAI_URL" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Picture" , TestParameters);
OpenAI_UploadFile(TestParameters);
OpenAI_GetFileInformation(TestParameters);
OpenAI_GetFilesList(TestParameters);
OpenAI_DownloadFile(TestParameters);
OpenAI_DeleteFile(TestParameters);
EndProcedure
Procedure OAI_AudioProcessing() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("OpenAI_Token" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("OpenAI_URL" , TestParameters);
OpenAI_GenerateSpeech(TestParameters);
OpenAI_CreateTranscription(TestParameters);
EndProcedure
Procedure OAI_ModelsManagement() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("OpenAI_Token" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("OpenAI_URL" , TestParameters);
OpenAI_GetModelList(TestParameters);
EndProcedure
#EndRegion // OpenAI
#EndRegion // RunnableTests
#EndRegion // Internal
#Region Private
#Region AtomicTests
#Region OpenAI
Procedure OpenAI_GetResponse(FunctionParameters)
URL = FunctionParameters["OpenAI_URL"];
Token = FunctionParameters["OpenAI_Token"];
// Text messages
Messages = New Array;
Messages.Add(OPI_OpenAI.GetMessageStructure("user" , "What is 1C:Enterprise?"));
Messages.Add(OPI_OpenAI.GetMessageStructure("assistant", "1C:Enterprise is a full-stack, low-code platform"));
Messages.Add(OPI_OpenAI.GetMessageStructure("user" , "When the first version was released?"));
Model = "smolvlm-256m-instruct";
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("token", Token);
Options.Insert("model", Model);
Options.Insert("msgs", Messages);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("openai", "GetResponse", Options);
OPI_TestDataRetrieval.Process(Result, "OpenAI", "GetResponse"); // SKIP
// Pictures
Model = "moondream2-20250414";
File = FunctionParameters["Picture"]; // URL, Path or Binary Data
FileName = StrTemplate("%1.png", String(New UUID()));
Destination = "user_data";
Messages = New Array;
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("token", Token);
Options.Insert("name", FileName);
Options.Insert("data", File);
Options.Insert("purpose", Destination);
ImageUpload = OPI_TestDataRetrieval.ExecuteTestCLI("openai", "UploadFile", Options);
OPI_TestDataRetrieval.Process(ImageUpload, "OpenAI", "GetResponse", "Image upload"); // SKIP
ImageID = ImageUpload["id"];
Options = New Structure;
Options.Insert("role", "user");
Options.Insert("file", ImageID);
Options.Insert("prompt", "What is in this image?");
Description = OPI_TestDataRetrieval.ExecuteTestCLI("openai", "GetImageMessageStructure", Options);
Messages.Add(Description);
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("token", Token);
Options.Insert("model", Model);
Options.Insert("msgs", Messages);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("openai", "GetResponse", Options);
OPI_OpenAI.DeleteFile(URL, Token, ImageID);
// END
OPI_TestDataRetrieval.Process(Result, "OpenAI", "GetResponse", "Image");
EndProcedure
Procedure OpenAI_GetEmbeddings(FunctionParameters)
URL = FunctionParameters["OpenAI_URL"];
Token = FunctionParameters["OpenAI_Token"];
Text = "What is 1C:Enterprise?";
Model = "arcee-ai_afm-4.5b";
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("token", Token);
Options.Insert("model", Model);
Options.Insert("input", Text);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("openai", "GetEmbeddings", Options);
// END
OPI_TestDataRetrieval.Process(Result, "OpenAI", "GetEmbeddings");
EndProcedure
Procedure OpenAI_CreateAssistant(FunctionParameters)
URL = FunctionParameters["OpenAI_URL"];
Token = FunctionParameters["OpenAI_Token"];
Instruction = "You are a personal math tutor. When asked a question, write and run Python code to answer the question.";
Model = "smolvlm-256m-instruct";
Name = "Math tutor";
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("token", Token);
Options.Insert("model", Model);
Options.Insert("name", Name);
Options.Insert("inst", Instruction);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("openai", "CreateAssistant", Options);
// END
OPI_TestDataRetrieval.Process(Result, "OpenAI", "CreateAssistant", , FunctionParameters);
EndProcedure
Procedure OpenAI_DeleteAssistant(FunctionParameters)
URL = FunctionParameters["OpenAI_URL"];
Token = FunctionParameters["OpenAI_Token"];
AssistantID = FunctionParameters["OpenAI_Assistant"];
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("token", Token);
Options.Insert("id", AssistantID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("openai", "DeleteAssistant", Options);
// END
OPI_TestDataRetrieval.Process(Result, "OpenAI", "DeleteAssistant", , AssistantID);
EndProcedure
Procedure OpenAI_RetrieveAssistant(FunctionParameters)
URL = FunctionParameters["OpenAI_URL"];
Token = FunctionParameters["OpenAI_Token"];
AssistantID = FunctionParameters["OpenAI_Assistant"];
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("token", Token);
Options.Insert("id", AssistantID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("openai", "RetrieveAssistant", Options);
// END
OPI_TestDataRetrieval.Process(Result, "OpenAI", "RetrieveAssistant");
EndProcedure
Procedure OpenAI_GetAssistantsList(FunctionParameters)
URL = FunctionParameters["OpenAI_URL"];
Token = FunctionParameters["OpenAI_Token"];
Count = 2;
AdditionalParameters = New Structure("after,order", "asst_2", "desc");
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("token", Token);
Options.Insert("limit", Count);
Options.Insert("options", AdditionalParameters);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("openai", "GetAssistantsList", Options);
// END
OPI_TestDataRetrieval.Process(Result, "OpenAI", "GetAssistantsList");
EndProcedure
Procedure OpenAI_UploadFile(FunctionParameters)
URL = FunctionParameters["OpenAI_URL"];
Token = FunctionParameters["OpenAI_Token"];
File = FunctionParameters["Picture"]; // URL, Path or Binary Data
FileName = StrTemplate("%1.png", String(New UUID()));
Destination = "assistants";
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("token", Token);
Options.Insert("name", FileName);
Options.Insert("data", File);
Options.Insert("purpose", Destination);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("openai", "UploadFile", Options);
// END
OPI_TypeConversion.GetBinaryData(File);
OPI_TestDataRetrieval.Process(Result, "OpenAI", "UploadFile", , FunctionParameters, FileName, File.Size() + 2);
EndProcedure
Procedure OpenAI_DeleteFile(FunctionParameters)
URL = FunctionParameters["OpenAI_URL"];
Token = FunctionParameters["OpenAI_Token"];
FileID = FunctionParameters["OpenAI_File"];
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("token", Token);
Options.Insert("id", FileID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("openai", "DeleteFile", Options);
// END
OPI_TestDataRetrieval.Process(Result, "OpenAI", "DeleteFile", , FileID);
EndProcedure
Procedure OpenAI_GetFileInformation(FunctionParameters)
URL = FunctionParameters["OpenAI_URL"];
Token = FunctionParameters["OpenAI_Token"];
FileID = FunctionParameters["OpenAI_File"];
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("token", Token);
Options.Insert("id", FileID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("openai", "GetFileInformation", Options);
// END
OPI_TestDataRetrieval.Process(Result, "OpenAI", "GetFileInformation");
EndProcedure
Procedure OpenAI_GetFilesList(FunctionParameters)
URL = FunctionParameters["OpenAI_URL"];
Token = FunctionParameters["OpenAI_Token"];
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("token", Token);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("openai", "GetFilesList", Options);
// END
OPI_TestDataRetrieval.Process(Result, "OpenAI", "GetFilesList");
EndProcedure
Procedure OpenAI_DownloadFile(FunctionParameters)
URL = FunctionParameters["OpenAI_URL"];
Token = FunctionParameters["OpenAI_Token"];
FileID = FunctionParameters["OpenAI_File"];
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("token", Token);
Options.Insert("id", FileID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("openai", "DownloadFile", Options);
// END
OPI_TestDataRetrieval.Process(Result, "OpenAI", "DownloadFile", , FunctionParameters);
EndProcedure
Procedure OpenAI_GetMessageStructure(FunctionParameters)
Options = New Structure;
Options.Insert("role", "user");
Options.Insert("text", "What is 1C:Enterprise?");
Result = OPI_TestDataRetrieval.ExecuteTestCLI("openai", "GetMessageStructure", Options);
// END
OPI_TestDataRetrieval.Process(Result, "OpenAI", "GetMessageStructure");
EndProcedure
Procedure OpenAI_GetImageMessageStructure(FunctionParameters)
URL = FunctionParameters["OpenAI_URL"];
Token = FunctionParameters["OpenAI_Token"];
Image = FunctionParameters["OpenAI_File"];
Options = New Structure;
Options.Insert("role", "user");
Options.Insert("file", Image);
Options.Insert("prompt", "What is in this image?");
Result = OPI_TestDataRetrieval.ExecuteTestCLI("openai", "GetImageMessageStructure", Options);
// END
OPI_TestDataRetrieval.Process(Result, "OpenAI", "GetImageMessageStructure");
EndProcedure
Procedure OpenAI_GenerateSpeech(FunctionParameters)
URL = FunctionParameters["OpenAI_URL"];
Token = FunctionParameters["OpenAI_Token"];
Text = "Attack ships on fire off the shoulder of Orion bright as magnesium";
Model = "bark-cpp-small";
AdditionalParameters = New Structure("response_format", "wav");
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("token", Token);
Options.Insert("model", Model);
Options.Insert("input", Text);
Options.Insert("options", AdditionalParameters);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("openai", "GenerateSpeech", Options);
// END
OPI_TestDataRetrieval.Process(Result, "OpenAI", "GenerateSpeech", , FunctionParameters);
EndProcedure
Procedure OpenAI_CreateTranscription(FunctionParameters)
URL = FunctionParameters["OpenAI_URL"];
Token = FunctionParameters["OpenAI_Token"];
Audio = FunctionParameters["OpenAI_Speech"];
Model = "whisper-1";
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("token", Token);
Options.Insert("model", Model);
Options.Insert("audio", Audio);
Options.Insert("type", "audio/wav");
Result = OPI_TestDataRetrieval.ExecuteTestCLI("openai", "CreateTranscription", Options);
// END
OPI_Tools.RemoveFileWithTry(Audio, "Failed to delete the temporary file after the test!!");
OPI_TestDataRetrieval.Process(Result, "OpenAI", "CreateTranscription");
EndProcedure
Procedure OpenAI_GetImages(FunctionParameters)
URL = FunctionParameters["OpenAI_URL"];
Token = FunctionParameters["OpenAI_Token"];
Model = "sd-1.5-ggml";
Options = New Structure;
Options.Insert("prompt", "Yellow alpaca");
Options.Insert("amount", 1);
Options.Insert("size", "64x64");
Description = OPI_TestDataRetrieval.ExecuteTestCLI("openai", "GetImageDescriptionStructure", Options);
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("token", Token);
Options.Insert("model", Model);
Options.Insert("descr", Description);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("openai", "GetImages", Options);
// END
OPI_TestDataRetrieval.Process(Result, "OpenAI", "GetImages");
EndProcedure
Procedure OpenAI_GetModelList(FunctionParameters)
URL = FunctionParameters["OpenAI_URL"];
Token = FunctionParameters["OpenAI_Token"];
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("token", Token);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("openai", "GetModelList", Options);
// END
OPI_TestDataRetrieval.Process(Result, "OpenAI", "GetModelList");
EndProcedure
Procedure OpenAI_GetAssistantMessage(FunctionParameters)
Options = New Structure;
Options.Insert("text", "What is 1C:Enterprise?");
Result = OPI_TestDataRetrieval.ExecuteTestCLI("openai", "GetAssistantMessage", Options);
// END
Options = New Structure;
Options.Insert("role", "assistant");
Options.Insert("text", "What is 1C:Enterprise?");
Check = OPI_TestDataRetrieval.ExecuteTestCLI("openai", "GetMessageStructure", Options);
Check = OPI_Tools.JSONString(Check);
Result = OPI_Tools.JSONString(Result);
OPI_TestDataRetrieval.Process(Result, "OpenAI", "GetAssistantMessage", , Check);
EndProcedure
Procedure OpenAI_GetUserMessage(FunctionParameters)
Options = New Structure;
Options.Insert("text", "What is 1C:Enterprise?");
Options.Insert("name", "Vitaly");
Result = OPI_TestDataRetrieval.ExecuteTestCLI("openai", "GetUserMessage", Options);
// END
Options = New Structure;
Options.Insert("role", "user");
Options.Insert("text", "What is 1C:Enterprise?");
Options.Insert("name", "Vitaly");
Check = OPI_TestDataRetrieval.ExecuteTestCLI("openai", "GetMessageStructure", Options);
Check = OPI_Tools.JSONString(Check);
Result = OPI_Tools.JSONString(Result);
OPI_TestDataRetrieval.Process(Result, "OpenAI", "GetUserMessage", , Check);
EndProcedure
Procedure OpenAI_GetSystemMessage(FunctionParameters)
Options = New Structure;
Options.Insert("text", "What is 1C:Enterprise?");
Result = OPI_TestDataRetrieval.ExecuteTestCLI("openai", "GetSystemMessage", Options);
// END
Options = New Structure;
Options.Insert("role", "system");
Options.Insert("text", "What is 1C:Enterprise?");
Check = OPI_TestDataRetrieval.ExecuteTestCLI("openai", "GetMessageStructure", Options);
Check = OPI_Tools.JSONString(Check);
Result = OPI_Tools.JSONString(Result);
OPI_TestDataRetrieval.Process(Result, "OpenAI", "GetSystemMessage", , Check);
EndProcedure
#EndRegion // OpenAI
#EndRegion // AtomicTests
#EndRegion // Private
#Region Alternate
Procedure OAI_ОбработкаЗапросов() Export
OAI_RequestsProcessing();
EndProcedure
Procedure OAI_Ассистенты() Export
OAI_Assistants();
EndProcedure
Procedure OAI_РаботаСФайлами() Export
OAI_FileManagement();
EndProcedure
Procedure OAI_РаботаСАудио() Export
OAI_AudioProcessing();
EndProcedure
Procedure OAI_РаботаСМоделями() Export
OAI_ModelsManagement();
EndProcedure
#EndRegion
File diff suppressed because it is too large Load Diff
+240
View File
@@ -0,0 +1,240 @@
// OneScript: ./OInt/tests/Modules/OPItc_RCON.os
// MIT License
// Copyright (c) 2023-2026 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
// Test suite for YAxUnit
// BSLLS:Typo-off
// BSLLS:LatinAndCyrillicSymbolInWord-off
// BSLLS:IncorrectLineBreak-off
// BSLLS:UsingServiceTag-off
// BSLLS:UnusedParameters-off
// BSLLS:DuplicateStringLiteral-off
// BSLLS:UsingHardcodePath-off
// BSLLS:UnusedLocalVariable-off
// BSLLS:DeprecatedMessage-off
// BSLLS:LineLength-off
// BSLLS:MagicNumber-off
// BSLLS:CommentedCode-off
// BSLLS:AssignAliasFieldsInQuery-off
// BSLLS:UsingHardcodeNetworkAddress-off
// BSLLS:UnreachableCode-off
// BSLLS:UnusedLocalMethod-off
// BSLLS:NestedFunctionInParameters-off
// BSLLS:MissingTemporaryFileDeletion-off
// BSLLS:UsingSynchronousCalls-off
// BSLLS:MagicNumber-off
// BSLLS:MagicDate-off
// BSLLS:MissingParameterDescription-off
// BSLLS:NumberOfOptionalParams-off
// BSLLS:MethodSize-off
// BSLLS:NestedConstructorsInStructureDeclaration-off
// BSLLS:NumberOfValuesInStructureConstructor-off
// BSLLS:UsingHardcodeSecretInformation-off
// BSLLS:SpaceAtStartComment-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
//@skip-check module-unused-local-variable
//@skip-check bsl-legacy-check-string-literal
//@skip-check bsl-legacy-check-method-for-statements-after-return
//@skip-check missing-temporary-file-deletion
//@skip-check module-unused-method
#Use "../../tools/main"
#Use "../../tools/http"
#Use "../../api"
#Use asserts
#Use "internal"
// For YAxUnit
Procedure ИсполняемыеСценарии() Export
OPI_TestDataRetrieval.FormYAXTests("RCON");
EndProcedure
// For Asserts
Function ПолучитьСписокТестов(UnitTesting) Export
Return OPI_TestDataRetrieval.FormAssertsTests("RCON");
EndFunction
#Region Internal
#Region RunnableTests
#Region RCON
Procedure RC_CommandsExecution() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("RCON_URL" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("RCON_Password", TestParameters);
RCON_FormConnectionParameters(TestParameters);
RCON_CreateConnection(TestParameters);
RCON_ExecuteCommand(TestParameters);
RCON_IsConnector(TestParameters);
EndProcedure
#EndRegion // RCON
#EndRegion // RunnableTests
#EndRegion // Internal
#Region Private
#Region AtomicTests
#Region RCON
Procedure RCON_FormConnectionParameters(FunctionParameters)
URL = FunctionParameters["RCON_URL"];
Password = FunctionParameters["RCON_Password"];
WriteTimeout = 20;
ReadTimeout = 20;
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("pass", Password);
Options.Insert("rtout", ReadTimeout);
Options.Insert("wtout", WriteTimeout);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("rcon", "FormConnectionParameters", Options);
// END
OPI_TestDataRetrieval.Process(Result, "RCON", "FormConnectionParameters");
EndProcedure
Procedure RCON_CreateConnection(FunctionParameters)
URL = FunctionParameters["RCON_URL"];
Password = FunctionParameters["RCON_Password"];
WriteTimeout = 20;
ReadTimeout = 20;
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("pass", Password);
Options.Insert("rtout", ReadTimeout);
Options.Insert("wtout", WriteTimeout);
ConnectionParams = OPI_TestDataRetrieval.ExecuteTestCLI("rcon", "FormConnectionParameters", Options);
Result = OPI_RCON.CreateConnection(ConnectionParams);
// END
OPI_TestDataRetrieval.Process(Result, "RCON", "CreateConnection");
EndProcedure
Procedure RCON_ExecuteCommand(FunctionParameters)
URL = FunctionParameters["RCON_URL"];
Password = FunctionParameters["RCON_Password"];
WriteTimeout = 20;
ReadTimeout = 20;
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("pass", Password);
Options.Insert("rtout", ReadTimeout);
Options.Insert("wtout", WriteTimeout);
ConnectionParams = OPI_TestDataRetrieval.ExecuteTestCLI("rcon", "FormConnectionParameters", Options);
Connection = OPI_RCON.CreateConnection(ConnectionParams);
Command = "list";
Options = New Structure;
Options.Insert("exec", Command);
Options.Insert("conn", Connection);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("rcon", "ExecuteCommand", Options);
// END
OPI_TestDataRetrieval.Process(Result, "RCON", "ExecuteCommand");
Command = "list";
Options = New Structure;
Options.Insert("exec", Command);
Options.Insert("conn", ConnectionParams);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("rcon", "ExecuteCommand", Options);
OPI_TestDataRetrieval.Process(Result, "RCON", "ExecuteCommand", "No connection");
EndProcedure
Procedure RCON_IsConnector(FunctionParameters)
URL = FunctionParameters["RCON_URL"];
Password = FunctionParameters["RCON_Password"];
WriteTimeout = 20;
ReadTimeout = 20;
Options = New Structure;
Options.Insert("url", URL);
Options.Insert("pass", Password);
Options.Insert("rtout", ReadTimeout);
Options.Insert("wtout", WriteTimeout);
ConnectionParams = OPI_TestDataRetrieval.ExecuteTestCLI("rcon", "FormConnectionParameters", Options);
Connection = OPI_RCON.CreateConnection(ConnectionParams);
Result = OPI_RCON.IsConnector(Connection);
// END
OPI_TestDataRetrieval.Process(Result, "RCON", "IsConnector");
EndProcedure
#EndRegion // RCON
#EndRegion // AtomicTests
#EndRegion // Private
#Region Alternate
Procedure RC_ВыполнениеКоманд() Export
RC_CommandsExecution();
EndProcedure
#EndRegion
+335
View File
@@ -0,0 +1,335 @@
// OneScript: ./OInt/tests/Modules/OPItc_RSS.os
// MIT License
// Copyright (c) 2023-2026 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
// Test suite for YAxUnit
// BSLLS:Typo-off
// BSLLS:LatinAndCyrillicSymbolInWord-off
// BSLLS:IncorrectLineBreak-off
// BSLLS:UsingServiceTag-off
// BSLLS:UnusedParameters-off
// BSLLS:DuplicateStringLiteral-off
// BSLLS:UsingHardcodePath-off
// BSLLS:UnusedLocalVariable-off
// BSLLS:DeprecatedMessage-off
// BSLLS:LineLength-off
// BSLLS:MagicNumber-off
// BSLLS:CommentedCode-off
// BSLLS:AssignAliasFieldsInQuery-off
// BSLLS:UsingHardcodeNetworkAddress-off
// BSLLS:UnreachableCode-off
// BSLLS:UnusedLocalMethod-off
// BSLLS:NestedFunctionInParameters-off
// BSLLS:MissingTemporaryFileDeletion-off
// BSLLS:UsingSynchronousCalls-off
// BSLLS:MagicNumber-off
// BSLLS:MagicDate-off
// BSLLS:MissingParameterDescription-off
// BSLLS:NumberOfOptionalParams-off
// BSLLS:MethodSize-off
// BSLLS:NestedConstructorsInStructureDeclaration-off
// BSLLS:NumberOfValuesInStructureConstructor-off
// BSLLS:UsingHardcodeSecretInformation-off
// BSLLS:SpaceAtStartComment-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
//@skip-check module-unused-local-variable
//@skip-check bsl-legacy-check-string-literal
//@skip-check bsl-legacy-check-method-for-statements-after-return
//@skip-check missing-temporary-file-deletion
//@skip-check module-unused-method
#Use "../../tools/main"
#Use "../../tools/http"
#Use "../../api"
#Use asserts
#Use "internal"
// For YAxUnit
Procedure ИсполняемыеСценарии() Export
OPI_TestDataRetrieval.FormYAXTests("RSS");
EndProcedure
// For Asserts
Function ПолучитьСписокТестов(UnitTesting) Export
Return OPI_TestDataRetrieval.FormAssertsTests("RSS");
EndFunction
#Region Internal
#Region RunnableTests
#Region RSS
Procedure RSS_RSSMethods() Export
TestParameters = New Structure;
RSS_CreateFeedRSS(TestParameters);
RSS_GetFeedItemStructureRSS(TestParameters);
RSS_ParseFeedRSS(TestParameters);
EndProcedure
Procedure RSS_AtomMethods() Export
TestParameters = New Structure;
RSS_CreateFeedAtom(TestParameters);
RSS_GetFeedItemStructureAtom(TestParameters);
RSS_ParseFeedAtom(TestParameters);
EndProcedure
#EndRegion // RSS
#EndRegion // RunnableTests
#EndRegion // Internal
#Region Private
#Region AtomicTests
#Region RSS
Procedure RSS_CreateFeedRSS(FunctionParameters)
ChannelTitle = "Test RSS channel";
ChannelDescription = "Test RSS channel description";
ChannelLink = "https://example.com";
ItemsArray = New Array;
Options = New Structure;
Options.Insert("empty", Истина);
ElementStructure = OPI_TestDataRetrieval.ExecuteTestCLI("rss", "GetFeedItemStructureRSS", Options);
ElementStructure["title"] = "First element";
ElementStructure["description"] = "First element description";
ElementStructure["link"] = "https://example.com/item1";
ElementStructure["pubDate"] = OPI_Tools.GetCurrentDate();
ElementStructure["author"] = "test@example.com";
ElementStructure["guid"] = "item-1";
ItemsArray.Add(ElementStructure);
Options = New Structure;
Options.Insert("empty", Истина);
ElementStructure = OPI_TestDataRetrieval.ExecuteTestCLI("rss", "GetFeedItemStructureRSS", Options);
ElementStructure["title"] = "Second element";
ElementStructure["description"] = "Second element description";
ElementStructure["link"] = "https://example.com/item2";
ElementStructure["pubDate"] = OPI_Tools.GetCurrentDate();
ElementStructure["author"] = "test@example.com";
ElementStructure["guid"] = "item-2";
ItemsArray.Add(ElementStructure);
Options = New Structure;
Options.Insert("name", ChannelTitle);
Options.Insert("descr", ChannelDescription);
Options.Insert("link", ChannelLink);
Options.Insert("items", ItemsArray);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("rss", "CreateFeedRSS", Options);
// END
OPI_TestDataRetrieval.Process(Result, "RSS", "CreateFeedRSS", , FunctionParameters);
EndProcedure
Procedure RSS_GetFeedItemStructureRSS(FunctionParameters)
Options = New Structure;
Result = OPI_TestDataRetrieval.ExecuteTestCLI("rss", "GetFeedItemStructureRSS", Options);
// END
OPI_TestDataRetrieval.Process(Result, "RSS", "GetFeedItemStructureRSS");
Options = New Structure;
Options.Insert("empty", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("rss", "GetFeedItemStructureRSS", Options);
OPI_TestDataRetrieval.Process(Result, "RSS", "GetFeedItemStructureRSS", "Clear");
Options = New Structure;
Options.Insert("empty", Ложь);
Options.Insert("map", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("rss", "GetFeedItemStructureRSS", Options);
OPI_TestDataRetrieval.Process(Result, "RSS", "GetFeedItemStructureRSS", "Map");
EndProcedure
Procedure RSS_ParseFeedRSS(FunctionParameters)
FeedXML = FunctionParameters["RSS_FeedXML"];
Options = New Structure;
Options.Insert("xml", FeedXML);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("rss", "ParseFeedRSS", Options);
// END
OPI_TestDataRetrieval.Process(Result, "RSS", "ParseFeedRSS");
OPI_Tools.RemoveFileWithTry(FeedXML, "Failed to delete the temporary file after the test!!");
EndProcedure
Procedure RSS_CreateFeedAtom(FunctionParameters)
FeedTitle = "Test Atom feed";
FeedLink = "https://example.com";
FeedID = "https://example.com/feed";
ItemsArray = New Array;
Options = New Structure;
Options.Insert("empty", Истина);
ElementStructure = OPI_TestDataRetrieval.ExecuteTestCLI("rss", "GetFeedItemStructureAtom", Options);
ElementStructure["title"] = "First record";
ElementStructure["id"] = "https://example.com/entry1";
ElementStructure["link"] = "https://example.com/entry1";
ElementStructure["updated"] = OPI_Tools.GetCurrentDate();
ElementStructure["summary"] = "First record summary";
ElementStructure["content"] = "Full content of the first record";
ElementStructure["author"] = "First Author";
ElementStructure["published"] = OPI_Tools.GetCurrentDate();
ItemsArray.Add(ElementStructure);
Options = New Structure;
Options.Insert("empty", Истина);
ElementStructure = OPI_TestDataRetrieval.ExecuteTestCLI("rss", "GetFeedItemStructureAtom", Options);
ElementStructure["title"] = "Second record";
ElementStructure["id"] = "https://example.com/entry2";
ElementStructure["link"] = "https://example.com/entry2";
ElementStructure["updated"] = OPI_Tools.GetCurrentDate();
ElementStructure["summary"] = "Second record summary";
ElementStructure["content"] = "Full content of the second record";
ElementStructure["author"] = "Second Author";
ElementStructure["published"] = OPI_Tools.GetCurrentDate();
ItemsArray.Add(ElementStructure);
Options = New Structure;
Options.Insert("name", FeedTitle);
Options.Insert("link", FeedLink);
Options.Insert("id", FeedID);
Options.Insert("items", ItemsArray);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("rss", "CreateFeedAtom", Options);
// END
OPI_TestDataRetrieval.Process(Result, "RSS", "CreateFeedAtom", , FunctionParameters);
EndProcedure
Procedure RSS_GetFeedItemStructureAtom(FunctionParameters)
Options = New Structure;
Result = OPI_TestDataRetrieval.ExecuteTestCLI("rss", "GetFeedItemStructureAtom", Options);
// END
OPI_TestDataRetrieval.Process(Result, "RSS", "GetFeedItemStructureAtom");
Options = New Structure;
Options.Insert("empty", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("rss", "GetFeedItemStructureAtom", Options);
OPI_TestDataRetrieval.Process(Result, "RSS", "GetFeedItemStructureAtom", "Clear");
Options = New Structure;
Options.Insert("empty", Ложь);
Options.Insert("map", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("rss", "GetFeedItemStructureAtom", Options);
OPI_TestDataRetrieval.Process(Result, "RSS", "GetFeedItemStructureAtom", "Map");
EndProcedure
Procedure RSS_ParseFeedAtom(FunctionParameters)
FeedXML = FunctionParameters["RSS_AtomFeedXML"];
Options = New Structure;
Options.Insert("xml", FeedXML);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("rss", "ParseFeedAtom", Options);
// END
OPI_TestDataRetrieval.Process(Result, "RSS", "ParseFeedAtom");
OPI_Tools.RemoveFileWithTry(FeedXML, "Failed to delete the temporary file after the test!!");
EndProcedure
#EndRegion // RSS
#EndRegion // AtomicTests
#EndRegion // Private
#Region Alternate
Procedure RSS_МетодыRSS() Export
RSS_RSSMethods();
EndProcedure
Procedure RSS_МетодыAtom() Export
RSS_AtomMethods();
EndProcedure
#EndRegion
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+993
View File
@@ -0,0 +1,993 @@
// OneScript: ./OInt/tests/Modules/OPItc_SQLite.os
// MIT License
// Copyright (c) 2023-2026 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
// Test suite for YAxUnit
// BSLLS:Typo-off
// BSLLS:LatinAndCyrillicSymbolInWord-off
// BSLLS:IncorrectLineBreak-off
// BSLLS:UsingServiceTag-off
// BSLLS:UnusedParameters-off
// BSLLS:DuplicateStringLiteral-off
// BSLLS:UsingHardcodePath-off
// BSLLS:UnusedLocalVariable-off
// BSLLS:DeprecatedMessage-off
// BSLLS:LineLength-off
// BSLLS:MagicNumber-off
// BSLLS:CommentedCode-off
// BSLLS:AssignAliasFieldsInQuery-off
// BSLLS:UsingHardcodeNetworkAddress-off
// BSLLS:UnreachableCode-off
// BSLLS:UnusedLocalMethod-off
// BSLLS:NestedFunctionInParameters-off
// BSLLS:MissingTemporaryFileDeletion-off
// BSLLS:UsingSynchronousCalls-off
// BSLLS:MagicNumber-off
// BSLLS:MagicDate-off
// BSLLS:MissingParameterDescription-off
// BSLLS:NumberOfOptionalParams-off
// BSLLS:MethodSize-off
// BSLLS:NestedConstructorsInStructureDeclaration-off
// BSLLS:NumberOfValuesInStructureConstructor-off
// BSLLS:UsingHardcodeSecretInformation-off
// BSLLS:SpaceAtStartComment-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
//@skip-check module-unused-local-variable
//@skip-check bsl-legacy-check-string-literal
//@skip-check bsl-legacy-check-method-for-statements-after-return
//@skip-check missing-temporary-file-deletion
//@skip-check module-unused-method
#Use "../../tools/main"
#Use "../../tools/http"
#Use "../../api"
#Use asserts
#Use "internal"
// For YAxUnit
Procedure ИсполняемыеСценарии() Export
OPI_TestDataRetrieval.FormYAXTests("SQLite");
EndProcedure
// For Asserts
Function ПолучитьСписокТестов(UnitTesting) Export
Return OPI_TestDataRetrieval.FormAssertsTests("SQLite");
EndFunction
#Region Internal
#Region RunnableTests
#Region SQLite
Procedure SQLL_CommonMethods() Export
TestParameters = New Structure;
Base = GetTempFileName("sqlite");
OPI_TestDataRetrieval.WriteParameter("SQLite_DB", Base);
OPI_Tools.AddField("SQLite_DB", Base, "String", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Picture" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("SQLite_Ext" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("SQLite_ExtLinux", TestParameters);
SQLite_CreateConnection(TestParameters);
SQLite_CloseConnection(TestParameters);
SQLite_ExecuteSQLQuery(TestParameters);
SQLite_IsConnector(TestParameters);
SQLite_ConnectExtension(TestParameters);
OPI_Tools.RemoveFileWithTry(Base, "Database file deletion error");
EndProcedure
Procedure SQLL_ORM() Export
TestParameters = New Structure;
Base = GetTempFileName("sqlite");
Connection = OPI_SQLite.CreateConnection(Base);
TestParameters.Insert("SQLite_DB", Connection);
OPI_TestDataRetrieval.ParameterToCollection("Picture", TestParameters);
SQLite_CreateTable(TestParameters);
SQLite_AddRecords(TestParameters);
SQLite_EnsureRecords(TestParameters);
SQLite_GetRecords(TestParameters);
SQLite_UpdateRecords(TestParameters);
SQLite_DeleteRecords(TestParameters);
SQLite_GetTableInformation(TestParameters);
SQLite_AddTableColumn(TestParameters);
SQLite_DeleteTableColumn(TestParameters);
SQLite_EnsureTable(TestParameters);
SQLite_ClearTable(TestParameters);
SQLite_DeleteTable(TestParameters);
SQLite_GetRecordsFilterStructure(TestParameters);
OPI_TestDataRetrieval.WriteParameter("SQLite_DB", Base);
OPI_Tools.AddField("SQLite_DB", Base, "String", TestParameters);
SQLite_CreateTable(TestParameters);
SQLite_AddRecords(TestParameters);
SQLite_EnsureRecords(TestParameters);
SQLite_GetRecords(TestParameters);
SQLite_UpdateRecords(TestParameters);
SQLite_DeleteRecords(TestParameters);
SQLite_GetTableInformation(TestParameters);
SQLite_AddTableColumn(TestParameters);
SQLite_DeleteTableColumn(TestParameters);
SQLite_EnsureTable(TestParameters);
SQLite_ClearTable(TestParameters);
SQLite_DeleteTable(TestParameters);
SQLite_GetRecordsFilterStructure(TestParameters);
OPI_Tools.RemoveFileWithTry(Base, "Database file deletion error");
EndProcedure
#EndRegion // SQLite
#EndRegion // RunnableTests
#EndRegion // Internal
#Region Private
#Region AtomicTests
#Region SQLite
Procedure SQLite_CreateConnection(FunctionParameters)
TFN = GetTempFileName("sqlite");
LocalBase = OPI_SQLite.CreateConnection(TFN);
InMemoryBase = OPI_SQLite.CreateConnection();
// END
OPI_TestDataRetrieval.Process(LocalBase , "SQLite", "CreateConnection");
OPI_TestDataRetrieval.Process(InMemoryBase, "SQLite", "CreateConnection", "IM");
Closing = OPI_SQLite.CloseConnection(LocalBase);
OPI_TestDataRetrieval.Process(Closing, "SQLite", "CreateConnection", "Closing");
OPI_Tools.RemoveFileWithTry(TFN, "Database file deletion error");
EndProcedure
Procedure SQLite_CloseConnection(FunctionParameters)
TFN = GetTempFileName("sqlite");
Connection = OPI_SQLite.CreateConnection(TFN);
OPI_TestDataRetrieval.Process(Connection, "SQLite", "CloseConnection", "Openning"); // SKIP
Closing = OPI_SQLite.CloseConnection(Connection);
// END
OPI_TestDataRetrieval.Process(Closing, "SQLite", "CloseConnection");
OPI_Tools.RemoveFileWithTry(TFN, "Database file deletion error");
EndProcedure
Procedure SQLite_ExecuteSQLQuery(FunctionParameters)
TFN = GetTempFileName("sqlite");
Image = FunctionParameters["Picture"];
OPI_TypeConversion.GetBinaryData(Image); // Image - Type: BinaryData
Connection = OPI_SQLite.CreateConnection(TFN);
OPI_TestDataRetrieval.Process(Connection, "SQLite", "ExecuteSQLQuery", "Openning"); // SKIP
// CREATE
QueryText = "
|CREATE TABLE test_table (
|id INTEGER PRIMARY KEY,
|name TEXT,
|age INTEGER,
|salary REAL,
|is_active BOOLEAN,
|created_at DATETIME,
|data BLOB
|);";
Options = New Structure;
Options.Insert("sql", QueryText);
Options.Insert("db", Connection);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "ExecuteSQLQuery", Options);
OPI_TestDataRetrieval.Process(Result, "SQLite", "ExecuteSQLQuery", "Create"); // SKIP
// INSERT with parameters
QueryText = "
|INSERT INTO test_table (name, age, salary, is_active, created_at, data)
|VALUES (?1, ?2, ?3, ?4, ?5, ?6);";
ParameterArray = New Array;
ParameterArray.Add("Vitaly"); // TEXT
ParameterArray.Add(25); // INTEGER
ParameterArray.Add(1000.12); // REAL
ParameterArray.Add(True); // BOOL
ParameterArray.Add(OPI_Tools.GetCurrentDate()); // DATETIME
ParameterArray.Add(New Structure("blob", Image)); // BLOB
Options = New Structure;
Options.Insert("sql", QueryText);
Options.Insert("params", ParameterArray);
Options.Insert("db", Connection);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "ExecuteSQLQuery", Options);
OPI_TestDataRetrieval.Process(Result, "SQLite", "ExecuteSQLQuery", "Insert"); // SKIP
// SELECT (The result of this query is shown in the Result block)
QueryText = "SELECT id, name, age, salary, is_active, created_at, data FROM test_table;";
Options = New Structure;
Options.Insert("sql", QueryText);
Options.Insert("db", Connection);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "ExecuteSQLQuery", Options);
OPI_TestDataRetrieval.Process(Result, "SQLite", "ExecuteSQLQuery", , Image); // SKIP
// Transaction
QueryText = "BEGIN TRANSACTION;
| CREATE TABLE IF NOT EXISTS users (
| id INTEGER PRIMARY KEY AUTOINCREMENT,
| name TEXT NOT NULL,
| age INTEGER NOT NULL
| );
| INSERT INTO users (name, age) VALUES ('Alice', 30);
| INSERT INTO users (name, age) VALUES ('Bob', 25);
| INSERT INTO users (name, age) VALUES ('Charlie', 35);
| COMMIT;";
Options = New Structure;
Options.Insert("sql", QueryText);
Options.Insert("db", Connection);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "ExecuteSQLQuery", Options);
OPI_TestDataRetrieval.Process(Result, "SQLite", "ExecuteSQLQuery", "Transaction"); // SKIP
// With extension
If OPI_Tools.IsWindows() Then
Extension = FunctionParameters["SQLite_Ext"]; // URL, Path or Binary Data
Else
Extension = FunctionParameters["SQLite_ExtLinux"]; // URL, Path or Binary Data
EndIf;
EntryPoint = "sqlite3_uuid_init";
ExtensionMap = New Map;
ExtensionMap.Insert(Extension, EntryPoint);
QueryText = "SELECT uuid4();";
Options = New Structure;
Options.Insert("sql", QueryText);
Options.Insert("db", Connection);
Options.Insert("exts", ExtensionMap);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "ExecuteSQLQuery", Options);
OPI_TestDataRetrieval.Process(Result, "SQLite", "ExecuteSQLQuery", "Extension"); // SKIP
Closing = OPI_SQLite.CloseConnection(Connection);
// END
OPI_TestDataRetrieval.Process(Result, "SQLite", "ExecuteSQLQuery", "Closing");
OPI_Tools.RemoveFileWithTry(TFN, "Database file deletion error");
EndProcedure
Procedure SQLite_IsConnector(FunctionParameters)
Connection = OPI_SQLite.CreateConnection();
Result = OPI_SQLite.IsConnector(Connection);
// END
OPI_TestDataRetrieval.Process(Result, "SQLite", "IsConnector");
EndProcedure
Procedure SQLite_CreateTable(FunctionParameters)
Base = FunctionParameters["SQLite_DB"];
Table = "test";
ColoumnsStruct = New Structure;
ColoumnsStruct.Insert("id" , "INTEGER PRIMARY KEY");
ColoumnsStruct.Insert("name" , "TEXT");
ColoumnsStruct.Insert("age" , "INTEGER");
ColoumnsStruct.Insert("salary" , "REAL");
ColoumnsStruct.Insert("is_active" , "BOOLEAN");
ColoumnsStruct.Insert("created_at", "DATETIME");
ColoumnsStruct.Insert("data" , "BLOB");
Options = New Structure;
Options.Insert("table", Table);
Options.Insert("cols", ColoumnsStruct);
Options.Insert("db", Base);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "CreateTable", Options);
// END
OPI_TestDataRetrieval.Process(Result, "SQLite", "CreateTable");
ColoumnsMap = New Map;
ColoumnsMap.Insert("id" , "INTEGER PRIMARY KEY");
ColoumnsMap.Insert("[An obscure column]", "TEXT");
Options = New Structure;
Options.Insert("table", "test1");
Options.Insert("cols", ColoumnsMap);
Options.Insert("db", Base);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "CreateTable", Options);
OPI_TestDataRetrieval.Process(Result, "SQLite", "CreateTable", "An obscure column");
EndProcedure
Procedure SQLite_AddRecords(FunctionParameters)
Image = FunctionParameters["Picture"];
OPI_TypeConversion.GetBinaryData(Image); // Image - Type: BinaryData
PictureFile = GetTempFileName("png");
Image.Write(PictureFile); // PictureFile - File to disk
Base = FunctionParameters["SQLite_DB"];
Table = "test";
DataArray = New Array;
RowStructure2 = New Structure;
RowStructure2.Insert("name" , "Vitaly"); // TEXT
RowStructure2.Insert("age" , 25); // INTEGER
RowStructure2.Insert("salary" , 1000.12); // REAL
RowStructure2.Insert("is_active" , True); // BOOL
RowStructure2.Insert("created_at", OPI_Tools.GetCurrentDate()); // DATETIME
RowStructure2.Insert("data" , New Structure("blob", Image)); // BLOB
RowStructure1 = New Structure;
RowStructure1.Insert("name" , "Lesha"); // TEXT
RowStructure1.Insert("age" , 20); // INTEGER
RowStructure1.Insert("salary" , 200.20); // REAL
RowStructure1.Insert("is_active" , False); // BOOL
RowStructure1.Insert("created_at", OPI_Tools.GetCurrentDate()); // DATETIME
RowStructure1.Insert("data" , New Structure("blob", PictureFile)); // BLOB
DataArray.Add(RowStructure2);
DataArray.Add(RowStructure1);
Options = New Structure;
Options.Insert("table", Table);
Options.Insert("rows", DataArray);
Options.Insert("db", Base);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "AddRecords", Options);
// END
OPI_TestDataRetrieval.Process(Result, "SQLite", "AddRecords");
Options = New Structure;
Options.Insert("table", Table);
Options.Insert("rows", DataArray);
Options.Insert("trn", Ложь);
Options.Insert("db", Base);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "AddRecords", Options);
OPI_TestDataRetrieval.Process(Result, "SQLite", "AddRecords", "No transaction");
RowStructure1.Insert("error", "Lesha");
DataArray.Add(RowStructure1);
Options = New Structure;
Options.Insert("table", Table);
Options.Insert("rows", DataArray);
Options.Insert("db", Base);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "AddRecords", Options);
OPI_TestDataRetrieval.Process(Result, "SQLite", "AddRecords", "Field error");
Options = New Structure;
Options.Insert("table", Table);
Options.Insert("rows", DataArray);
Options.Insert("trn", Ложь);
Options.Insert("db", Base);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "AddRecords", Options);
OPI_TestDataRetrieval.Process(Result, "SQLite", "AddRecords", "Error without transaction");
Options = New Structure;
Options.Insert("table", Table);
Options.Insert("rows", "not valid json");
Options.Insert("db", Base);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "AddRecords", Options);
OPI_TestDataRetrieval.Process(Result, "SQLite", "AddRecords", "JSON Error");
RowMap = New Map;
RowMap.Insert("[An obscure column]", "yo");
Options = New Structure;
Options.Insert("table", "test1");
Options.Insert("rows", RowMap);
Options.Insert("db", Base);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "AddRecords", Options);
OPI_TestDataRetrieval.Process(Result, "SQLite", "AddRecords", "An obscure column");
OPI_Tools.RemoveFileWithTry(PictureFile, "Failed to delete the temporary file after the test!!");
EndProcedure
Procedure SQLite_GetRecords(FunctionParameters)
Base = FunctionParameters["SQLite_DB"];
Table = "test";
Fields = New Array;
Fields.Add("name");
Fields.Add("salary");
Filters = New Array;
FilterStructure1 = New Structure;
FilterStructure1.Insert("field", "name");
FilterStructure1.Insert("type" , "=");
FilterStructure1.Insert("value", "Vitaly");
FilterStructure1.Insert("union", "AND");
FilterStructure1.Insert("raw" , False);
FilterStructure2 = New Structure;
FilterStructure2.Insert("field", "age");
FilterStructure2.Insert("type" , "BETWEEN");
FilterStructure2.Insert("value", "20 AND 30");
FilterStructure2.Insert("raw" , True);
Filters.Add(FilterStructure1);
Filters.Add(FilterStructure2);
Sort = New Structure("created_at", "DESC");
Count = 1;
Options = New Structure;
Options.Insert("table", Table);
Options.Insert("fields", Fields);
Options.Insert("filter", Filters);
Options.Insert("order", Sort);
Options.Insert("limit", Count);
Options.Insert("db", Base);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "GetRecords", Options);
// END
OPI_TestDataRetrieval.Process(Result, "SQLite", "GetRecords");
Options = New Structure;
Options.Insert("table", Table);
Options.Insert("fields", "['name','age','salary','is_active','created_at']");
Options.Insert("db", Base);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "GetRecords", Options);
OPI_TestDataRetrieval.Process(Result, "SQLite", "GetRecords", "No parameters");
FilterStructure2.Insert("type", "SOMETHING");
Filters.Add(FilterStructure2);
Options = New Structure;
Options.Insert("table", Table);
Options.Insert("fields", "['name','age','salary','is_active','created_at']");
Options.Insert("filter", Filters);
Options.Insert("db", Base);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "GetRecords", Options);
OPI_TestDataRetrieval.Process(Result, "SQLite", "GetRecords", "Error");
Options = New Structure;
Options.Insert("table", "test1");
Options.Insert("db", Base);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "GetRecords", Options);
OPI_TestDataRetrieval.Process(Result, "SQLite", "GetRecords", "An obscure column");
EndProcedure
Procedure SQLite_UpdateRecords(FunctionParameters)
Base = FunctionParameters["SQLite_DB"];
Table = "test";
FieldsStructure = New Structure;
FieldsStructure.Insert("name" , "Vitaly A.");
FieldsStructure.Insert("salary", "999999");
Filters = New Array;
FilterStructure = New Structure;
FilterStructure.Insert("field", "name");
FilterStructure.Insert("type" , "=");
FilterStructure.Insert("value", "Vitaly");
FilterStructure.Insert("union", "AND");
FilterStructure.Insert("raw" , False);
Filters.Add(FilterStructure);
Options = New Structure;
Options.Insert("table", Table);
Options.Insert("values", FieldsStructure);
Options.Insert("filter", FilterStructure);
Options.Insert("db", Base);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "UpdateRecords", Options);
// END
OPI_TestDataRetrieval.Process(Result, "SQLite", "UpdateRecords");
FilterStructure.Insert("value", "Vitaly A.");
Filters = New Array;
Filters.Add(FilterStructure);
Options = New Structure;
Options.Insert("table", Table);
Options.Insert("fields", "['name','salary']");
Options.Insert("filter", Filters);
Options.Insert("db", Base);
Check = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "GetRecords", Options);
OPI_TestDataRetrieval.Process(Check, "SQLite", "UpdateRecords", "Check", FieldsStructure);
EndProcedure
Procedure SQLite_DeleteRecords(FunctionParameters)
Base = FunctionParameters["SQLite_DB"];
Table = "test";
Filters = New Array;
FilterStructure = New Structure;
FilterStructure.Insert("field", "name");
FilterStructure.Insert("type" , "=");
FilterStructure.Insert("value", "Vitaly A.");
FilterStructure.Insert("union", "AND");
FilterStructure.Insert("raw" , False);
Filters.Add(FilterStructure);
Options = New Structure;
Options.Insert("table", Table);
Options.Insert("filter", FilterStructure);
Options.Insert("db", Base);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "DeleteRecords", Options);
// END
OPI_TestDataRetrieval.Process(Result, "SQLite", "DeleteRecords");
Options = New Structure;
Options.Insert("table", Table);
Options.Insert("fields", "['name','salary']");
Options.Insert("filter", Filters);
Options.Insert("db", Base);
Check = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "GetRecords", Options);
OPI_TestDataRetrieval.Process(Check, "SQLite", "DeleteRecords", "Check");
EndProcedure
Procedure SQLite_GetTableInformation(FunctionParameters)
Base = FunctionParameters["SQLite_DB"];
Table = "test";
Options = New Structure;
Options.Insert("table", Table);
Options.Insert("db", Base);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "GetTableInformation", Options);
// END
OPI_TestDataRetrieval.Process(Result, "SQLite", "GetTableInformation");
EndProcedure
Procedure SQLite_EnsureRecords(FunctionParameters)
Base = FunctionParameters["SQLite_DB"];
Table = "test_merge";
ColoumnsStruct = New Structure; // SKIP
ColoumnsStruct.Insert("id" , "INTEGER PRIMARY KEY"); // SKIP
ColoumnsStruct.Insert("name" , "TEXT"); // SKIP
ColoumnsStruct.Insert("age" , "INTEGER"); // SKIP
ColoumnsStruct.Insert("salary" , "REAL"); // SKIP
OPI_SQLite.CreateTable(Table, ColoumnsStruct, Base); // SKIP
DataArray = New Array;
RowStructure2 = New Structure;
RowStructure2.Insert("id" , 1);
RowStructure2.Insert("name" , "Vitaly");
RowStructure2.Insert("age" , 25);
RowStructure2.Insert("salary", 1000.12);
RowStructure1 = New Structure;
RowStructure1.Insert("id" , 2);
RowStructure1.Insert("name" , "Lesha");
RowStructure1.Insert("age" , 20);
RowStructure1.Insert("salary", 200.20);
DataArray.Add(RowStructure2);
DataArray.Add(RowStructure1);
KeyFields = New Array;
KeyFields.Add("id");
Options = New Structure;
Options.Insert("table", Table);
Options.Insert("rows", DataArray);
Options.Insert("unique", KeyFields);
Options.Insert("db", Base);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "EnsureRecords", Options);
// END
OPI_TestDataRetrieval.Process(Result, "SQLite", "EnsureRecords", "Insertion");
Options = New Structure;
Options.Insert("table", Table);
Options.Insert("fields", "*");
Options.Insert("db", Base);
Check = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "GetRecords", Options);
OPI_TestDataRetrieval.Process(Check, "SQLite", "EnsureRecords", "Insertion check");
RowStructure2.Insert("name" , "Vitaly Updated");
RowStructure2.Insert("salary", 1500.50);
StringStructure3 = New Structure;
StringStructure3.Insert("id" , 3);
StringStructure3.Insert("name" , "Anton");
StringStructure3.Insert("age" , 30);
StringStructure3.Insert("salary", 3000.00);
DataArray = New Array;
DataArray.Add(RowStructure2);
DataArray.Add(StringStructure3);
Options = New Structure;
Options.Insert("table", Table);
Options.Insert("rows", DataArray);
Options.Insert("unique", KeyFields);
Options.Insert("db", Base);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "EnsureRecords", Options);
OPI_TestDataRetrieval.Process(Result, "SQLite", "EnsureRecords", "Updating");
Options = New Structure;
Options.Insert("table", Table);
Options.Insert("fields", "*");
Options.Insert("db", Base);
Check = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "GetRecords", Options);
OPI_TestDataRetrieval.Process(Check, "SQLite", "EnsureRecords", "Updating check");
OPI_SQLite.DeleteTable(Table, Base);
EndProcedure
Procedure SQLite_GetRecordsFilterStructure(FunctionParameters)
Options = New Structure;
Result = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "GetRecordsFilterStructure", Options);
// END
OPI_TestDataRetrieval.Process(Result, "SQLite", "GetRecordsFilterStructure");
Options = New Structure;
Options.Insert("empty", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "GetRecordsFilterStructure", Options);
OPI_TestDataRetrieval.Process(Result, "SQLite", "GetRecordsFilterStructure", "Clear");
EndProcedure
Procedure SQLite_DeleteTable(FunctionParameters)
Base = FunctionParameters["SQLite_DB"];
Table = "test";
Options = New Structure;
Options.Insert("table", Table);
Options.Insert("db", Base);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "DeleteTable", Options);
// END
OPI_TestDataRetrieval.Process(Result, "SQLite", "DeleteTable");
Options = New Structure;
Options.Insert("table", Table);
Options.Insert("db", Base);
Check = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "GetTableInformation", Options);
OPI_TestDataRetrieval.Process(Check, "SQLite", "DeleteTable", "Check");
OPI_SQLite.DeleteTable("test1", Base);
EndProcedure
Procedure SQLite_ClearTable(FunctionParameters)
Base = FunctionParameters["SQLite_DB"];
Table = "test";
Options = New Structure;
Options.Insert("table", Table);
Options.Insert("db", Base);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "ClearTable", Options);
// END
OPI_TestDataRetrieval.Process(Result, "SQLite", "ClearTable");
Options = New Structure;
Options.Insert("table", Table);
Options.Insert("db", Base);
Check = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "GetTableInformation", Options);
OPI_TestDataRetrieval.Process(Check, "SQLite", "ClearTable", "Table");
Options = New Structure;
Options.Insert("table", Table);
Options.Insert("db", Base);
Check = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "GetRecords", Options);
OPI_TestDataRetrieval.Process(Check, "SQLite", "ClearTable", "Check");
EndProcedure
Procedure SQLite_ConnectExtension(FunctionParameters)
If OPI_Tools.IsWindows() Then
Extension = FunctionParameters["SQLite_Ext"]; // URL, Path or Binary Data
Else
Extension = FunctionParameters["SQLite_ExtLinux"]; // URL, Path or Binary Data
EndIf;
Base = FunctionParameters["SQLite_DB"];
EntryPoint = "sqlite3_uuid_init";
Connection = OPI_SQLite.CreateConnection(Base);
Result = OPI_SQLite.ConnectExtension(Extension, EntryPoint, Connection);
// END
OPI_TestDataRetrieval.Process(Result, "SQLite", "ConnectExtension");
TFN = GetTempFileName("dll");
CopyFile(Extension, TFN);
Result = OPI_SQLite.ConnectExtension(TFN, EntryPoint, Connection);
OPI_TestDataRetrieval.Process(Result, "SQLite", "ConnectExtension", "Path");
Result = OPI_SQLite.ConnectExtension(New BinaryData(TFN), EntryPoint, Connection);
OPI_TestDataRetrieval.Process(Result, "SQLite", "ConnectExtension", "Binary");
Result = OPI_SQLite.CloseConnection(Connection);
OPI_Tools.RemoveFileWithTry(TFN, "Error deleting extension file");
EndProcedure
Procedure SQLite_AddTableColumn(FunctionParameters)
Base = FunctionParameters["SQLite_DB"];
Table = "test";
Name = "new_col";
DataType = "TEXT";
Options = New Structure;
Options.Insert("table", Table);
Options.Insert("name", Name);
Options.Insert("type", DataType);
Options.Insert("db", Base);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "AddTableColumn", Options);
// END
OPI_TestDataRetrieval.Process(Result, "SQLite", "AddTableColumn");
Options = New Structure;
Options.Insert("table", Table);
Options.Insert("db", Base);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "GetTableInformation", Options);
OPI_TestDataRetrieval.Process(Result, "SQLite", "AddTableColumn", "Check");
EndProcedure
Procedure SQLite_DeleteTableColumn(FunctionParameters)
Base = FunctionParameters["SQLite_DB"];
Table = "test";
Name = "new_col";
Options = New Structure;
Options.Insert("table", Table);
Options.Insert("name", Name);
Options.Insert("db", Base);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "DeleteTableColumn", Options);
// END
OPI_TestDataRetrieval.Process(Result, "SQLite", "DeleteTableColumn");
Options = New Structure;
Options.Insert("table", Table);
Options.Insert("db", Base);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "GetTableInformation", Options);
OPI_TestDataRetrieval.Process(Result, "SQLite", "DeleteTableColumn", "Check");
EndProcedure
Procedure SQLite_EnsureTable(FunctionParameters)
Base = FunctionParameters["SQLite_DB"];
Table = "test";
ColoumnsStruct = New Structure;
ColoumnsStruct.Insert("id" , "INTEGER");
ColoumnsStruct.Insert("code" , "INTEGER");
ColoumnsStruct.Insert("name" , "TEXT");
ColoumnsStruct.Insert("age" , "INTEGER");
ColoumnsStruct.Insert("info" , "TEXT");
Options = New Structure;
Options.Insert("table", Table);
Options.Insert("cols", ColoumnsStruct);
Options.Insert("db", Base);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "EnsureTable", Options);
// END
OPI_TestDataRetrieval.Process(Result, "SQLite", "EnsureTable");
Options = New Structure;
Options.Insert("table", Table);
Options.Insert("db", Base);
Check = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "GetTableInformation", Options);
OPI_TestDataRetrieval.Process(Check, "SQLite", "EnsureTable", "Check", ColoumnsStruct);
Table = "test_new";
Options = New Structure;
Options.Insert("table", Table);
Options.Insert("cols", ColoumnsStruct);
Options.Insert("db", Base);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "EnsureTable", Options);
OPI_TestDataRetrieval.Process(Result, "SQLite", "EnsureTable", "New");
Options = New Structure;
Options.Insert("table", Table);
Options.Insert("db", Base);
Check = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "GetTableInformation", Options);
OPI_TestDataRetrieval.Process(Check, "SQLite", "EnsureTable", "Check 2", ColoumnsStruct);
EndProcedure
#EndRegion // SQLite
#EndRegion // AtomicTests
#EndRegion // Private
#Region Alternate
Procedure SQLL_ОсновныеМетоды() Export
SQLL_CommonMethods();
EndProcedure
#EndRegion
+728
View File
@@ -0,0 +1,728 @@
// OneScript: ./OInt/tests/Modules/OPItc_SSH.os
// MIT License
// Copyright (c) 2023-2026 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
// Test suite for YAxUnit
// BSLLS:Typo-off
// BSLLS:LatinAndCyrillicSymbolInWord-off
// BSLLS:IncorrectLineBreak-off
// BSLLS:UsingServiceTag-off
// BSLLS:UnusedParameters-off
// BSLLS:DuplicateStringLiteral-off
// BSLLS:UsingHardcodePath-off
// BSLLS:UnusedLocalVariable-off
// BSLLS:DeprecatedMessage-off
// BSLLS:LineLength-off
// BSLLS:MagicNumber-off
// BSLLS:CommentedCode-off
// BSLLS:AssignAliasFieldsInQuery-off
// BSLLS:UsingHardcodeNetworkAddress-off
// BSLLS:UnreachableCode-off
// BSLLS:UnusedLocalMethod-off
// BSLLS:NestedFunctionInParameters-off
// BSLLS:MissingTemporaryFileDeletion-off
// BSLLS:UsingSynchronousCalls-off
// BSLLS:MagicNumber-off
// BSLLS:MagicDate-off
// BSLLS:MissingParameterDescription-off
// BSLLS:NumberOfOptionalParams-off
// BSLLS:MethodSize-off
// BSLLS:NestedConstructorsInStructureDeclaration-off
// BSLLS:NumberOfValuesInStructureConstructor-off
// BSLLS:UsingHardcodeSecretInformation-off
// BSLLS:SpaceAtStartComment-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
//@skip-check module-unused-local-variable
//@skip-check bsl-legacy-check-string-literal
//@skip-check bsl-legacy-check-method-for-statements-after-return
//@skip-check missing-temporary-file-deletion
//@skip-check module-unused-method
#Use "../../tools/main"
#Use "../../tools/http"
#Use "../../api"
#Use asserts
#Use "internal"
// For YAxUnit
Procedure ИсполняемыеСценарии() Export
OPI_TestDataRetrieval.FormYAXTests("SSH");
EndProcedure
// For Asserts
Function ПолучитьСписокТестов(UnitTesting) Export
Return OPI_TestDataRetrieval.FormAssertsTests("SSH");
EndFunction
#Region Internal
#Region RunnableTests
#Region SSH
Procedure SShell_CommonMethods() Export
OptionArray = OPI_TestDataRetrieval.GetSSHParameterOptions();
For Each TestParameters In OptionArray Do
SSH_CreateConnection(TestParameters);
SSH_GetConnectionConfiguration(TestParameters);
SSH_ExecuteCommand(TestParameters);
SSH_CloseConnection(TestParameters);
SSH_IsConnector(TestParameters);
SSH_GetSettingsLoginPassword(TestParameters);
SSH_GetSettingsPrivateKey(TestParameters);
SSH_GetSettingsViaAgent(TestParameters);
SSH_GetSettingsKI(TestParameters);
SSH_GetProxySettings(TestParameters);
EndDo;
OPI_Tools.RemoveFileWithTry(OptionArray[0]["SSH_Key"], "Error deleting file after test");
EndProcedure
#EndRegion // SSH
#EndRegion // RunnableTests
#EndRegion // Internal
#Region Private
#Region AtomicTests
#Region SSH
Procedure SSH_CreateConnection(FunctionParameters)
Postfix = FunctionParameters["Postfix"]; // SKIP
Host = FunctionParameters["SSH_Host"];
Port = FunctionParameters["SSH_Port"];
UseProxy = True;
ProxySettings = Undefined;
AuthorizationType = "By login and password";
UseProxy = FunctionParameters["Proxy"]; // SKIP
AuthorizationType = FunctionParameters["AuthType"]; // SKIP
If AuthorizationType = "By login and password" Then
Login = FunctionParameters["SSH_User"];
Password = FunctionParameters["SSH_Password"];
Options = New Structure;
Options.Insert("host", Host);
Options.Insert("port", Port);
Options.Insert("user", Login);
Options.Insert("pass", Password);
SSHSettings = OPI_TestDataRetrieval.ExecuteTestCLI("ssh", "GetSettingsLoginPassword", Options);
ElsIf AuthorizationType = "By key" Then
Login = FunctionParameters["SSH_User"];
PrivateKey = "./ssh_key";
PublicKey = "./ssh_key.pub";
PrivateKey = FunctionParameters["SSH_Key"]; // SKIP
PublicKey = FunctionParameters["SSH_Pub"]; // SKIP
SSHSettings = OPI_SSH.GetSettingsPrivateKey(Host, Port, Login, PrivateKey, PublicKey);
ElsIf AuthorizationType = "Keyboard interactive" Then
Login = FunctionParameters["SSH_User"];
Password = FunctionParameters["SSH_Password"];
AnswersArray = New Array;
AnswersArray.Add(Password);
Port = FunctionParameters["SSH_PortKI"]; // SKIP
SSHSettings = OPI_SSH.GetSettingsKI(Host, Port, Login, AnswersArray);
Else
Login = FunctionParameters["SSH_User"];
SSHSettings = OPI_SSH.GetSettingsViaAgent(Host, Port, Login);
EndIf;
If UseProxy Then
ProxyType = FunctionParameters["Proxy_Type"]; // http, socks5, socks4
ProxyAddress = FunctionParameters["Proxy_IP"];
ProxyPort = FunctionParameters["Proxy_Port"];
ProxyLogin = FunctionParameters["Proxy_User"];
ProxyPassword = FunctionParameters["Proxy_Password"];
Options = New Structure;
Options.Insert("addr", ProxyAddress);
Options.Insert("port", ProxyPort);
Options.Insert("type", ProxyType);
Options.Insert("login", ProxyLogin);
Options.Insert("pass", ProxyPassword);
ProxySettings = OPI_TestDataRetrieval.ExecuteTestCLI("ssh", "GetProxySettings", Options);
EndIf;
Result = OPI_SSH.CreateConnection(SSHSettings, ProxySettings);
// END
OPI_TestDataRetrieval.Process(Result, "SSH", "CreateConnection", Postfix);
EndProcedure
Procedure SSH_ExecuteCommand(FunctionParameters)
Postfix = FunctionParameters["Postfix"]; // SKIP
Host = FunctionParameters["SSH_Host"];
Port = FunctionParameters["SSH_Port"];
UseProxy = True;
ProxySettings = Undefined;
AuthorizationType = "By login and password";
UseProxy = FunctionParameters["Proxy"]; // SKIP
AuthorizationType = FunctionParameters["AuthType"]; // SKIP
If AuthorizationType = "By login and password" Then
Login = FunctionParameters["SSH_User"];
Password = FunctionParameters["SSH_Password"];
Options = New Structure;
Options.Insert("host", Host);
Options.Insert("port", Port);
Options.Insert("user", Login);
Options.Insert("pass", Password);
SSHSettings = OPI_TestDataRetrieval.ExecuteTestCLI("ssh", "GetSettingsLoginPassword", Options);
ElsIf AuthorizationType = "By key" Then
Login = FunctionParameters["SSH_User"];
PrivateKey = "./ssh_key";
PublicKey = "./ssh_key.pub";
PrivateKey = FunctionParameters["SSH_Key"]; // SKIP
PublicKey = FunctionParameters["SSH_Pub"]; // SKIP
SSHSettings = OPI_SSH.GetSettingsPrivateKey(Host, Port, Login, PrivateKey, PublicKey);
ElsIf AuthorizationType = "Keyboard interactive" Then
Login = FunctionParameters["SSH_User"];
Password = FunctionParameters["SSH_Password"];
AnswersArray = New Array;
AnswersArray.Add(Password);
Port = FunctionParameters["SSH_PortKI"]; // SKIP
SSHSettings = OPI_SSH.GetSettingsKI(Host, Port, Login, AnswersArray);
Else
Login = FunctionParameters["SSH_User"];
SSHSettings = OPI_SSH.GetSettingsViaAgent(Host, Port, Login);
EndIf;
If UseProxy Then
ProxyType = FunctionParameters["Proxy_Type"]; // http, socks5, socks4
ProxyAddress = FunctionParameters["Proxy_IP"];
ProxyPort = FunctionParameters["Proxy_Port"];
ProxyLogin = FunctionParameters["Proxy_User"];
ProxyPassword = FunctionParameters["Proxy_Password"];
Options = New Structure;
Options.Insert("addr", ProxyAddress);
Options.Insert("port", ProxyPort);
Options.Insert("type", ProxyType);
Options.Insert("login", ProxyLogin);
Options.Insert("pass", ProxyPassword);
ProxySettings = OPI_TestDataRetrieval.ExecuteTestCLI("ssh", "GetProxySettings", Options);
EndIf;
Connection = OPI_SSH.CreateConnection(SSHSettings, ProxySettings);
If OPI_SSH.IsConnector(Connection) Then
Options = New Structure;
Options.Insert("conn", Connection);
Options.Insert("comm", "whoami");
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ssh", "ExecuteCommand", Options);
Else
Result = Connection; // Error of connection
EndIf;
// END
OPI_TestDataRetrieval.Process(Result, "SSH", "ExecuteCommand", Postfix);
EndProcedure
Procedure SSH_GetConnectionConfiguration(FunctionParameters)
Postfix = FunctionParameters["Postfix"]; // SKIP
Host = FunctionParameters["SSH_Host"];
Port = FunctionParameters["SSH_Port"];
UseProxy = True;
ProxySettings = Undefined;
AuthorizationType = "By login and password";
UseProxy = FunctionParameters["Proxy"]; // SKIP
AuthorizationType = FunctionParameters["AuthType"]; // SKIP
If AuthorizationType = "By login and password" Then
Login = FunctionParameters["SSH_User"];
Password = FunctionParameters["SSH_Password"];
Options = New Structure;
Options.Insert("host", Host);
Options.Insert("port", Port);
Options.Insert("user", Login);
Options.Insert("pass", Password);
SSHSettings = OPI_TestDataRetrieval.ExecuteTestCLI("ssh", "GetSettingsLoginPassword", Options);
ElsIf AuthorizationType = "By key" Then
Login = FunctionParameters["SSH_User"];
PrivateKey = "./ssh_key";
PublicKey = "./ssh_key.pub";
PrivateKey = FunctionParameters["SSH_Key"]; // SKIP
PublicKey = FunctionParameters["SSH_Pub"]; // SKIP
SSHSettings = OPI_SSH.GetSettingsPrivateKey(Host, Port, Login, PrivateKey, PublicKey);
ElsIf AuthorizationType = "Keyboard interactive" Then
Login = FunctionParameters["SSH_User"];
Password = FunctionParameters["SSH_Password"];
AnswersArray = New Array;
AnswersArray.Add(Password);
Port = FunctionParameters["SSH_PortKI"]; // SKIP
SSHSettings = OPI_SSH.GetSettingsKI(Host, Port, Login, AnswersArray);
Else
Login = FunctionParameters["SSH_User"];
SSHSettings = OPI_SSH.GetSettingsViaAgent(Host, Port, Login);
EndIf;
If UseProxy Then
ProxyType = FunctionParameters["Proxy_Type"]; // http, socks5, socks4
ProxyAddress = FunctionParameters["Proxy_IP"];
ProxyPort = FunctionParameters["Proxy_Port"];
ProxyLogin = FunctionParameters["Proxy_User"];
ProxyPassword = FunctionParameters["Proxy_Password"];
Options = New Structure;
Options.Insert("addr", ProxyAddress);
Options.Insert("port", ProxyPort);
Options.Insert("type", ProxyType);
Options.Insert("login", ProxyLogin);
Options.Insert("pass", ProxyPassword);
ProxySettings = OPI_TestDataRetrieval.ExecuteTestCLI("ssh", "GetProxySettings", Options);
EndIf;
Options = New Structure;
Options.Insert("set", SSHSettings);
Options.Insert("proxy", ProxySettings);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ssh", "GetConnectionConfiguration", Options);
// END
OPI_TestDataRetrieval.Process(Result, "SSH", "GetConnectionConfiguration", Postfix);
Options = New Structure;
Options.Insert("conn", Result);
Options.Insert("comm", "whoami");
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ssh", "ExecuteCommand", Options);
OPI_TestDataRetrieval.Process(Result, "SSH", "GetConnectionConfiguration", "Check, " + Postfix);
EndProcedure
Procedure SSH_CloseConnection(FunctionParameters)
Postfix = FunctionParameters["Postfix"]; // SKIP
Host = FunctionParameters["SSH_Host"];
Port = FunctionParameters["SSH_Port"];
UseProxy = True;
ProxySettings = Undefined;
AuthorizationType = "By login and password";
UseProxy = FunctionParameters["Proxy"]; // SKIP
AuthorizationType = FunctionParameters["AuthType"]; // SKIP
If AuthorizationType = "By login and password" Then
Login = FunctionParameters["SSH_User"];
Password = FunctionParameters["SSH_Password"];
Options = New Structure;
Options.Insert("host", Host);
Options.Insert("port", Port);
Options.Insert("user", Login);
Options.Insert("pass", Password);
SSHSettings = OPI_TestDataRetrieval.ExecuteTestCLI("ssh", "GetSettingsLoginPassword", Options);
ElsIf AuthorizationType = "By key" Then
Login = FunctionParameters["SSH_User"];
PrivateKey = "./ssh_key";
PublicKey = "./ssh_key.pub";
PrivateKey = FunctionParameters["SSH_Key"]; // SKIP
PublicKey = FunctionParameters["SSH_Pub"]; // SKIP
SSHSettings = OPI_SSH.GetSettingsPrivateKey(Host, Port, Login, PrivateKey, PublicKey);
ElsIf AuthorizationType = "Keyboard interactive" Then
Login = FunctionParameters["SSH_User"];
Password = FunctionParameters["SSH_Password"];
AnswersArray = New Array;
AnswersArray.Add(Password);
Port = FunctionParameters["SSH_PortKI"]; // SKIP
SSHSettings = OPI_SSH.GetSettingsKI(Host, Port, Login, AnswersArray);
Else
Login = FunctionParameters["SSH_User"];
SSHSettings = OPI_SSH.GetSettingsViaAgent(Host, Port, Login);
EndIf;
If UseProxy Then
ProxyType = FunctionParameters["Proxy_Type"]; // http, socks5, socks4
ProxyAddress = FunctionParameters["Proxy_IP"];
ProxyPort = FunctionParameters["Proxy_Port"];
ProxyLogin = FunctionParameters["Proxy_User"];
ProxyPassword = FunctionParameters["Proxy_Password"];
Options = New Structure;
Options.Insert("addr", ProxyAddress);
Options.Insert("port", ProxyPort);
Options.Insert("type", ProxyType);
Options.Insert("login", ProxyLogin);
Options.Insert("pass", ProxyPassword);
ProxySettings = OPI_TestDataRetrieval.ExecuteTestCLI("ssh", "GetProxySettings", Options);
EndIf;
Connection = OPI_SSH.CreateConnection(SSHSettings, ProxySettings);
If OPI_SSH.IsConnector(Connection) Then
Result = OPI_SSH.CloseConnection(Connection);
Else
Result = Connection; // Error of connection
EndIf;
// END
OPI_TestDataRetrieval.Process(Result, "SSH", "CloseConnection", Postfix);
EndProcedure
Procedure SSH_IsConnector(FunctionParameters)
Postfix = FunctionParameters["Postfix"]; // SKIP
Host = FunctionParameters["SSH_Host"];
Port = FunctionParameters["SSH_Port"];
UseProxy = True;
ProxySettings = Undefined;
AuthorizationType = "By login and password";
UseProxy = FunctionParameters["Proxy"]; // SKIP
AuthorizationType = FunctionParameters["AuthType"]; // SKIP
If AuthorizationType = "By login and password" Then
Login = FunctionParameters["SSH_User"];
Password = FunctionParameters["SSH_Password"];
Options = New Structure;
Options.Insert("host", Host);
Options.Insert("port", Port);
Options.Insert("user", Login);
Options.Insert("pass", Password);
SSHSettings = OPI_TestDataRetrieval.ExecuteTestCLI("ssh", "GetSettingsLoginPassword", Options);
ElsIf AuthorizationType = "By key" Then
Login = FunctionParameters["SSH_User"];
PrivateKey = "./ssh_key";
PublicKey = "./ssh_key.pub";
PrivateKey = FunctionParameters["SSH_Key"]; // SKIP
PublicKey = FunctionParameters["SSH_Pub"]; // SKIP
SSHSettings = OPI_SSH.GetSettingsPrivateKey(Host, Port, Login, PrivateKey, PublicKey);
ElsIf AuthorizationType = "Keyboard interactive" Then
Login = FunctionParameters["SSH_User"];
Password = FunctionParameters["SSH_Password"];
AnswersArray = New Array;
AnswersArray.Add(Password);
Port = 2223; // SKIP
SSHSettings = OPI_SSH.GetSettingsKI(Host, Port, Login, AnswersArray);
Else
Login = FunctionParameters["SSH_User"];
SSHSettings = OPI_SSH.GetSettingsViaAgent(Host, Port, Login);
EndIf;
If UseProxy Then
ProxyType = FunctionParameters["Proxy_Type"]; // http, socks5, socks4
ProxyAddress = FunctionParameters["Proxy_IP"];
ProxyPort = FunctionParameters["Proxy_Port"];
ProxyLogin = FunctionParameters["Proxy_User"];
ProxyPassword = FunctionParameters["Proxy_Password"];
Options = New Structure;
Options.Insert("addr", ProxyAddress);
Options.Insert("port", ProxyPort);
Options.Insert("type", ProxyType);
Options.Insert("login", ProxyLogin);
Options.Insert("pass", ProxyPassword);
ProxySettings = OPI_TestDataRetrieval.ExecuteTestCLI("ssh", "GetProxySettings", Options);
EndIf;
Connection = OPI_SSH.CreateConnection(SSHSettings, ProxySettings);
Result = OPI_SSH.IsConnector(Connection);
// END
OPI_TestDataRetrieval.Process(Result, "SSH", "IsConnector", Postfix);
Result = OPI_SSH.IsConnector("a");
OPI_TestDataRetrieval.Process(Result, "SSH", "IsConnector", "Error, " + Postfix);
EndProcedure
Procedure SSH_GetSettingsLoginPassword(FunctionParameters)
Postfix = FunctionParameters["Postfix"]; // SKIP
Host = FunctionParameters["SSH_Host"];
Port = FunctionParameters["SSH_Port"];
Login = FunctionParameters["SSH_User"];
Password = FunctionParameters["SSH_Password"];
Options = New Structure;
Options.Insert("host", Host);
Options.Insert("port", Port);
Options.Insert("user", Login);
Options.Insert("pass", Password);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ssh", "GetSettingsLoginPassword", Options);
// END
OPI_TestDataRetrieval.Process(Result, "SSH", "GetSettingsLoginPassword", Postfix);
EndProcedure
Procedure SSH_GetSettingsPrivateKey(FunctionParameters)
Postfix = FunctionParameters["Postfix"]; // SKIP
Host = FunctionParameters["SSH_Host"];
Port = FunctionParameters["SSH_Port"];
Login = FunctionParameters["SSH_User"];
PrivateKey = "./ssh_key";
PublicKey = "./ssh_key.pub";
PrivateKey = FunctionParameters["SSH_Key"]; // SKIP
PublicKey = FunctionParameters["SSH_Pub"]; // SKIP
Options = New Structure;
Options.Insert("host", Host);
Options.Insert("port", Port);
Options.Insert("user", Login);
Options.Insert("key", PrivateKey);
Options.Insert("pub", PublicKey);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ssh", "GetSettingsPrivateKey", Options);
// END
OPI_TestDataRetrieval.Process(Result, "SSH", "GetSettingsPrivateKey", Postfix);
EndProcedure
Procedure SSH_GetSettingsViaAgent(FunctionParameters)
Postfix = FunctionParameters["Postfix"]; // SKIP
Host = FunctionParameters["SSH_Host"];
Port = FunctionParameters["SSH_Port"];
Login = FunctionParameters["SSH_User"];
Options = New Structure;
Options.Insert("host", Host);
Options.Insert("port", Port);
Options.Insert("user", Login);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ssh", "GetSettingsViaAgent", Options);
// END
OPI_TestDataRetrieval.Process(Result, "SSH", "GetSettingsViaAgent", Postfix);
EndProcedure
Procedure SSH_GetSettingsKI(FunctionParameters)
Postfix = FunctionParameters["Postfix"]; // SKIP
Host = FunctionParameters["SSH_Host"];
Port = FunctionParameters["SSH_Port"];
Login = FunctionParameters["SSH_User"];
Password = FunctionParameters["SSH_Password"];
AnswersArray = New Array;
AnswersArray.Add("yes");
AnswersArray.Add(Password);
Options = New Structure;
Options.Insert("host", Host);
Options.Insert("port", Port);
Options.Insert("user", Login);
Options.Insert("prompts", AnswersArray);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ssh", "GetSettingsKI", Options);
// END
OPI_TestDataRetrieval.Process(Result, "SSH", "GetSettingsKI", Postfix);
EndProcedure
Procedure SSH_GetProxySettings(FunctionParameters)
Postfix = FunctionParameters["Postfix"]; // SKIP
ProxyType = FunctionParameters["Proxy_Type"]; // http, socks5, socks4
ProxyAddress = FunctionParameters["Proxy_IP"];
ProxyPort = FunctionParameters["Proxy_Port"];
ProxyLogin = FunctionParameters["Proxy_User"];
ProxyPassword = FunctionParameters["Proxy_Password"];
Options = New Structure;
Options.Insert("addr", ProxyAddress);
Options.Insert("port", ProxyPort);
Options.Insert("type", ProxyType);
Options.Insert("login", ProxyLogin);
Options.Insert("pass", ProxyPassword);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ssh", "GetProxySettings", Options);
// END
OPI_TestDataRetrieval.Process(Result, "SSH", "GetProxySettings", Postfix);
EndProcedure
#EndRegion // SSH
#EndRegion // AtomicTests
#EndRegion // Private
#Region Alternate
Procedure SShell_ОсновныеМетоды() Export
SShell_CommonMethods();
EndProcedure
#EndRegion
+984
View File
@@ -0,0 +1,984 @@
// OneScript: ./OInt/tests/Modules/OPItc_Slack.os
// MIT License
// Copyright (c) 2023-2026 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
// Test suite for YAxUnit
// BSLLS:Typo-off
// BSLLS:LatinAndCyrillicSymbolInWord-off
// BSLLS:IncorrectLineBreak-off
// BSLLS:UsingServiceTag-off
// BSLLS:UnusedParameters-off
// BSLLS:DuplicateStringLiteral-off
// BSLLS:UsingHardcodePath-off
// BSLLS:UnusedLocalVariable-off
// BSLLS:DeprecatedMessage-off
// BSLLS:LineLength-off
// BSLLS:MagicNumber-off
// BSLLS:CommentedCode-off
// BSLLS:AssignAliasFieldsInQuery-off
// BSLLS:UsingHardcodeNetworkAddress-off
// BSLLS:UnreachableCode-off
// BSLLS:UnusedLocalMethod-off
// BSLLS:NestedFunctionInParameters-off
// BSLLS:MissingTemporaryFileDeletion-off
// BSLLS:UsingSynchronousCalls-off
// BSLLS:MagicNumber-off
// BSLLS:MagicDate-off
// BSLLS:MissingParameterDescription-off
// BSLLS:NumberOfOptionalParams-off
// BSLLS:MethodSize-off
// BSLLS:NestedConstructorsInStructureDeclaration-off
// BSLLS:NumberOfValuesInStructureConstructor-off
// BSLLS:UsingHardcodeSecretInformation-off
// BSLLS:SpaceAtStartComment-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
//@skip-check module-unused-local-variable
//@skip-check bsl-legacy-check-string-literal
//@skip-check bsl-legacy-check-method-for-statements-after-return
//@skip-check missing-temporary-file-deletion
//@skip-check module-unused-method
#Use "../../tools/main"
#Use "../../tools/http"
#Use "../../api"
#Use asserts
#Use "internal"
// For YAxUnit
Procedure ИсполняемыеСценарии() Export
OPI_TestDataRetrieval.FormYAXTests("Slack");
EndProcedure
// For Asserts
Function ПолучитьСписокТестов(UnitTesting) Export
Return OPI_TestDataRetrieval.FormAssertsTests("Slack");
EndFunction
#Region Internal
#Region RunnableTests
#Region Slack
Procedure SlackGetData() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Slack_Token", TestParameters);
Slack_GetBotInformation(TestParameters);
Slack_GetUserList(TestParameters);
Slack_GetWorkspaceList(TestParameters);
EndProcedure
Procedure Slack_SendDeleteMessage() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Slack_Token" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Slack_Channel", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Picture" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Slack_User" , TestParameters);
Slack_SendMessage(TestParameters);
Slack_EditMessage(TestParameters);
Slack_GetMessageReplyList(TestParameters);
Slack_GetMessageLink(TestParameters);
Slack_DeleteMessage(TestParameters);
Slack_SendEphemeralMessage(TestParameters);
Slack_GetDelayedMessageList(TestParameters);
Slack_GenerateImageBlock(TestParameters);
EndProcedure
Procedure Slack_CreateArchiveChannel() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Slack_Token", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Slack_User" , TestParameters);
Slack_CreateChannel(TestParameters);
Slack_SetChannelTopic(TestParameters);
Slack_SetChannelGoal(TestParameters);
Slack_GetChannel(TestParameters);
Slack_InviteUsersToChannel(TestParameters);
Slack_KickUserFromChannel(TestParameters);
Slack_GetChannelHistory(TestParameters);
Slack_GetChannelUserList(TestParameters);
Slack_LeaveChannel(TestParameters);
Slack_JoinChannel(TestParameters);
Slack_RenameChannel(TestParameters);
Slack_ArchiveChannel(TestParameters);
Slack_GetChannelList(TestParameters);
EndProcedure
Procedure Slack_OpenCloseDialog() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Slack_Token", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Slack_User" , TestParameters);
Slack_OpenDialog(TestParameters);
Slack_CloseDialog(TestParameters);
EndProcedure
Procedure Slack_UploadDeleteFile() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Slack_Token" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Slack_Channel", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Document" , TestParameters);
Slack_GetFilesList(TestParameters);
Slack_UploadFile(TestParameters);
Slack_MakeFilePublic(TestParameters);
Slack_MakeFilePrivate(TestParameters);
Slack_GetFileData(TestParameters);
Slack_DeleteFile(TestParameters);
EndProcedure
Procedure Slack_UploadDeleteExternalFile() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Slack_Token" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Slack_Channel", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Document" , TestParameters);
Slack_GetExternalFileList(TestParameters);
Slack_AddExternalFile(TestParameters);
Slack_GetExternalFile(TestParameters);
Slack_SendExternalFile(TestParameters);
Slack_DeleteExternalFile(TestParameters);
EndProcedure
#EndRegion // Slack
#EndRegion // RunnableTests
#EndRegion // Internal
#Region Private
#Region AtomicTests
#Region Slack
Procedure Slack_GetBotInformation(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
Options = New Structure;
Options.Insert("token", Token);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "GetBotInformation", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "GetBotInformation");
EndProcedure
Procedure Slack_GetUserList(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
Options = New Structure;
Options.Insert("token", Token);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "GetUserList", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "GetUserList");
EndProcedure
Procedure Slack_GetWorkspaceList(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
Options = New Structure;
Options.Insert("token", Token);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "GetWorkspaceList", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "GetWorkspaceList");
EndProcedure
Procedure Slack_SendMessage(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
Channel = FunctionParameters["Slack_Channel"];
// Text
Text = "TestMessage1";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("channel", Channel);
Options.Insert("text", Text);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "SendMessage", Options);
OPI_TestDataRetrieval.Process(Result, "Slack", "SendMessage", , FunctionParameters, Text, Channel); // SKIP
// With attachments (picture block in the example)
Text = "Message with picture";
Image = FunctionParameters["Picture"];
BlockArray = New Array;
Options = New Structure;
Options.Insert("picture", Image);
Options.Insert("alt", "Image");
Block = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "GenerateImageBlock", Options);
BlockArray.Add(Block);
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("channel", Channel);
Options.Insert("text", Text);
Options.Insert("blocks", BlockArray);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "SendMessage", Options);
OPI_TestDataRetrieval.Process(Result, "Slack", "SendMessage", "Image", FunctionParameters, Text, Channel); // SKIP
// Sheduled
Text = "Sheduled message";
Hour = 3600;
Day = 24;
SendingDate = OPI_Tools.GetCurrentDate() + (Day * Hour);
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("channel", Channel);
Options.Insert("text", Text);
Options.Insert("date", SendingDate);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "SendMessage", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "SendMessage", "Sheduled", FunctionParameters, Text, Channel);
Token = FunctionParameters["Slack_Token"];
Timestamp = Result["scheduled_message_id"];
OPI_Slack.DeleteMessage(Token, Channel, Timestamp, True);
EndProcedure
Procedure Slack_GenerateImageBlock(FunctionParameters)
Image = FunctionParameters["Picture"];
Options = New Structure;
Options.Insert("picture", Image);
Options.Insert("alt", "Image");
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "GenerateImageBlock", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "GenerateImageBlock");
EndProcedure
Procedure Slack_EditMessage(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
Channel = FunctionParameters["Slack_Channel"];
Timestamp = FunctionParameters["Slack_MessageTS"];
Text = "TestMessage2";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("channel", Channel);
Options.Insert("stamp", Timestamp);
Options.Insert("text", Text);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "EditMessage", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "EditMessage", , Text, Channel);
EndProcedure
Procedure Slack_GetMessageReplyList(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
Channel = FunctionParameters["Slack_Channel"];
Timestamp = FunctionParameters["Slack_MessageTS"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("channel", Channel);
Options.Insert("stamp", Timestamp);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "GetMessageReplyList", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "GetMessageReplyList");
EndProcedure
Procedure Slack_GetMessageLink(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
Channel = FunctionParameters["Slack_Channel"];
Timestamp = FunctionParameters["Slack_MessageTS"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("channel", Channel);
Options.Insert("stamp", Timestamp);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "GetMessageLink", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "GetMessageLink", , Channel);
EndProcedure
Procedure Slack_DeleteMessage(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
Channel = FunctionParameters["Slack_Channel"];
Timestamp = FunctionParameters["Slack_MessageTS"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("channel", Channel);
Options.Insert("stamp", Timestamp);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "DeleteMessage", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "DeleteMessage");
EndProcedure
Procedure Slack_SendEphemeralMessage(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
Channel = FunctionParameters["Slack_Channel"];
User = FunctionParameters["Slack_User"];
Image = FunctionParameters["Picture"];
Text = "Ephemeral message";
Options = New Structure;
Options.Insert("picture", Image);
Options.Insert("alt", "Image");
Block = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "GenerateImageBlock", Options);
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("channel", Channel);
Options.Insert("text", Text);
Options.Insert("user", User);
Options.Insert("blocks", Block);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "SendEphemeralMessage", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "SendEphemeralMessage");
EndProcedure
Procedure Slack_GetDelayedMessageList(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
Channel = FunctionParameters["Slack_Channel"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("channel", Channel);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "GetDelayedMessageList", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "GetDelayedMessageList");
EndProcedure
Procedure Slack_CreateChannel(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
Name = "testconv" + String(New UUID);
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("title", Name);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "CreateChannel", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "CreateChannel", , FunctionParameters, Name);
EndProcedure
Procedure Slack_SetChannelTopic(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
Channel = FunctionParameters["Slack_NewChannel"];
Topic = "TestTopic";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("channel", Channel);
Options.Insert("theme", Topic);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "SetChannelTopic", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "SetChannelTopic", , Topic);
EndProcedure
Procedure Slack_SetChannelGoal(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
Channel = FunctionParameters["Slack_NewChannel"];
Purpose = "TestGoal";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("channel", Channel);
Options.Insert("purpose", Purpose);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "SetChannelGoal", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "SetChannelGoal");
EndProcedure
Procedure Slack_GetChannel(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
Channel = FunctionParameters["Slack_NewChannel"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("channel", Channel);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "GetChannel", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "GetChannel", , FunctionParameters["Slack_NewChannelName"]);
EndProcedure
Procedure Slack_InviteUsersToChannel(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
Channel = FunctionParameters["Slack_NewChannel"];
User = FunctionParameters["Slack_User"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("channel", Channel);
Options.Insert("users", User);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "InviteUsersToChannel", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "InviteUsersToChannel", , FunctionParameters["Slack_NewChannelName"]);
EndProcedure
Procedure Slack_KickUserFromChannel(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
Channel = FunctionParameters["Slack_NewChannel"];
User = FunctionParameters["Slack_User"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("channel", Channel);
Options.Insert("user", User);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "KickUserFromChannel", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "KickUserFromChannel");
EndProcedure
Procedure Slack_GetChannelHistory(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
Channel = FunctionParameters["Slack_NewChannel"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("channel", Channel);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "GetChannelHistory", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "GetChannelHistory");
EndProcedure
Procedure Slack_GetChannelUserList(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
Channel = FunctionParameters["Slack_NewChannel"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("channel", Channel);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "GetChannelUserList", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "GetChannelUserList");
EndProcedure
Procedure Slack_LeaveChannel(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
Channel = FunctionParameters["Slack_NewChannel"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("channel", Channel);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "LeaveChannel", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "LeaveChannel");
EndProcedure
Procedure Slack_JoinChannel(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
Channel = FunctionParameters["Slack_NewChannel"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("channel", Channel);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "JoinChannel", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "JoinChannel", , FunctionParameters["Slack_NewChannelName"]);
EndProcedure
Procedure Slack_RenameChannel(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
Channel = FunctionParameters["Slack_NewChannel"];
Name = "testconv" + String(New UUID);
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("channel", Channel);
Options.Insert("title", Name);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "RenameChannel", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "RenameChannel", , Name);
EndProcedure
Procedure Slack_ArchiveChannel(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
Channel = FunctionParameters["Slack_NewChannel"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("channel", Channel);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "ArchiveChannel", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "ArchiveChannel");
EndProcedure
Procedure Slack_GetChannelList(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
Options = New Structure;
Options.Insert("token", Token);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "GetChannelList", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "GetChannelList");
EndProcedure
Procedure Slack_OpenDialog(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
User = FunctionParameters["Slack_User"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("users", User);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "OpenDialog", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "OpenDialog", , FunctionParameters);
Channel = Result["channel"]["id"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("channel", Channel);
Options.Insert("text", "Test dialog");
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "SendMessage", Options);
OPI_TestDataRetrieval.Process(Result, "Slack", "OpenDialog", "Message", FunctionParameters);
EndProcedure
Procedure Slack_CloseDialog(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
Dialog = FunctionParameters["Slack_Dialog"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("conv", Dialog);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "CloseDialog", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "CloseDialog");
EndProcedure
Procedure Slack_GetFilesList(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
Channel = FunctionParameters["Slack_Channel"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("channel", Channel);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "GetFilesList", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "GetFilesList");
Options = New Structure;
Options.Insert("token", Token);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "GetFilesList", Options);
OPI_TestDataRetrieval.Process(Result, "Slack", "GetFilesList", "All");
EndProcedure
Procedure Slack_UploadFile(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
Channel = FunctionParameters["Slack_Channel"];
File = FunctionParameters["Document"]; // URL, Binary Data or File path
FileName = "megadoc.docx";
Title = "NewFile";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("file", File);
Options.Insert("filename", FileName);
Options.Insert("title", Title);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "UploadFile", Options);
OPI_TestDataRetrieval.Process(Result, "Slack", "UploadFile", , FunctionParameters, FileName); // SKIP
OPI_TestDataRetrieval.Process(Result, "Slack", "MakeFilePublic"); // SKIP
OPI_TestDataRetrieval.Process(Result, "Slack", "MakeFilePrivate"); // SKIP
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("file", File);
Options.Insert("filename", FileName);
Options.Insert("title", Title);
Options.Insert("channel", Channel);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "UploadFile", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "UploadFile", "Channel", FunctionParameters, FileName);
OPI_Slack.DeleteFile(FunctionParameters["Slack_Token"], Result["files"][0]["id"]);
EndProcedure
Procedure Slack_MakeFilePublic(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
FileID = FunctionParameters["Slack_FileID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("fileid", FileID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "MakeFilePublic", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "MakeFilePublic", "No record");
EndProcedure
Procedure Slack_MakeFilePrivate(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
FileID = FunctionParameters["Slack_FileID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("fileid", FileID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "MakeFilePrivate", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "MakeFilePrivate", "No record");
EndProcedure
Procedure Slack_GetFileData(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
FileID = FunctionParameters["Slack_FileID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("fileid", FileID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "GetFileData", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "GetFileData", , "megadoc.docx");
EndProcedure
Procedure Slack_DeleteFile(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
FileID = FunctionParameters["Slack_FileID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("fileid", FileID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "DeleteFile", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "DeleteFile");
EndProcedure
Procedure Slack_GetExternalFileList(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
Channel = FunctionParameters["Slack_Channel"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("channel", Channel);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "GetExternalFileList", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "GetExternalFileList");
Options = New Structure;
Options.Insert("token", Token);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "GetExternalFileList", Options);
OPI_TestDataRetrieval.Process(Result, "Slack", "GetExternalFileList", "All");
EndProcedure
Procedure Slack_AddExternalFile(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
Title = "NewFile";
File = FunctionParameters["Document"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("url", File);
Options.Insert("title", Title);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "AddExternalFile", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "AddExternalFile", , FunctionParameters, Title);
EndProcedure
Procedure Slack_GetExternalFile(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
FileID = FunctionParameters["Slack_ExtFileID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("fileid", FileID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "GetExternalFile", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "GetExternalFile");
EndProcedure
Procedure Slack_SendExternalFile(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
Channel = FunctionParameters["Slack_Channel"];
FileID = FunctionParameters["Slack_ExtFileID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("fileid", FileID);
Options.Insert("channels", Channel);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "SendExternalFile", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "SendExternalFile");
EndProcedure
Procedure Slack_DeleteExternalFile(FunctionParameters)
Token = FunctionParameters["Slack_Token"];
FileID = FunctionParameters["Slack_ExtFileID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("fileid", FileID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("slack", "DeleteExternalFile", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Slack", "DeleteExternalFile");
EndProcedure
#EndRegion // Slack
#EndRegion // AtomicTests
#EndRegion // Private
#Region Alternate
Procedure Слак_ПолучитьИнформацию() Export
SlackGetData();
EndProcedure
Procedure Слак_ОтправитьУдалитьСообщение() Export
Slack_SendDeleteMessage();
EndProcedure
Procedure Слак_СоздатьАрхивироватьКанал() Export
Slack_CreateArchiveChannel();
EndProcedure
Procedure Слак_ОткрытьЗакрытьДиалог() Export
Slack_OpenCloseDialog();
EndProcedure
Procedure Слак_ЗагрузитьУдалитьФайл() Export
Slack_UploadDeleteFile();
EndProcedure
Procedure Слак_ЗагрузитьУдалитьВФ() Export
Slack_UploadDeleteExternalFile();
EndProcedure
#EndRegion
+839
View File
@@ -0,0 +1,839 @@
// OneScript: ./OInt/tests/Modules/OPItc_TCP.os
// MIT License
// Copyright (c) 2023-2026 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
// Test suite for YAxUnit
// BSLLS:Typo-off
// BSLLS:LatinAndCyrillicSymbolInWord-off
// BSLLS:IncorrectLineBreak-off
// BSLLS:UsingServiceTag-off
// BSLLS:UnusedParameters-off
// BSLLS:DuplicateStringLiteral-off
// BSLLS:UsingHardcodePath-off
// BSLLS:UnusedLocalVariable-off
// BSLLS:DeprecatedMessage-off
// BSLLS:LineLength-off
// BSLLS:MagicNumber-off
// BSLLS:CommentedCode-off
// BSLLS:AssignAliasFieldsInQuery-off
// BSLLS:UsingHardcodeNetworkAddress-off
// BSLLS:UnreachableCode-off
// BSLLS:UnusedLocalMethod-off
// BSLLS:NestedFunctionInParameters-off
// BSLLS:MissingTemporaryFileDeletion-off
// BSLLS:UsingSynchronousCalls-off
// BSLLS:MagicNumber-off
// BSLLS:MagicDate-off
// BSLLS:MissingParameterDescription-off
// BSLLS:NumberOfOptionalParams-off
// BSLLS:MethodSize-off
// BSLLS:NestedConstructorsInStructureDeclaration-off
// BSLLS:NumberOfValuesInStructureConstructor-off
// BSLLS:UsingHardcodeSecretInformation-off
// BSLLS:SpaceAtStartComment-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
//@skip-check module-unused-local-variable
//@skip-check bsl-legacy-check-string-literal
//@skip-check bsl-legacy-check-method-for-statements-after-return
//@skip-check missing-temporary-file-deletion
//@skip-check module-unused-method
#Use "../../tools/main"
#Use "../../tools/http"
#Use "../../api"
#Use asserts
#Use "internal"
// For YAxUnit
Procedure ИсполняемыеСценарии() Export
OPI_TestDataRetrieval.FormYAXTests("TCP");
EndProcedure
// For Asserts
Function ПолучитьСписокТестов(UnitTesting) Export
Return OPI_TestDataRetrieval.FormAssertsTests("TCP");
EndFunction
#Region Internal
#Region RunnableTests
#Region TCP
Procedure TC_Client() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("TCP_Address" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("TCP_AddressTLS", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Proxy_User" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Proxy_Password", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Socks5_IP" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Socks5_Port" , TestParameters);
TCP_CreateConnection(TestParameters);
TCP_CloseConnection(TestParameters);
TCP_ReadBinaryData(TestParameters);
TCP_SendBinaryData(TestParameters);
TCP_ReadLine(TestParameters);
TCP_SendLine(TestParameters);
TCP_ProcessRequest(TestParameters);
TCP_GetTLSSettings(TestParameters);
TCP_GetLastError(TestParameters);
TCP_GetProxySettings(TestParameters);
EndProcedure
Procedure TC_Server() Export
TestParameters = New Structure;
TCP_StartServer(TestParameters);
TCP_StopServer(TestParameters);
TCP_GetNextConnectionData(TestParameters);
TCP_GetConnectionData(TestParameters);
TCP_SendData(TestParameters);
TCP_CloseIncomingConnection(TestParameters);
TCP_CompleteSend(TestParameters);
TCP_FinishReceiving(TestParameters);
TCP_GetConnectionList(TestParameters);
TCP_IsServerObject(TestParameters);
TCP_GetLog(TestParameters);
TCP_GetLoggingSettings(TestParameters);
EndProcedure
#EndRegion // TCP
#EndRegion // RunnableTests
#EndRegion // Internal
#Region Private
#Region AtomicTests
#Region TCP
Procedure TCP_CreateConnection(FunctionParameters)
Address = FunctionParameters["TCP_Address"];
Connection = OPI_TCP.CreateConnection(Address);
OPI_TestDataRetrieval.Process(Connection, "TCP", "CreateConnection"); // SKIP
OPI_TCP.CloseConnection(Connection);
Address = "tcpbin.com:4243";
Options = New Structure;
Options.Insert("trust", Истина);
Tls = OPI_TestDataRetrieval.ExecuteTestCLI("tcp", "GetTLSSettings", Options);
ProxtUser = FunctionParameters["Proxy_User"];
ProxyPassword = FunctionParameters["Proxy_Password"];
ProxyAddress = FunctionParameters["Socks5_IP"];
ProxyPort = FunctionParameters["Socks5_Port"];
ProxyAddress = ?(ProxyAddress = "127.0.0.1", OPI_TestDataRetrieval.GetLocalhost(), ProxyAddress); // SKIP
Options = New Structure;
Options.Insert("addr", ProxyAddress);
Options.Insert("port", ProxyPort);
Options.Insert("type", "socks5");
Options.Insert("login", ProxtUser);
Options.Insert("pass", ProxyPassword);
Proxy = OPI_TestDataRetrieval.ExecuteTestCLI("tcp", "GetProxySettings", Options);
Options = New Structure;
Options.Insert("trust", Истина);
Tls = OPI_TestDataRetrieval.ExecuteTestCLI("tcp", "GetTLSSettings", Options);
Connection = OPI_TCP.CreateConnection(Address, TLS, Proxy);
// END
OPI_TestDataRetrieval.Process(Connection, "TCP", "CreateConnection", "TLS");
EndProcedure
Procedure TCP_CloseConnection(FunctionParameters)
Address = FunctionParameters["TCP_Address"];
Connection = OPI_TCP.CreateConnection(Address);
Result = OPI_TCP.CloseConnection(Connection);
// END
OPI_TestDataRetrieval.Process(Result, "TCP", "CloseConnection");
EndProcedure
Procedure TCP_ReadBinaryData(FunctionParameters)
Address = FunctionParameters["TCP_Address"];
Connection = OPI_TCP.CreateConnection(Address);
Message = "Hello server!" + Chars.LF;
Data = GetBinaryDataFromString(Message);
OPI_TCP.SendBinaryData(Connection, Data);
// End of message marker to avoid waiting for the end of timeout
Marker = Chars.LF;
Result = OPI_TCP.ReadBinaryData(Connection, , Marker);
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
OPI_TCP.CloseConnection(Connection);
// END
OPI_TestDataRetrieval.Process(Result, "TCP", "ReadBinaryData", , Message);
Connection = OPI_TCP.CreateConnection(Address);
OPI_TCP.SendBinaryData(Connection, Data);
Result = OPI_TCP.ReadBinaryData(Connection, , , 50000);
OPI_TCP.CloseConnection(Connection);
OPI_TestDataRetrieval.Process(Result, "TCP", "ReadBinaryData", "Timeout", Message);
EndProcedure
Procedure TCP_SendBinaryData(FunctionParameters)
Address = FunctionParameters["TCP_Address"];
Connection = OPI_TCP.CreateConnection(Address);
Message = "Hello server!" + Chars.LF;
Data = GetBinaryDataFromString(Message);
Result = OPI_TCP.SendBinaryData(Connection, Data);
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// End of message marker to avoid waiting for the end of timeout
Marker = Chars.LF;
Response = OPI_TCP.ReadBinaryData(Connection, , Marker);
OPI_TCP.CloseConnection(Connection);
// END
OPI_TestDataRetrieval.Process(Response, "TCP", "SendBinaryData", , Message);
Connection = OPI_TCP.CreateConnection(Address);
OPI_TCP.SendBinaryData(Connection, Data);
Result = OPI_TCP.ReadBinaryData(Connection, , , 50000);
OPI_TCP.CloseConnection(Connection);
OPI_TestDataRetrieval.Process(Result, "TCP", "SendBinaryData", "Timeout", Message);
EndProcedure
Procedure TCP_ProcessRequest(FunctionParameters)
Address = FunctionParameters["TCP_Address"];
Data = "Echo this!" + Chars.LF;
Options = New Structure;
Options.Insert("address", Address);
Options.Insert("data", Data);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("tcp", "ProcessRequest", Options);
OPI_TestDataRetrieval.Process(Result, "TCP", "ProcessRequest", , "Echo this!" + Chars.LF); // SKIP
Address = FunctionParameters["TCP_AddressTLS"];
ProxtUser = FunctionParameters["Proxy_User"];
ProxyPassword = FunctionParameters["Proxy_Password"];
ProxyAddress = FunctionParameters["Socks5_IP"];
ProxyPort = FunctionParameters["Socks5_Port"];
ProxyAddress = ?(ProxyAddress = "127.0.0.1", OPI_TestDataRetrieval.GetLocalhost(), ProxyAddress); // SKIP
Options = New Structure;
Options.Insert("addr", ProxyAddress);
Options.Insert("port", ProxyPort);
Options.Insert("type", "socks5");
Options.Insert("login", ProxtUser);
Options.Insert("pass", ProxyPassword);
Proxy = OPI_TestDataRetrieval.ExecuteTestCLI("tcp", "GetProxySettings", Options);
Options = New Structure;
Options.Insert("trust", Истина);
Tls = OPI_TestDataRetrieval.ExecuteTestCLI("tcp", "GetTLSSettings", Options);
Options = New Structure;
Options.Insert("address", Address);
Options.Insert("data", Data);
Options.Insert("tls", Tls);
Options.Insert("proxy", Proxy);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("tcp", "ProcessRequest", Options);
// END
OPI_TestDataRetrieval.Process(Result, "TCP", "ProcessRequest", "TLS", "Echo this!" + Chars.LF);
EndProcedure
Procedure TCP_ReadLine(FunctionParameters)
Address = FunctionParameters["TCP_Address"];
Connection = OPI_TCP.CreateConnection(Address);
Data = "Hello server!" + Chars.LF;
OPI_TCP.SendLine(Connection, Data);
// End of message marker to avoid waiting for the end of timeout
Marker = Chars.LF;
Result = OPI_TCP.ReadLine(Connection, , Marker);
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
OPI_TCP.CloseConnection(Connection);
// END
OPI_TestDataRetrieval.Process(Result, "TCP", "ReadLine", , Data);
Connection = OPI_TCP.CreateConnection(Address);
OPI_TCP.SendLine(Connection, Data);
Result = OPI_TCP.ReadLine(Connection, , , 50000);
OPI_TCP.CloseConnection(Connection);
OPI_TestDataRetrieval.Process(Result, "TCP", "ReadLine", "Timeout", Data);
EndProcedure
Procedure TCP_SendLine(FunctionParameters)
Address = FunctionParameters["TCP_Address"];
Connection = OPI_TCP.CreateConnection(Address);
Data = "Hello server!" + Chars.LF;
Result = OPI_TCP.SendLine(Connection, Data);
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// End of message marker to avoid waiting for the end of timeout
Marker = Chars.LF;
Response = OPI_TCP.ReadLine(Connection, , Marker);
OPI_TCP.CloseConnection(Connection);
// END
OPI_TestDataRetrieval.Process(Response, "TCP", "SendLine", , Data);
Connection = OPI_TCP.CreateConnection(Address);
OPI_TCP.SendLine(Connection, Data);
Result = OPI_TCP.ReadLine(Connection, , , 50000);
OPI_TCP.CloseConnection(Connection);
OPI_TestDataRetrieval.Process(Result, "TCP", "SendLine", "Timeout", Data);
EndProcedure
Procedure TCP_GetTLSSettings(FunctionParameters)
Options = New Structure;
Options.Insert("trust", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("tcp", "GetTLSSettings", Options);
// END
OPI_TestDataRetrieval.Process(Result, "TCP", "GetTLSSettings");
EndProcedure
Procedure TCP_GetLastError(FunctionParameters)
Address = FunctionParameters["TCP_Address"];
Connection = OPI_TCP.CreateConnection(Address);
Data = "Hello server!" + Chars.LF;
Sending = OPI_TCP.SendLine(Connection, Data);
Result = OPI_TCP.GetLastError(Connection); // SKIP
// END
OPI_TestDataRetrieval.Process(Result, "TCP", "GetLastError");
EndProcedure
Procedure TCP_GetProxySettings(FunctionParameters)
ProxyType = "socks5"; // http, socks5, socks4
ProxyAddress = FunctionParameters["Socks5_IP"];
ProxyPort = FunctionParameters["Socks5_Port"];
ProxyLogin = FunctionParameters["Proxy_User"];
ProxyPassword = FunctionParameters["Proxy_Password"];
Options = New Structure;
Options.Insert("addr", ProxyAddress);
Options.Insert("port", ProxyPort);
Options.Insert("type", ProxyType);
Options.Insert("login", ProxyLogin);
Options.Insert("pass", ProxyPassword);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("tcp", "GetProxySettings", Options);
// END
OPI_TestDataRetrieval.Process(Result, "TCP", "GetProxySettings");
EndProcedure
Procedure TCP_StartServer(FunctionParameters)
Port = 9876;
PoolSize = 10;
Host = OPI_TCP.StartServer(Port, PoolSize);
// END
OPI_TestDataRetrieval.Process(Host, "TCP", "StartServer");
OPI_TCP.StopServer(Host);
EndProcedure
Procedure TCP_StopServer(FunctionParameters)
Port = 9877;
Host = OPI_TCP.StartServer(Port);
Result = OPI_TCP.StopServer(Host);
// END
OPI_TestDataRetrieval.Process(Result, "TCP", "StopServer");
ListResult = OPI_TCP.GetConnectionList(Host);
OPI_TestDataRetrieval.Process(ListResult, "TCP", "StopServer", "List");
OPI_TypeConversion.GetLine(Port);
Address = StrTemplate("127.0.0.1:%1", Port);
Client = OPI_TCP.CreateConnection(Address);
OPI_TestDataRetrieval.Process(Client, "TCP", "StopServer", "Connection");
EndProcedure
Procedure TCP_GetNextConnectionData(FunctionParameters)
LaunchPort = 9877;
ServerObject = OPI_TCP.StartServer(LaunchPort);
// Send message from client
ConnectionAddress = "127.0.0.1:9877";
ClientObject = OPI_TCP.CreateConnection(ConnectionAddress);
If Not OPI_TCP.IsClientObject(ClientObject) Then
Raise OPI_Tools.JSONString(ClientObject);
Else
Message = "Hello from client!" + Chars.LF;
OPI_TCP.SendLine(ClientObject, Message);
EndIf;
// Receive message on server
Result = OPI_TCP.GetNextConnectionData(ServerObject, 5000, 8192);
// END
OPI_TCP.CloseConnection(ClientObject);
OPI_TestDataRetrieval.Process(Result, "TCP", "GetNextConnectionData", , Message);
OPI_TCP.SendLine(ClientObject, Message);
OPI_TCP.CloseConnection(ClientObject);
Result = OPI_TCP.GetNextConnectionData(ServerObject, 5000, 8192);
OPI_TestDataRetrieval.Process(Result, "TCP", "GetNextConnectionData", "Closed", Message);
OPI_TCP.StopServer(ServerObject);
EndProcedure
Procedure TCP_GetConnectionData(FunctionParameters)
LaunchPort = 9877;
ServerObject = OPI_TCP.StartServer(LaunchPort);
// Connect to running server
ConnectionAddress = "127.0.0.1:9877";
ClientObject = OPI_TCP.CreateConnection(ConnectionAddress);
If Not OPI_TCP.IsClientObject(ClientObject) Then
Raise OPI_Tools.JSONString(ClientObject);
EndIf;
OPI_Tools.Pause(1); // SKIP
// Receive the list of server connections
ConnectionList = OPI_TCP.GetConnectionList(ServerObject);
If Not ConnectionList["result"] Then
Raise OPI_Tools.JSONString(ConnectionList);
EndIf;
If ConnectionList["connections"].Count() = 0 Then
Raise "Connection list is empty";
Else
ConnectionID = ConnectionList["connections"][0]["connectionId"];
EndIf;
EmptyResult = OPI_TCP.GetConnectionData(ServerObject, ConnectionID, 5000, 8192); // SKIP
OPI_TestDataRetrieval.Process(EmptyResult, "TCP", "GetConnectionData", "Empty"); // SKIP
For N = 0 To 5 Do
// Send from client
CurrentMessage = StrTemplate("Message no. %1%2", N, Chars.LF);
OPI_TCP.SendLine(ClientObject, CurrentMessage);
// Recieve on server
Result = OPI_TCP.GetConnectionData(ServerObject, ConnectionID, 5000, 8192);
OPI_TestDataRetrieval.Process(Result, "TCP", "GetConnectionData", , CurrentMessage); // SKIP
EndDo;
// END
OPI_TCP.CloseConnection(ClientObject);
Result = OPI_TCP.GetConnectionData(ServerObject, ConnectionID, 5000, 8192);
OPI_TestDataRetrieval.Process(Result, "TCP", "GetConnectionData", "Closed");
Result = OPI_TCP.GetConnectionList(ServerObject);
OPI_TestDataRetrieval.Process(Result, "TCP", "GetConnectionData", "EmptyList");
OPI_TCP.StopServer(ServerObject);
EndProcedure
Procedure TCP_SendData(FunctionParameters)
LaunchPort = 9877;
ServerObject = OPI_TCP.StartServer(LaunchPort);
// Connect to running server
ConnectionAddress = "127.0.0.1:9877";
ClientObject = OPI_TCP.CreateConnection(ConnectionAddress);
If Not OPI_TCP.IsClientObject(ClientObject) Then
Raise OPI_Tools.JSONString(ClientObject);
EndIf;
Message = "Hello!" + Chars.LF;
OPI_TCP.SendLine(ClientObject, Message);
// Receive message and connection ID
NextMessage = OPI_TCP.GetNextConnectionData(ServerObject, 5000);
ConnectionID = NextMessage["connectionId"];
// Send response from server
ServerResponse = "Response from server!" + Chars.LF;
Result = OPI_TCP.SendData(ServerObject, ConnectionID, ServerResponse);
// END
OPI_TestDataRetrieval.Process(Result, "TCP", "SendData");
// Check receiving on client
ClientResponse = OPI_TCP.ReadLine(ClientObject, , Chars.LF);
OPI_TestDataRetrieval.Process(ClientResponse, "TCP", "SendData", "Check", ServerResponse);
OPI_TCP.CloseConnection(ClientObject);
OPI_TCP.StopServer(ServerObject);
EndProcedure
Procedure TCP_CloseIncomingConnection(FunctionParameters)
LaunchPort = 9877;
ServerObject = OPI_TCP.StartServer(LaunchPort);
// Connect to running server
ConnectionAddress = "127.0.0.1:9877";
ClientObject = OPI_TCP.CreateConnection(ConnectionAddress);
If Not OPI_TCP.IsClientObject(ClientObject) Then
Raise OPI_Tools.JSONString(ClientObject);
EndIf;
Message = "Hello!" + Chars.LF;
OPI_TCP.SendLine(ClientObject, Message);
// Get connection ID
FirstMessage = OPI_TCP.GetNextConnectionData(ServerObject, 5000);
ConnectionID = FirstMessage["connectionId"];
// Close connection from server side
Result = OPI_TCP.CloseIncomingConnection(ServerObject, ConnectionID);
// END
OPI_TestDataRetrieval.Process(Result, "TCP", "CloseIncomingConnection");
Result = OPI_TCP.GetConnectionList(ServerObject);
OPI_TestDataRetrieval.Process(Result, "TCP", "CloseIncomingConnection", "EmptyList");
OPI_TCP.SendLine(ClientObject, Message);
Result = OPI_TCP.SendLine(ClientObject, Message);
OPI_TestDataRetrieval.Process(Result, "TCP", "CloseIncomingConnection", "SendingToClosed");
OPI_TCP.StopServer(ServerObject);
EndProcedure
Procedure TCP_CompleteSend(FunctionParameters)
LaunchPort = 9877;
ServerObject = OPI_TCP.StartServer(LaunchPort);
// Connect to running server
ConnectionAddress = "127.0.0.1:9877";
ClientObject = OPI_TCP.CreateConnection(ConnectionAddress);
OPI_Tools.Pause(1); // SKIP
If Not OPI_TCP.IsClientObject(ClientObject) Then
Raise OPI_Tools.JSONString(ClientObject);
EndIf;
ActiveConnections = OPI_TCP.GetConnectionList(ServerObject);
ConnectionID = ActiveConnections["connections"][0]["connectionId"];
// Finish sending from server
Result = OPI_TCP.CompleteSend(ServerObject, ConnectionID);
// END
OPI_TestDataRetrieval.Process(Result, "TCP", "CompleteSend");
Message = "Hello" + Chars.LF;
OPI_TCP.SendLine(ClientObject, Message);
Result = OPI_TCP.SendLine(ClientObject, Message);
OPI_TestDataRetrieval.Process(Result, "TCP", "CompleteSend", "SendingClient");
ServerResponse = "Response from server!" + Chars.LF;
Result = OPI_TCP.SendData(ServerObject, ConnectionID, ServerResponse);
OPI_TestDataRetrieval.Process(Result, "TCP", "CompleteSend", "SendingServer");
OPI_TCP.CloseConnection(ClientObject);
OPI_TCP.StopServer(ServerObject);
EndProcedure
Procedure TCP_GetConnectionList(FunctionParameters)
LaunchPort = 9877;
ServerObject = OPI_TCP.StartServer(LaunchPort);
// Connect to running server
ConnectionAddress = "127.0.0.1:9877";
Client1 = OPI_TCP.CreateConnection(ConnectionAddress);
Client2 = OPI_TCP.CreateConnection(ConnectionAddress);
If Not OPI_TCP.IsClientObject(Client1) Then
Raise OPI_Tools.JSONString(Client1);
EndIf;
If Not OPI_TCP.IsClientObject(Client2) Then
Raise OPI_Tools.JSONString(Client2);
EndIf;
Result = OPI_TCP.GetConnectionList(ServerObject);
// END
OPI_TestDataRetrieval.Process(Result, "TCP", "GetConnectionList");
OPI_TCP.CloseConnection(Client1);
OPI_TCP.CloseConnection(Client2);
Client3 = OPI_TCP.CreateConnection(ConnectionAddress);
Client4 = OPI_TCP.CreateConnection(ConnectionAddress);
OPI_TCP.SendLine(Client3, "Yo" + Chars.LF);
OPI_TCP.CloseConnection(Client3);
OPI_TCP.CloseConnection(Client4);
Result = OPI_TCP.GetConnectionList(ServerObject);
OPI_TestDataRetrieval.Process(Result, "TCP", "GetConnectionList", "Closing");
OPI_TCP.StopServer(ServerObject);
EndProcedure
Procedure TCP_FinishReceiving(FunctionParameters)
LaunchPort = 9877;
ServerObject = OPI_TCP.StartServer(LaunchPort);
// Connect to running server
ConnectionAddress = "127.0.0.1:9877";
ClientObject = OPI_TCP.CreateConnection(ConnectionAddress);
OPI_Tools.Pause(1); // SKIP
If Not OPI_TCP.IsClientObject(ClientObject) Then
Raise OPI_Tools.JSONString(ClientObject);
EndIf;
ActiveConnections = OPI_TCP.GetConnectionList(ServerObject);
ConnectionID = ActiveConnections["connections"][0]["connectionId"];
// Completing server-side reception
Result = OPI_TCP.FinishReceiving(ServerObject, ConnectionID);
// END
OPI_TestDataRetrieval.Process(Result, "TCP", "FinishReceiving");
OPI_TCP.CloseConnection(ClientObject);
OPI_TCP.StopServer(ServerObject);
EndProcedure
Procedure TCP_IsServerObject(FunctionParameters)
Port = 9884;
Host = OPI_TCP.StartServer(Port);
Result = OPI_TCP.IsServerObject(Host);
// END
OPI_TestDataRetrieval.Process(Result, "TCP", "IsServerObject");
OPI_TCP.StopServer(Host);
// Check with wrong object
Result = OPI_TCP.IsServerObject("Not a server");
OPI_TestDataRetrieval.Process(Result, "TCP", "IsServerObject", "False");
EndProcedure
Procedure TCP_GetLog(FunctionParameters)
LaunchPort = 9877;
LogFile = GetTempFileName("txt");
LoggingSettings = OPI_TCP.GetLoggingSettings(True, 100, LogFile);
ServerObject = OPI_TCP.StartServer(LaunchPort, , LoggingSettings);
// Connect to running server
ConnectionAddress = "127.0.0.1:9877";
ClientObject = OPI_TCP.CreateConnection(ConnectionAddress);
OPI_Tools.Pause(1); // SKIP
If Not OPI_TCP.IsClientObject(ClientObject) Then
Raise OPI_Tools.JSONString(ClientObject);
EndIf;
Result = OPI_TCP.GetLog(ServerObject);
// END
OPI_TestDataRetrieval.Process(Result, "TCP", "GetLog", , LogFile);
EndProcedure
Procedure TCP_GetLoggingSettings(FunctionParameters)
Result = OPI_TCP.GetLoggingSettings(True, 100, GetTempFileName());
// END
OPI_TestDataRetrieval.Process(Result, "TCP", "GetLoggingSettings");
Result = OPI_TCP.GetLoggingSettings(False, , GetTempFileName());
OPI_TestDataRetrieval.Process(Result, "TCP", "GetLoggingSettings", "File");
Result = OPI_TCP.GetLoggingSettings(True);
OPI_TestDataRetrieval.Process(Result, "TCP", "GetLoggingSettings", "Memory");
EndProcedure
#EndRegion // TCP
#EndRegion // AtomicTests
#EndRegion // Private
#Region Alternate
Procedure TC_Клиент() Export
TC_Client();
EndProcedure
Procedure TC_Сервер() Export
TC_Server();
EndProcedure
#EndRegion
File diff suppressed because it is too large Load Diff
+469
View File
@@ -0,0 +1,469 @@
// OneScript: ./OInt/tests/Modules/OPItc_Twitter.os
// MIT License
// Copyright (c) 2023-2026 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
// Test suite for YAxUnit
// BSLLS:Typo-off
// BSLLS:LatinAndCyrillicSymbolInWord-off
// BSLLS:IncorrectLineBreak-off
// BSLLS:UsingServiceTag-off
// BSLLS:UnusedParameters-off
// BSLLS:DuplicateStringLiteral-off
// BSLLS:UsingHardcodePath-off
// BSLLS:UnusedLocalVariable-off
// BSLLS:DeprecatedMessage-off
// BSLLS:LineLength-off
// BSLLS:MagicNumber-off
// BSLLS:CommentedCode-off
// BSLLS:AssignAliasFieldsInQuery-off
// BSLLS:UsingHardcodeNetworkAddress-off
// BSLLS:UnreachableCode-off
// BSLLS:UnusedLocalMethod-off
// BSLLS:NestedFunctionInParameters-off
// BSLLS:MissingTemporaryFileDeletion-off
// BSLLS:UsingSynchronousCalls-off
// BSLLS:MagicNumber-off
// BSLLS:MagicDate-off
// BSLLS:MissingParameterDescription-off
// BSLLS:NumberOfOptionalParams-off
// BSLLS:MethodSize-off
// BSLLS:NestedConstructorsInStructureDeclaration-off
// BSLLS:NumberOfValuesInStructureConstructor-off
// BSLLS:UsingHardcodeSecretInformation-off
// BSLLS:SpaceAtStartComment-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
//@skip-check module-unused-local-variable
//@skip-check bsl-legacy-check-string-literal
//@skip-check bsl-legacy-check-method-for-statements-after-return
//@skip-check missing-temporary-file-deletion
//@skip-check module-unused-method
#Use "../../tools/main"
#Use "../../tools/http"
#Use "../../api"
#Use asserts
#Use "internal"
// For YAxUnit
Procedure ИсполняемыеСценарии() Export
OPI_TestDataRetrieval.FormYAXTests("Twitter");
EndProcedure
// For Asserts
Function ПолучитьСписокТестов(UnitTesting) Export
Return OPI_TestDataRetrieval.FormAssertsTests("Twitter");
EndFunction
#Region Internal
#Region RunnableTests
#Region Twitter
Procedure TwitterAPI_AccountData() Export
TestParameters = New Structure;
Twitter_GetToken(TestParameters);
Twitter_GetAuthorizationLink(TestParameters);
// !DISABLED! Twitter_UpdateToken(TestParameters);
EndProcedure
Procedure TwitterAPI_Tweets() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Picture" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Picture2", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("GIF" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Video" , TestParameters);
Twitter_CreateTextTweet(TestParameters);
Twitter_UploadAttachmentsArray(TestParameters);
Twitter_CreateVideoTweet(TestParameters);
Twitter_CreateImageTweet(TestParameters);
Twitter_CreateGifTweet(TestParameters);
Twitter_CreatePollTweet(TestParameters);
Twitter_CreateCustomTweet(TestParameters);
EndProcedure
#EndRegion // Twitter
#EndRegion // RunnableTests
#EndRegion // Internal
#Region Private
Function GetTwitterAuthData()
Parameters = New Map;
ServerToken = OPI_TestDataRetrieval.GetParameter("Access_Token");
URL = OPI_TestDataRetrieval.GetParameter("Twitter_TokenURL");
Result = OPI_HTTPRequests.NewRequest()
.Initialize()
.SetURL(URL)
.AddBearerAuthorization(ServerToken) // <---
.ProcessRequest("GET")
.ReturnResponseAsJSONObject();
Token = Result["data"];
Parameters.Insert("redirect_uri" , OPI_TestDataRetrieval.GetParameter("Twitter_Redirect"));
Parameters.Insert("client_id" , OPI_TestDataRetrieval.GetParameter("Twitter_ClientID"));
Parameters.Insert("client_secret" , OPI_TestDataRetrieval.GetParameter("Twitter_ClientSecret"));
Parameters.Insert("access_token" , Token);
Parameters.Insert("refresh_token" , OPI_TestDataRetrieval.GetParameter("Twitter_Refresh"));
Parameters.Insert("oauth_token" , OPI_TestDataRetrieval.GetParameter("Twitter_OAuthToken"));
Parameters.Insert("oauth_token_secret", OPI_TestDataRetrieval.GetParameter("Twitter_OAuthSecret"));
Parameters.Insert("oauth_consumer_key" , OPI_TestDataRetrieval.GetParameter("Twitter_OAuthConsumerKey"));
Parameters.Insert("oauth_consumer_secret", OPI_TestDataRetrieval.GetParameter(
"Twitter_OAuthConsumerSecret"));
Return Parameters;
EndFunction
#Region AtomicTests
#Region Twitter
Procedure Twitter_GetToken(FunctionParameters)
Parameters = GetTwitterAuthData();
Code = "123456";
Options = New Structure;
Options.Insert("code", Code);
Options.Insert("auth", Parameters);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("twitter", "GetToken", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Twitter", "GetToken");
EndProcedure
Procedure Twitter_GetAuthorizationLink(FunctionParameters)
Parameters = GetTwitterAuthData();
Options = New Structure;
Options.Insert("auth", Parameters);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("twitter", "GetAuthorizationLink", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Twitter", "GetAuthorizationLink");
EndProcedure
Procedure Twitter_RefreshToken(FunctionParameters)
Parameters = GetTwitterAuthData();
Options = New Structure;
Options.Insert("auth", Parameters);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("twitter", "RefreshToken", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Twitter", "RefreshToken");
EndProcedure
Procedure Twitter_CreateTextTweet(FunctionParameters)
Parameters = GetTwitterAuthData();
Text = "TestTweet" + String(New UUID);
Options = New Structure;
Options.Insert("text", Text);
Options.Insert("auth", Parameters);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("twitter", "CreateTextTweet", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Twitter", "CreateTextTweet", , Text);
EndProcedure
Procedure Twitter_CreateImageTweet(FunctionParameters)
Parameters = GetTwitterAuthData();
Text = "TestTweet" + String(New UUID);
Image = FunctionParameters["Picture"]; // URL, Binary or File path
Image2 = FunctionParameters["Picture2"]; // URL, Binary or File path
ImageArray = New Array;
ImageArray.Add(Image);
ImageArray.Add(Image2);
Options = New Structure;
Options.Insert("text", Text);
Options.Insert("pictures", ImageArray);
Options.Insert("auth", Parameters);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("twitter", "CreateImageTweet", Options);
OPI_TestDataRetrieval.Process(Result, "Twitter", "CreateImageTweet", , Text); // SKIP
Text = "TestTweet" + String(New UUID);
Options = New Structure;
Options.Insert("text", Text);
Options.Insert("pictures", Image);
Options.Insert("auth", Parameters);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("twitter", "CreateImageTweet", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Twitter", "CreateImageTweet", "Single", Text);
Image = OPI_HTTPRequests.Get(Image);
Text = "TestTweet" + String(New UUID);
Options = New Structure;
Options.Insert("text", Text);
Options.Insert("pictures", Image);
Options.Insert("auth", Parameters);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("twitter", "CreateImageTweet", Options);
OPI_TestDataRetrieval.Process(Result, "Twitter", "CreateImageTweet", "Binary", Text);
EndProcedure
Procedure Twitter_CreateVideoTweet(FunctionParameters)
Parameters = GetTwitterAuthData();
Text = "TestTweet" + String(New UUID);
Video = FunctionParameters["Video"]; // URL, Binary or File path
Video2 = FunctionParameters["Video"]; // URL, Binary or File path
VideosArray = New Array;
VideosArray.Add(Video);
VideosArray.Add(Video2);
Options = New Structure;
Options.Insert("text", Text);
Options.Insert("videos", VideosArray);
Options.Insert("auth", Parameters);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("twitter", "CreateVideoTweet", Options);
OPI_TestDataRetrieval.Process(Result, "Twitter", "CreateVideoTweet", , Text); // SKIP
Text = "TestTweet" + String(New UUID);
Options = New Structure;
Options.Insert("text", Text);
Options.Insert("videos", Video);
Options.Insert("auth", Parameters);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("twitter", "CreateVideoTweet", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Twitter", "CreateVideoTweet", "Single", Text);
Video = OPI_HTTPRequests.Get(Video);
Text = "TestTweet" + String(New UUID);
Options = New Structure;
Options.Insert("text", Text);
Options.Insert("videos", Video);
Options.Insert("auth", Parameters);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("twitter", "CreateVideoTweet", Options);
OPI_TestDataRetrieval.Process(Result, "Twitter", "CreateVideoTweet", "Binary", Text);
EndProcedure
Procedure Twitter_CreateGifTweet(FunctionParameters)
Parameters = GetTwitterAuthData();
Text = "TestTweet" + String(New UUID);
GIF = FunctionParameters["GIF"]; // URL, Binary or File path
Gif2 = FunctionParameters["GIF"]; // URL, Binary or File path
GifsArray = New Array;
GifsArray.Add(GIF);
GifsArray.Add(Gif2);
Options = New Structure;
Options.Insert("text", Text);
Options.Insert("gifs", GifsArray);
Options.Insert("auth", Parameters);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("twitter", "CreateGifTweet", Options);
OPI_TestDataRetrieval.Process(Result, "Twitter", "CreateGifTweet", , Text); // SKIP
Text = "TestTweet" + String(New UUID);
Options = New Structure;
Options.Insert("text", Text);
Options.Insert("gifs", GIF);
Options.Insert("auth", Parameters);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("twitter", "CreateGifTweet", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Twitter", "CreateGifTweet", "Single", Text);
GIF = OPI_HTTPRequests.Get(GIF);
Text = "TestTweet" + String(New UUID);
Options = New Structure;
Options.Insert("text", Text);
Options.Insert("gifs", GIF);
Options.Insert("auth", Parameters);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("twitter", "CreateGifTweet", Options);
OPI_TestDataRetrieval.Process(Result, "Twitter", "CreateGifTweet", "Binary", Text);
EndProcedure
Procedure Twitter_CreatePollTweet(FunctionParameters)
Parameters = GetTwitterAuthData();
Text = "TestTweet" + String(New UUID);
AnswersArray = New Array;
AnswersArray.Add("Option 1");
AnswersArray.Add("Option 2");
Options = New Structure;
Options.Insert("text", Text);
Options.Insert("options", AnswersArray);
Options.Insert("duration", 60);
Options.Insert("auth", Parameters);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("twitter", "CreatePollTweet", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Twitter", "CreatePollTweet", , Text);
EndProcedure
Procedure Twitter_CreateCustomTweet(FunctionParameters)
Parameters = GetTwitterAuthData();
Text = "TestTweet" + String(New UUID);
Image1 = FunctionParameters["Picture"]; // URL, Binary Data or File path
Image2 = FunctionParameters["Picture2"]; // URL, Binary Data or File path
ImageArray = New Array;
ImageArray.Add(Image1);
ImageArray.Add(Image2);
Options = New Structure;
Options.Insert("files", ImageArray);
Options.Insert("type", "tweet_image");
Options.Insert("auth", Parameters);
MediaArray = OPI_TestDataRetrieval.ExecuteTestCLI("twitter", "UploadAttachmentsArray", Options);
Options = New Structure;
Options.Insert("text", Text);
Options.Insert("media", MediaArray);
Options.Insert("auth", Parameters);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("twitter", "CreateCustomTweet", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Twitter", "CreateCustomTweet", , Text);
EndProcedure
Procedure Twitter_UploadAttachmentsArray(FunctionParameters)
Parameters = GetTwitterAuthData();
Image1 = FunctionParameters["Picture"]; // URL, Binary Data or File path
Image2 = FunctionParameters["Picture2"]; // URL, Binary Data or File path
ImageArray = New Array;
ImageArray.Add(Image1);
ImageArray.Add(Image2);
Options = New Structure;
Options.Insert("files", ImageArray);
Options.Insert("type", "tweet_image");
Options.Insert("auth", Parameters);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("twitter", "UploadAttachmentsArray", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Twitter", "UploadAttachmentsArray");
EndProcedure
#EndRegion // Twitter
#EndRegion // AtomicTests
#EndRegion // Private
#Region Alternate
Procedure Твиттер_ДанныеАккаунта() Export
TwitterAPI_AccountData();
EndProcedure
Procedure Твиттер_Твиты() Export
TwitterAPI_Tweets();
EndProcedure
#EndRegion
File diff suppressed because it is too large Load Diff
+921
View File
@@ -0,0 +1,921 @@
// OneScript: ./OInt/tests/Modules/OPItc_VKTeams.os
// MIT License
// Copyright (c) 2023-2026 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
// Test suite for YAxUnit
// BSLLS:Typo-off
// BSLLS:LatinAndCyrillicSymbolInWord-off
// BSLLS:IncorrectLineBreak-off
// BSLLS:UsingServiceTag-off
// BSLLS:UnusedParameters-off
// BSLLS:DuplicateStringLiteral-off
// BSLLS:UsingHardcodePath-off
// BSLLS:UnusedLocalVariable-off
// BSLLS:DeprecatedMessage-off
// BSLLS:LineLength-off
// BSLLS:MagicNumber-off
// BSLLS:CommentedCode-off
// BSLLS:AssignAliasFieldsInQuery-off
// BSLLS:UsingHardcodeNetworkAddress-off
// BSLLS:UnreachableCode-off
// BSLLS:UnusedLocalMethod-off
// BSLLS:NestedFunctionInParameters-off
// BSLLS:MissingTemporaryFileDeletion-off
// BSLLS:UsingSynchronousCalls-off
// BSLLS:MagicNumber-off
// BSLLS:MagicDate-off
// BSLLS:MissingParameterDescription-off
// BSLLS:NumberOfOptionalParams-off
// BSLLS:MethodSize-off
// BSLLS:NestedConstructorsInStructureDeclaration-off
// BSLLS:NumberOfValuesInStructureConstructor-off
// BSLLS:UsingHardcodeSecretInformation-off
// BSLLS:SpaceAtStartComment-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
//@skip-check module-unused-local-variable
//@skip-check bsl-legacy-check-string-literal
//@skip-check bsl-legacy-check-method-for-statements-after-return
//@skip-check missing-temporary-file-deletion
//@skip-check module-unused-method
#Use "../../tools/main"
#Use "../../tools/http"
#Use "../../api"
#Use asserts
#Use "internal"
// For YAxUnit
Procedure ИсполняемыеСценарии() Export
OPI_TestDataRetrieval.FormYAXTests("VKTeams");
EndProcedure
// For Asserts
Function ПолучитьСписокТестов(UnitTesting) Export
Return OPI_TestDataRetrieval.FormAssertsTests("VKTeams");
EndFunction
#Region Internal
#Region RunnableTests
#Region VkTeams
Procedure VKT_CommonMethods() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("VkTeams_Token" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("VkTeams_FileID", TestParameters);
VkTeams_CheckToken(TestParameters);
VkTeams_GetEvents(TestParameters);
VKTeams_GetFileInformation(TestParameters);
EndProcedure
Procedure VKT_MessagesSending() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("VkTeams_Token" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("VkTeams_ChatID" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("VkTeams_ChatID2" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("VkTeams_MessageID", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Document" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Audio2" , TestParameters);
VkTeams_SendTextMessage(TestParameters);
OPI_Tools.Pause(60);
VKTeams_AnswerButtonEvent(TestParameters);
VKTeams_ForwardMessage(TestParameters);
VKTeams_SendFile(TestParameters);
VKTeams_ResendFile(TestParameters);
VKTeams_EditMessageText(TestParameters);
VKTeams_PinMessage(TestParameters);
VKTeams_UnpinMessage(TestParameters);
VKTeams_DeleteMessage(TestParameters);
VKTeams_SendVoice(TestParameters);
VKTeams_ResendVoice(TestParameters);
VKTeams_MakeActionButton(TestParameters);
EndProcedure
Procedure VKT_ChatManagement() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("VkTeams_Token" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("VkTeams_ChatID" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("VkTeams_ChatID2", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Picture3" , TestParameters);
VKTeams_RemoveChatMembers(TestParameters);
VKTeams_ChangeChatPicture(TestParameters);
VKTeams_GetChatInfo(TestParameters);
VKTeams_GetChatAdmins(TestParameters);
VKTeams_GetChatMembers(TestParameters);
VKTeams_GetChatBlockedUsers(TestParameters);
VKTeams_GetChatJoinRequests(TestParameters);
VKTeams_BlockChatUser(TestParameters);
VKTeams_UnblockChatUser(TestParameters);
VKTeams_ApprovePending(TestParameters);
VKTeams_DisapprovePending(TestParameters);
VKTeams_SetChatTitle(TestParameters);
VKTeams_SetChatDescription(TestParameters);
VKTeams_SetChatRules(TestParameters);
EndProcedure
#EndRegion // VkTeams
#EndRegion // RunnableTests
#EndRegion // Internal
#Region Private
#Region AtomicTests
#Region VKTeams
Procedure VKTeams_CheckToken(FunctionParameters)
Token = FunctionParameters["VkTeams_Token"];
Options = New Structure;
Options.Insert("token", Token);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "CheckToken", Options);
// END
OPI_TestDataRetrieval.Process(Result, "VKTeams", "CheckToken");
EndProcedure
Procedure VKTeams_GetEvents(FunctionParameters)
Token = FunctionParameters["VkTeams_Token"];
LastID = 0;
For N = 1 To 5 Do // In real work - endless loop
Result = OPI_VKTeams.GetEvents(Token, LastID, 3);
OPI_TestDataRetrieval.Process(Result, "VKTeams", "GetEvents"); // SKIP
Events = Result["events"];
// Event handling...
If Not Events.Count() = 0 Then
LastID = Events[Events.UBound()]["eventId"];
EndIf;
EndDo;
// END
OPI_Tools.Pause(3);
EndProcedure
Procedure VKTeams_SendTextMessage(FunctionParameters)
Token = FunctionParameters["VkTeams_Token"];
ChatID = FunctionParameters["VkTeams_ChatID"];
Text = "Message text";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("chatid", ChatID);
Options.Insert("text", Text);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "SendTextMessage", Options);
OPI_TestDataRetrieval.Process(Result, "VKTeams", "SendTextMessage", "Simple", FunctionParameters); // SKIP
ChatID = FunctionParameters["VkTeams_ChatID2"];
ReplyID = FunctionParameters["VkTeams_MessageID"];
Text = "<b>Bold text</b>";
Markup = "HTML";
Keyboard = New Array;
ButtonsLineArray = New Array;
ButtonsLineArray.Add(OPI_VKTeams.MakeActionButton("Button1", "ButtonEvent1", , "attention"));
ButtonsLineArray.Add(OPI_VKTeams.MakeActionButton("Button2", , "https://openintegrations.dev"));
// BSLLS:DuplicatedInsertionIntoCollection-off // SKIP
Keyboard.Add(ButtonsLineArray);
Keyboard.Add(ButtonsLineArray);
// BSLLS:DuplicatedInsertionIntoCollection-on // SKIP
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("chatid", ChatID);
Options.Insert("text", Text);
Options.Insert("reply", ReplyID);
Options.Insert("keyboard", Keyboard);
Options.Insert("parsemod", Markup);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "SendTextMessage", Options);
// END
OPI_TestDataRetrieval.Process(Result, "VKTeams", "SendTextMessage", , FunctionParameters);
EndProcedure
Procedure VKTeams_ForwardMessage(FunctionParameters)
Token = FunctionParameters["VkTeams_Token"];
ChatID = FunctionParameters["VkTeams_ChatID"];
FromChatID = FunctionParameters["VkTeams_ChatID2"];
MessageID = FunctionParameters["VkTeams_MessageID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("messageid", MessageID);
Options.Insert("fromid", FromChatID);
Options.Insert("chatid", ChatID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "ForwardMessage", Options);
OPI_TestDataRetrieval.Process(Result, "VKTeams", "ForwardMessage", "Simple"); // SKIP
Text = "Additional text";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("messageid", MessageID);
Options.Insert("fromid", FromChatID);
Options.Insert("chatid", ChatID);
Options.Insert("text", Text);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "ForwardMessage", Options);
// END
OPI_TestDataRetrieval.Process(Result, "VKTeams", "ForwardMessage");
EndProcedure
Procedure VKTeams_SendFile(FunctionParameters)
Token = FunctionParameters["VkTeams_Token"];
ChatID = FunctionParameters["VkTeams_ChatID"];
Text = "File caption";
File = FunctionParameters["Document"]; // URL
FilePath = GetTempFileName("docx"); // Path
CopyFile(File, FilePath);
FileBD = New BinaryData(FilePath); // Binary
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("chatid", ChatID);
Options.Insert("file", File);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "SendFile", Options);
OPI_TestDataRetrieval.Process(Result, "VKTeams", "SendFile", "URL", FunctionParameters); // SKIP
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("chatid", ChatID);
Options.Insert("file", FilePath);
Options.Insert("text", Text);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "SendFile", Options);
OPI_TestDataRetrieval.Process(Result, "VKTeams", "SendFile", "Path", FunctionParameters); // SKIP
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("chatid", ChatID);
Options.Insert("file", FileBD);
Options.Insert("text", Text);
Options.Insert("filename", "ImportantDocument.docx");
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "SendFile", Options);
// END
OPI_TestDataRetrieval.Process(Result, "VKTeams", "SendFile", , FunctionParameters);
OPI_Tools.RemoveFileWithTry(FilePath, "Failed to delete the temporary file after the test!!");
EndProcedure
Procedure VKTeams_ResendFile(FunctionParameters)
Token = FunctionParameters["VkTeams_Token"];
ChatID = FunctionParameters["VkTeams_ChatID"];
FileID = FunctionParameters["VkTeams_FileID"];
Text = "File caption";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("chatid", ChatID);
Options.Insert("fileid", FileID);
Options.Insert("text", Text);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "ResendFile", Options);
// END
OPI_TestDataRetrieval.Process(Result, "VKTeams", "ResendFile");
EndProcedure
Procedure VKTeams_GetFileInformation(FunctionParameters)
Token = FunctionParameters["VkTeams_Token"];
FileID = FunctionParameters["VkTeams_FileID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("fileid", FileID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "GetFileInformation", Options);
// END
OPI_TestDataRetrieval.Process(Result, "VKTeams", "GetFileInformation");
EndProcedure
Procedure VKTeams_EditMessageText(FunctionParameters)
Token = FunctionParameters["VkTeams_Token"];
ChatID = FunctionParameters["VkTeams_ChatID2"];
MessageID = FunctionParameters["VkTeams_MessageID"];
Text = "New message text";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("chatid", ChatID);
Options.Insert("messageid", MessageID);
Options.Insert("text", Text);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "EditMessageText", Options);
OPI_TestDataRetrieval.Process(Result, "VKTeams", "EditMessageText", "Path"); // SKIP
Text = "<b>New bold message text</b>";
Markup = "HTML";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("chatid", ChatID);
Options.Insert("messageid", MessageID);
Options.Insert("text", Text);
Options.Insert("parsemod", Markup);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "EditMessageText", Options);
// END
OPI_TestDataRetrieval.Process(Result, "VKTeams", "EditMessageText");
EndProcedure
Procedure VKTeams_DeleteMessage(FunctionParameters)
Token = FunctionParameters["VkTeams_Token"];
ChatID = FunctionParameters["VkTeams_ChatID2"];
MessageID = FunctionParameters["VkTeams_MessageID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("chatid", ChatID);
Options.Insert("messageid", MessageID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "DeleteMessage", Options);
// END
OPI_TestDataRetrieval.Process(Result, "VKTeams", "DeleteMessage");
EndProcedure
Procedure VKTeams_SendVoice(FunctionParameters)
Token = FunctionParameters["VkTeams_Token"];
ChatID = FunctionParameters["VkTeams_ChatID2"];
ReplyID = FunctionParameters["VkTeams_MessageID"];
File = FunctionParameters["Audio2"]; // URL
FilePath = GetTempFileName("m4a"); // Path
CopyFile(File, FilePath);
FileBD = New BinaryData(FilePath); // Binary
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("chatid", ChatID);
Options.Insert("file", File);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "SendVoice", Options);
OPI_TestDataRetrieval.Process(Result, "VKTeams", "SendVoice", "URL", FunctionParameters); // SKIP
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("chatid", ChatID);
Options.Insert("file", FilePath);
Options.Insert("reply", ReplyID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "SendVoice", Options);
OPI_TestDataRetrieval.Process(Result, "VKTeams", "SendVoice", "Path", FunctionParameters); // SKIP
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("chatid", ChatID);
Options.Insert("file", FileBD);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "SendVoice", Options);
// END
OPI_TestDataRetrieval.Process(Result, "VKTeams", "SendVoice", , FunctionParameters);
OPI_Tools.RemoveFileWithTry(FilePath, "Failed to delete the temporary file after the test!!");
EndProcedure
Procedure VKTeams_ResendVoice(FunctionParameters)
Token = FunctionParameters["VkTeams_Token"];
ChatID = FunctionParameters["VkTeams_ChatID"];
FileID = FunctionParameters["VkTeams_VoiceID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("chatid", ChatID);
Options.Insert("fileid", FileID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "ResendVoice", Options);
// END
OPI_TestDataRetrieval.Process(Result, "VKTeams", "ResendVoice");
EndProcedure
Procedure VKTeams_RemoveChatMembers(FunctionParameters)
Token = FunctionParameters["VkTeams_Token"];
ChatID = FunctionParameters["VkTeams_ChatID2"];
User = 1011987091;
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("chatid", ChatID);
Options.Insert("members", User);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "RemoveChatMembers", Options);
// END
OPI_TestDataRetrieval.Process(Result, "VKTeams", "RemoveChatMembers");
EndProcedure
Procedure VKTeams_ChangeChatPicture(FunctionParameters)
Token = FunctionParameters["VkTeams_Token"];
ChatID = FunctionParameters["VkTeams_ChatID"];
File = FunctionParameters["Picture3"]; // URL
FilePath = GetTempFileName("png"); // Path
CopyFile(File, FilePath);
FileBD = New BinaryData(FilePath); // Binary
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("chatid", ChatID);
Options.Insert("file", File);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "ChangeChatPicture", Options);
OPI_TestDataRetrieval.Process(Result, "VKTeams", "ChangeChatPicture", "URL");
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("chatid", ChatID);
Options.Insert("file", FilePath);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "ChangeChatPicture", Options);
OPI_TestDataRetrieval.Process(Result, "VKTeams", "ChangeChatPicture", "Path");
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("chatid", ChatID);
Options.Insert("file", FileBD);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "ChangeChatPicture", Options);
// END
OPI_TestDataRetrieval.Process(Result, "VKTeams", "ChangeChatPicture");
OPI_Tools.RemoveFileWithTry(FilePath, "Failed to delete the temporary file after the test!!");
EndProcedure
Procedure VKTeams_GetChatInfo(FunctionParameters)
Token = FunctionParameters["VkTeams_Token"];
ChatID = FunctionParameters["VkTeams_ChatID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("chatid", ChatID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "GetChatInfo", Options);
// END
OPI_TestDataRetrieval.Process(Result, "VKTeams", "GetChatInfo");
EndProcedure
Procedure VKTeams_GetChatAdmins(FunctionParameters)
Token = FunctionParameters["VkTeams_Token"];
ChatID = FunctionParameters["VkTeams_ChatID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("chatid", ChatID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "GetChatAdmins", Options);
// END
OPI_TestDataRetrieval.Process(Result, "VKTeams", "GetChatAdmins");
EndProcedure
Procedure VKTeams_GetChatMembers(FunctionParameters)
Token = FunctionParameters["VkTeams_Token"];
ChatID = FunctionParameters["VkTeams_ChatID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("chatid", ChatID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "GetChatMembers", Options);
// END
OPI_TestDataRetrieval.Process(Result, "VKTeams", "GetChatMembers");
EndProcedure
Procedure VKTeams_GetChatBlockedUsers(FunctionParameters)
Token = FunctionParameters["VkTeams_Token"];
ChatID = FunctionParameters["VkTeams_ChatID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("chatid", ChatID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "GetChatBlockedUsers", Options);
// END
OPI_TestDataRetrieval.Process(Result, "VKTeams", "GetChatBlockedUsers");
EndProcedure
Procedure VKTeams_GetChatJoinRequests(FunctionParameters)
Token = FunctionParameters["VkTeams_Token"];
ChatID = FunctionParameters["VkTeams_ChatID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("chatid", ChatID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "GetChatJoinRequests", Options);
// END
OPI_TestDataRetrieval.Process(Result, "VKTeams", "GetChatJoinRequests");
EndProcedure
Procedure VKTeams_BlockChatUser(FunctionParameters)
Token = FunctionParameters["VkTeams_Token"];
ChatID = FunctionParameters["VkTeams_ChatID2"];
User = 1011987091;
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("chatid", ChatID);
Options.Insert("userid", User);
Options.Insert("dellast", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "BlockChatUser", Options);
// END
OPI_TestDataRetrieval.Process(Result, "VKTeams", "BlockChatUser");
EndProcedure
Procedure VKTeams_UnblockChatUser(FunctionParameters)
Token = FunctionParameters["VkTeams_Token"];
ChatID = FunctionParameters["VkTeams_ChatID2"];
User = 1011987091;
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("chatid", ChatID);
Options.Insert("userid", User);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "UnblockChatUser", Options);
// END
OPI_TestDataRetrieval.Process(Result, "VKTeams", "UnblockChatUser");
EndProcedure
Procedure VKTeams_PinMessage(FunctionParameters)
Token = FunctionParameters["VkTeams_Token"];
ChatID = FunctionParameters["VkTeams_ChatID2"];
MessageID = FunctionParameters["VkTeams_MessageID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("chatid", ChatID);
Options.Insert("messageid", MessageID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "PinMessage", Options);
// END
OPI_TestDataRetrieval.Process(Result, "VKTeams", "PinMessage");
EndProcedure
Procedure VKTeams_UnpinMessage(FunctionParameters)
Token = FunctionParameters["VkTeams_Token"];
ChatID = FunctionParameters["VkTeams_ChatID2"];
MessageID = FunctionParameters["VkTeams_MessageID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("chatid", ChatID);
Options.Insert("messageid", MessageID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "UnpinMessage", Options);
// END
OPI_TestDataRetrieval.Process(Result, "VKTeams", "UnpinMessage");
EndProcedure
Procedure VKTeams_ApprovePending(FunctionParameters)
Token = FunctionParameters["VkTeams_Token"];
ChatID = FunctionParameters["VkTeams_ChatID2"];
User = 1011987091;
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("chatid", ChatID);
Options.Insert("userid", User);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "ApprovePending", Options);
OPI_TestDataRetrieval.Process(Result, "VKTeams", "ApprovePending", "One"); // SKIP
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("chatid", ChatID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "ApprovePending", Options);
// END
OPI_TestDataRetrieval.Process(Result, "VKTeams", "ApprovePending");
EndProcedure
Procedure VKTeams_DisapprovePending(FunctionParameters)
Token = FunctionParameters["VkTeams_Token"];
ChatID = FunctionParameters["VkTeams_ChatID2"];
User = 1011987091;
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("chatid", ChatID);
Options.Insert("userid", User);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "DisapprovePending", Options);
OPI_TestDataRetrieval.Process(Result, "VKTeams", "DisapprovePending", "One"); // SKIP
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("chatid", ChatID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "DisapprovePending", Options);
// END
OPI_TestDataRetrieval.Process(Result, "VKTeams", "DisapprovePending");
EndProcedure
Procedure VKTeams_SetChatTitle(FunctionParameters)
Token = FunctionParameters["VkTeams_Token"];
ChatID = FunctionParameters["VkTeams_ChatID2"];
Text = "New title";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("chatid", ChatID);
Options.Insert("text", Text);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "SetChatTitle", Options);
// END
OPI_TestDataRetrieval.Process(Result, "VKTeams", "SetChatTitle");
EndProcedure
Procedure VKTeams_SetChatDescription(FunctionParameters)
Token = FunctionParameters["VkTeams_Token"];
ChatID = FunctionParameters["VkTeams_ChatID2"];
Text = "New description";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("chatid", ChatID);
Options.Insert("text", Text);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "SetChatDescription", Options);
// END
OPI_TestDataRetrieval.Process(Result, "VKTeams", "SetChatDescription");
EndProcedure
Procedure VKTeams_SetChatRules(FunctionParameters)
Token = FunctionParameters["VkTeams_Token"];
ChatID = FunctionParameters["VkTeams_ChatID2"];
Text = "Text of the new rules";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("chatid", ChatID);
Options.Insert("text", Text);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("vkteams", "SetChatRules", Options);
// END
OPI_TestDataRetrieval.Process(Result, "VKTeams", "SetChatRules");
EndProcedure
Procedure VKTeams_AnswerButtonEvent(FunctionParameters)
Token = FunctionParameters["VkTeams_Token"];
LastID = 0;
For N = 1 To 5 Do
Result = OPI_VKTeams.GetEvents(Token, LastID, 3);
Events = Result["events"];
If Not Events.Count() = 0 Then
For Each Event In Events Do
callbackData = Event["payload"];
If callbackData["callbackData"] = "ButtonEvent1" Then
EventID = callbackData["queryId"];
Result = OPI_VKTeams.AnswerButtonEvent(Token, EventID, "Get it!!");
OPI_TestDataRetrieval.Process(Result, "VKTeams", "AnswerButtonEvent"); // SKIP
EndIf;
EndDo;
LastID = Events[Events.UBound()]["eventId"];
EndIf;
EndDo;
// END
OPI_Tools.Pause(3);
EndProcedure
Procedure VKTeams_MakeActionButton(FunctionParameters)
Keyboard = New Array;
ButtonsLineArray = New Array;
ButtonsLineArray.Add(OPI_VKTeams.MakeActionButton("Button1", "ButtonEvent1", , "attention"));
ButtonsLineArray.Add(OPI_VKTeams.MakeActionButton("Button2", , "https://openintegrations.dev"));
// BSLLS:DuplicatedInsertionIntoCollection-off // SKIP
Keyboard.Add(ButtonsLineArray);
Keyboard.Add(ButtonsLineArray);
// BSLLS:DuplicatedInsertionIntoCollection-on // SKIP
// END
EndProcedure
#EndRegion // VKTeams
#EndRegion // AtomicTests
#EndRegion // Private
#Region Alternate
Procedure ВКТ_ОбщиеМетоды() Export
VKT_CommonMethods();
EndProcedure
Procedure ВКТ_ОтправкаСообщений() Export
VKT_MessagesSending();
EndProcedure
Procedure ВКТ_УправлениеЧатами() Export
VKT_ChatManagement();
EndProcedure
#EndRegion
+498
View File
@@ -0,0 +1,498 @@
// OneScript: ./OInt/tests/Modules/OPItc_Viber.os
// MIT License
// Copyright (c) 2023-2026 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
// Test suite for YAxUnit
// BSLLS:Typo-off
// BSLLS:LatinAndCyrillicSymbolInWord-off
// BSLLS:IncorrectLineBreak-off
// BSLLS:UsingServiceTag-off
// BSLLS:UnusedParameters-off
// BSLLS:DuplicateStringLiteral-off
// BSLLS:UsingHardcodePath-off
// BSLLS:UnusedLocalVariable-off
// BSLLS:DeprecatedMessage-off
// BSLLS:LineLength-off
// BSLLS:MagicNumber-off
// BSLLS:CommentedCode-off
// BSLLS:AssignAliasFieldsInQuery-off
// BSLLS:UsingHardcodeNetworkAddress-off
// BSLLS:UnreachableCode-off
// BSLLS:UnusedLocalMethod-off
// BSLLS:NestedFunctionInParameters-off
// BSLLS:MissingTemporaryFileDeletion-off
// BSLLS:UsingSynchronousCalls-off
// BSLLS:MagicNumber-off
// BSLLS:MagicDate-off
// BSLLS:MissingParameterDescription-off
// BSLLS:NumberOfOptionalParams-off
// BSLLS:MethodSize-off
// BSLLS:NestedConstructorsInStructureDeclaration-off
// BSLLS:NumberOfValuesInStructureConstructor-off
// BSLLS:UsingHardcodeSecretInformation-off
// BSLLS:SpaceAtStartComment-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
//@skip-check module-unused-local-variable
//@skip-check bsl-legacy-check-string-literal
//@skip-check bsl-legacy-check-method-for-statements-after-return
//@skip-check missing-temporary-file-deletion
//@skip-check module-unused-method
#Use "../../tools/main"
#Use "../../tools/http"
#Use "../../api"
#Use asserts
#Use "internal"
// For YAxUnit
Procedure ИсполняемыеСценарии() Export
OPI_TestDataRetrieval.FormYAXTests("Viber");
EndProcedure
// For Asserts
Function ПолучитьСписокТестов(UnitTesting) Export
Return OPI_TestDataRetrieval.FormAssertsTests("Viber");
EndFunction
#Region Internal
#Region RunnableTests
#Region Viber
Procedure Viber_DataRetrieval() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Viber_ChannelToken" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Viber_ChannelAdminID", TestParameters);
Return;
//@skip-check unreachable-statements
// BSLLS:UnreachableCode-off
Viber_GetChannelInformation(TestParameters);
Viber_GetUserData(TestParameters);
Viber_GetOnlineUsers(TestParameters);
Viber_SetWebhook(TestParameters);
// BSLLS:UnreachableCode-on
EndProcedure
Procedure Viber_MessagesSending() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Viber_ChannelToken" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Viber_ChannelAdminID", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Viber_Token" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Viber_UserID" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Picture" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Document" , TestParameters);
Viber_CreateKeyboardFromArrayButton(TestParameters);
Return;
//@skip-check unreachable-statement
// BSLLS:UnreachableCode-off
Viber_SendTextMessage(TestParameters);
Viber_SendImage(TestParameters);
Viber_SendFile(TestParameters);
Viber_SendContact(TestParameters);
Viber_SendLocation(TestParameters);
Viber_SendLink(TestParameters);
// BSLLS:UnreachableCode-on
EndProcedure
#EndRegion // Viber
#EndRegion // RunnableTests
#EndRegion // Internal
#Region Private
#Region AtomicTests
#Region Viber
Procedure Viber_SetWebhook(FunctionParameters)
Token = FunctionParameters["Viber_ChannelToken"];
URL = "http://api.athenaeum.digital/hs/viber";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("url", URL);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("viber", "SetWebhook", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Viber", "SetWebhook");
EndProcedure
Procedure Viber_GetChannelInformation(FunctionParameters)
Token = FunctionParameters["Viber_ChannelToken"];
Options = New Structure;
Options.Insert("token", Token);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("viber", "GetChannelInformation", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Viber", "GetChannelInformation");
EndProcedure
Procedure Viber_GetUserData(FunctionParameters)
Token = FunctionParameters["Viber_ChannelToken"];
UserID = FunctionParameters["Viber_ChannelAdminID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("user", UserID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("viber", "GetUserData", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Viber", "GetUserData");
EndProcedure
Procedure Viber_GetOnlineUsers(FunctionParameters)
Token = FunctionParameters["Viber_ChannelToken"];
UserID = FunctionParameters["Viber_ChannelAdminID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("users", UserID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("viber", "GetOnlineUsers", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Viber", "GetOnlineUsers");
EndProcedure
Procedure Viber_CreateKeyboardFromArrayButton(FunctionParameters)
ButtonArray = New Array;
ButtonArray.Add("Button 1");
ButtonArray.Add("Button 2");
ButtonArray.Add("Button 3");
Options = New Structure;
Options.Insert("buttons", ButtonArray);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("viber", "CreateKeyboardFromArrayButton", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Viber", "CreateKeyboardFromArrayButton");
EndProcedure
Procedure Viber_SendTextMessage(FunctionParameters)
Text = "TestMessage";
UserID = FunctionParameters["Viber_UserID"];
Token = FunctionParameters["Viber_Token"];
SendingToChannel = False;
ButtonArray = New Array;
ButtonArray.Add("Button 1");
ButtonArray.Add("Button 2");
ButtonArray.Add("Button 3");
Options = New Structure;
Options.Insert("buttons", ButtonArray);
Keyboard = OPI_TestDataRetrieval.ExecuteTestCLI("viber", "CreateKeyboardFromArrayButton", Options);
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("text", Text);
Options.Insert("user", UserID);
Options.Insert("ischannel", SendingToChannel);
Options.Insert("keyboard", Keyboard);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("viber", "SendTextMessage", Options);
OPI_TestDataRetrieval.Process(Result, "Viber", "SendTextMessage"); // SKIP
UserID = FunctionParameters["Viber_ChannelAdminID"];
Token = FunctionParameters["Viber_ChannelToken"];
SendingToChannel = True;
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("text", Text);
Options.Insert("user", UserID);
Options.Insert("ischannel", SendingToChannel);
Options.Insert("keyboard", Keyboard);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("viber", "SendTextMessage", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Viber", "SendTextMessage", "Channel");
EndProcedure
Procedure Viber_SendImage(FunctionParameters)
Description = "TestMessage";
URL = FunctionParameters["Picture"];
UserID = FunctionParameters["Viber_UserID"];
Token = FunctionParameters["Viber_Token"];
SendingToChannel = False;
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("picture", URL);
Options.Insert("user", UserID);
Options.Insert("ischannel", SendingToChannel);
Options.Insert("description", Description);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("viber", "SendImage", Options);
OPI_TestDataRetrieval.Process(Result, "Viber", "SendImage"); // SKIP
UserID = FunctionParameters["Viber_ChannelAdminID"];
Token = FunctionParameters["Viber_ChannelToken"];
SendingToChannel = True;
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("picture", URL);
Options.Insert("user", UserID);
Options.Insert("ischannel", SendingToChannel);
Options.Insert("description", Description);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("viber", "SendImage", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Viber", "SendImage", "Channel");
EndProcedure
Procedure Viber_SendFile(FunctionParameters)
Extension = "docx";
URL = FunctionParameters["Document"];
UserID = FunctionParameters["Viber_UserID"];
Token = FunctionParameters["Viber_Token"];
SendingToChannel = False;
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("file", URL);
Options.Insert("user", UserID);
Options.Insert("ischannel", SendingToChannel);
Options.Insert("ext", Extension);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("viber", "SendFile", Options);
OPI_TestDataRetrieval.Process(Result, "Viber", "SendFile"); // SKIP
UserID = FunctionParameters["Viber_ChannelAdminID"];
Token = FunctionParameters["Viber_ChannelToken"];
SendingToChannel = True;
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("file", URL);
Options.Insert("user", UserID);
Options.Insert("ischannel", SendingToChannel);
Options.Insert("ext", Extension);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("viber", "SendFile", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Viber", "SendFile", "Channel");
EndProcedure
Procedure Viber_SendContact(FunctionParameters)
Name = "Petr Petrov";
Phone = "+123456789";
UserID = FunctionParameters["Viber_UserID"];
Token = FunctionParameters["Viber_Token"];
SendingToChannel = False;
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("name", Name);
Options.Insert("phone", Phone);
Options.Insert("user", UserID);
Options.Insert("ischannel", SendingToChannel);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("viber", "SendContact", Options);
OPI_TestDataRetrieval.Process(Result, "Viber", "SendContact"); // SKIP
UserID = FunctionParameters["Viber_ChannelAdminID"];
Token = FunctionParameters["Viber_ChannelToken"];
SendingToChannel = True;
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("name", Name);
Options.Insert("phone", Phone);
Options.Insert("user", UserID);
Options.Insert("ischannel", SendingToChannel);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("viber", "SendContact", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Viber", "SendContact", "Channel");
EndProcedure
Procedure Viber_SendLocation(FunctionParameters)
Latitude = "48.87373649724122";
Longitude = "2.2954639195323967";
UserID = FunctionParameters["Viber_UserID"];
Token = FunctionParameters["Viber_Token"];
SendingToChannel = False;
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("lat", Latitude);
Options.Insert("long", Longitude);
Options.Insert("user", UserID);
Options.Insert("ischannel", SendingToChannel);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("viber", "SendLocation", Options);
OPI_TestDataRetrieval.Process(Result, "Viber", "SendLocation"); // SKIP
UserID = FunctionParameters["Viber_ChannelAdminID"];
Token = FunctionParameters["Viber_ChannelToken"];
SendingToChannel = True;
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("lat", Latitude);
Options.Insert("long", Longitude);
Options.Insert("user", UserID);
Options.Insert("ischannel", SendingToChannel);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("viber", "SendLocation", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Viber", "SendLocation", "Channel");
EndProcedure
Procedure Viber_SendLink(FunctionParameters)
URL = "https://github.com/Bayselonarrend/OpenIntegrations";
UserID = FunctionParameters["Viber_UserID"];
Token = FunctionParameters["Viber_Token"];
SendingToChannel = False;
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("url", URL);
Options.Insert("user", UserID);
Options.Insert("ischannel", SendingToChannel);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("viber", "SendLink", Options);
OPI_TestDataRetrieval.Process(Result, "Viber", "SendLink"); // SKIP
UserID = FunctionParameters["Viber_ChannelAdminID"];
Token = FunctionParameters["Viber_ChannelToken"];
SendingToChannel = True;
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("url", URL);
Options.Insert("user", UserID);
Options.Insert("ischannel", SendingToChannel);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("viber", "SendLink", Options);
// END
OPI_TestDataRetrieval.Process(Result, "Viber", "SendLink", "Channel");
EndProcedure
#EndRegion // Viber
#EndRegion // AtomicTests
#EndRegion // Private
#Region Alternate
Procedure Вайбер_ПолучениеИнформации() Export
Viber_DataRetrieval();
EndProcedure
Procedure Вайбер_ОтправкаСообщений() Export
Viber_MessagesSending();
EndProcedure
#EndRegion
+95
View File
@@ -0,0 +1,95 @@
// OneScript: ./OInt/tests/Modules/OPItc_WebSocket.os
// MIT License
// Copyright (c) 2023-2026 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
// BSLLS:Typo-off
// BSLLS:LatinAndCyrillicSymbolInWord-off
// BSLLS:IncorrectLineBreak-off
// BSLLS:UsingServiceTag-off
// BSLLS:UnusedParameters-off
// BSLLS:DuplicateStringLiteral-off
// BSLLS:UsingHardcodePath-off
// BSLLS:UnusedLocalVariable-off
// BSLLS:DeprecatedMessage-off
// BSLLS:LineLength-off
// BSLLS:MagicNumber-off
// BSLLS:CommentedCode-off
// BSLLS:AssignAliasFieldsInQuery-off
// BSLLS:UsingHardcodeNetworkAddress-off
// BSLLS:UnreachableCode-off
// BSLLS:UnusedLocalMethod-off
// BSLLS:NestedFunctionInParameters-off
// BSLLS:MissingTemporaryFileDeletion-off
// BSLLS:UsingSynchronousCalls-off
// BSLLS:MagicNumber-off
// BSLLS:MagicDate-off
// BSLLS:MissingParameterDescription-off
// BSLLS:NumberOfOptionalParams-off
// BSLLS:MethodSize-off
// BSLLS:NestedConstructorsInStructureDeclaration-off
// BSLLS:NumberOfValuesInStructureConstructor-off
// BSLLS:UsingHardcodeSecretInformation-off
// BSLLS:SpaceAtStartComment-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
//@skip-check module-unused-local-variable
//@skip-check bsl-legacy-check-string-literal
//@skip-check bsl-legacy-check-method-for-statements-after-return
//@skip-check missing-temporary-file-deletion
//@skip-check module-unused-method
#Use "../../tools/main"
#Use "../../tools/http"
#Use "../../api"
#Use asserts
#Use "internal"
// For YAxUnit
Procedure ИсполняемыеСценарии() Export
OPI_TestDataRetrieval.FormYAXTests("WebSocket");
EndProcedure
// For Asserts
Function ПолучитьСписокТестов(UnitTesting) Export
Return OPI_TestDataRetrieval.FormAssertsTests("WebSocket");
EndFunction
#Region Alternate
#EndRegion
+767
View File
@@ -0,0 +1,767 @@
// OneScript: ./OInt/tests/Modules/OPItc_YandexDisk.os
// MIT License
// Copyright (c) 2023-2026 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
// Test suite for YAxUnit
// BSLLS:Typo-off
// BSLLS:LatinAndCyrillicSymbolInWord-off
// BSLLS:IncorrectLineBreak-off
// BSLLS:UsingServiceTag-off
// BSLLS:UnusedParameters-off
// BSLLS:DuplicateStringLiteral-off
// BSLLS:UsingHardcodePath-off
// BSLLS:UnusedLocalVariable-off
// BSLLS:DeprecatedMessage-off
// BSLLS:LineLength-off
// BSLLS:MagicNumber-off
// BSLLS:CommentedCode-off
// BSLLS:AssignAliasFieldsInQuery-off
// BSLLS:UsingHardcodeNetworkAddress-off
// BSLLS:UnreachableCode-off
// BSLLS:UnusedLocalMethod-off
// BSLLS:NestedFunctionInParameters-off
// BSLLS:MissingTemporaryFileDeletion-off
// BSLLS:UsingSynchronousCalls-off
// BSLLS:MagicNumber-off
// BSLLS:MagicDate-off
// BSLLS:MissingParameterDescription-off
// BSLLS:NumberOfOptionalParams-off
// BSLLS:MethodSize-off
// BSLLS:NestedConstructorsInStructureDeclaration-off
// BSLLS:NumberOfValuesInStructureConstructor-off
// BSLLS:UsingHardcodeSecretInformation-off
// BSLLS:SpaceAtStartComment-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
//@skip-check module-unused-local-variable
//@skip-check bsl-legacy-check-string-literal
//@skip-check bsl-legacy-check-method-for-statements-after-return
//@skip-check missing-temporary-file-deletion
//@skip-check module-unused-method
#Use "../../tools/main"
#Use "../../tools/http"
#Use "../../api"
#Use asserts
#Use "internal"
// For YAxUnit
Procedure ИсполняемыеСценарии() Export
OPI_TestDataRetrieval.FormYAXTests("YandexDisk");
EndProcedure
// For Asserts
Function ПолучитьСписокТестов(UnitTesting) Export
Return OPI_TestDataRetrieval.FormAssertsTests("YandexDisk");
EndFunction
#Region Internal
#Region RunnableTests
#Region YandexDisk
Procedure YDisk_Authorization() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("YandexDisk_Token" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("YandexDisk_ClientID" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("YandexDisk_ClientSecret", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("YandexDisk_RefreshToken", TestParameters);
YandexDisk_GetConfirmationCode(TestParameters);
YandexDisk_ConvertCodeToToken(TestParameters);
YandexDisk_RefreshToken(TestParameters);
EndProcedure
Procedure YDisk_GetDiskInfo() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("YandexDisk_Token", TestParameters);
YandexDisk_GetDiskInformation(TestParameters);
EndProcedure
Procedure YDisk_CreateFolder() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("YandexDisk_Token", TestParameters);
YandexDisk_CreateFolder(TestParameters);
EndProcedure
Procedure YDisk_UploadByUrlAndGetObject() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("YandexDisk_Token", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Picture" , TestParameters);
YandexDisk_UploadFileByURL(TestParameters);
YandexDisk_GetObject(TestParameters);
YandexDisk_DeleteObject(TestParameters);
EndProcedure
Procedure YDisk_UploadDeleteFile() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("YandexDisk_Token", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Picture" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Audio" , TestParameters);
YandexDisk_UploadFileInParts(TestParameters);
YandexDisk_UploadFile(TestParameters);
EndProcedure
Procedure YDisk_CreateObjectCopy() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("YandexDisk_Token", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Picture" , TestParameters);
Token = TestParameters["YandexDisk_Token"];
URL = TestParameters["Picture"];
OriginalPath = "/" + String(New UUID) + ".png";
OPI_YandexDisk.UploadFileByURL(Token, OriginalPath, URL);
OPI_Tools.Pause(35);
OPI_TestDataRetrieval.WriteParameter("YandexDisk_OriginalFilePath", OriginalPath);
TestParameters.Insert("YandexDisk_OriginalFilePath", OriginalPath);
YandexDisk_CreateObjectCopy(TestParameters);
CopyPath = TestParameters["YandexDisk_CopyFilePath"];
OPI_YandexDisk.DeleteObject(Token, OriginalPath, False);
OPI_YandexDisk.DeleteObject(Token, CopyPath , False);
OPI_Tools.Pause(5);
EndProcedure
Procedure YDisk_GetDownloadLink() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("YandexDisk_Token", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Picture" , TestParameters);
Token = TestParameters["YandexDisk_Token"];
URL = TestParameters["Picture"];
Path = "/" + String(New UUID) + ".png";
OPI_YandexDisk.UploadFileByURL(Token, Path, URL);
OPI_Tools.Pause(35);
OPI_TestDataRetrieval.WriteParameter("YandexDisk_PathForLink", Path);
TestParameters.Insert("YandexDisk_PathForLink", Path);
YandexDisk_GetDownloadLink(TestParameters);
YandexDisk_DownloadFile(TestParameters);
OPI_YandexDisk.DeleteObject(Token, Path, False);
EndProcedure
Procedure YDisk_GetFileList() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("YandexDisk_Token", TestParameters);
YandexDisk_GetFilesList(TestParameters);
EndProcedure
Procedure YDisk_MoveObject() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("YandexDisk_Token", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Picture" , TestParameters);
Token = TestParameters["YandexDisk_Token"];
URL = TestParameters["Picture"];
OriginalPath = "/" + String(New UUID) + ".png";
OPI_YandexDisk.UploadFileByURL(Token, OriginalPath, URL);
OPI_Tools.Pause(35);
OPI_TestDataRetrieval.WriteParameter("YandexDisk_OriginalFilePath", OriginalPath);
TestParameters.Insert("YandexDisk_OriginalFilePath", OriginalPath);
YandexDisk_MoveObject(TestParameters);
NewPath = TestParameters["YandexDisk_NewFilePath"];
OPI_YandexDisk.DeleteObject(Token, OriginalPath, False);
OPI_YandexDisk.DeleteObject(Token, NewPath , False);
OPI_Tools.Pause(5);
EndProcedure
Procedure YDisk_PublicObjectActions() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("YandexDisk_Token", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Picture" , TestParameters);
Token = TestParameters["YandexDisk_Token"];
URL = TestParameters["Picture"];
OriginalPath = "/" + String(New UUID) + ".png";
OPI_YandexDisk.UploadFileByURL(Token, OriginalPath, URL);
OPI_Tools.Pause(35);
OPI_TestDataRetrieval.WriteParameter("YandexDisk_OriginalFilePath", OriginalPath);
TestParameters.Insert("YandexDisk_OriginalFilePath", OriginalPath);
YandexDisk_PublishObject(TestParameters);
YandexDisk_GetDownloadLinkForPublicObject(TestParameters);
YandexDisk_GetPublicObject(TestParameters);
YandexDisk_SavePublicObjectToDisk(TestParameters);
YandexDisk_CancelObjectPublication(TestParameters);
OPI_YandexDisk.DeleteObject(Token, OriginalPath, False);
OPI_Tools.Pause(5);
EndProcedure
Procedure YDisk_GetPublishedList() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("YandexDisk_Token", TestParameters);
YandexDisk_GetPublishedObjectsList(TestParameters);
EndProcedure
#EndRegion // YandexDisk
#EndRegion // RunnableTests
#EndRegion // Internal
#Region Private
#Region AtomicTests
#Region YandexDisk
Procedure YandexDisk_GetConfirmationCode(FunctionParameters)
ClientID = FunctionParameters["YandexDisk_ClientID"];
Options = New Structure;
Options.Insert("id", ClientID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("yadisk", "GetConfirmationCode", Options);
// END
OPI_TestDataRetrieval.Process(Result, "YandexDisk", "GetConfirmationCode");
EndProcedure
Procedure YandexDisk_ConvertCodeToToken(FunctionParameters)
ClientID = FunctionParameters["YandexDisk_ClientID"];
ClientSecret = FunctionParameters["YandexDisk_ClientSecret"];
DeviceCode = "12345678";
Options = New Structure;
Options.Insert("id", ClientID);
Options.Insert("secret", ClientSecret);
Options.Insert("device", DeviceCode);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("yadisk", "ConvertCodeToToken", Options);
// END
OPI_TestDataRetrieval.Process(Result, "YandexDisk", "ConvertCodeToToken", , FunctionParameters);
EndProcedure
Procedure YandexDisk_RefreshToken(FunctionParameters)
ClientID = FunctionParameters["YandexDisk_ClientID"];
ClientSecret = FunctionParameters["YandexDisk_ClientSecret"];
RefreshToken = FunctionParameters["YandexDisk_RefreshToken"];
Options = New Structure;
Options.Insert("id", ClientID);
Options.Insert("secret", ClientSecret);
Options.Insert("refresh", RefreshToken);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("yadisk", "RefreshToken", Options);
// END
OPI_TestDataRetrieval.Process(Result, "YandexDisk", "RefreshToken", , FunctionParameters);
EndProcedure
Procedure YandexDisk_GetDiskInformation(FunctionParameters)
Token = FunctionParameters["YandexDisk_Token"];
Options = New Structure;
Options.Insert("token", Token);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("yadisk", "GetDiskInformation", Options);
// END
OPI_TestDataRetrieval.Process(Result, "YandexDisk", "GetDiskInformation");
EndProcedure
Procedure YandexDisk_CreateFolder(FunctionParameters)
Token = FunctionParameters["YandexDisk_Token"];
Path = "/" + String(New UUID);
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("path", Path);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("yadisk", "CreateFolder", Options);
// END
OPI_TestDataRetrieval.Process(Result, "YandexDisk", "CreateFolder", , Token, Path);
OPI_YandexDisk.DeleteObject(Token, Path, False);
EndProcedure
Procedure YandexDisk_UploadFileByURL(FunctionParameters)
Token = FunctionParameters["YandexDisk_Token"];
Address = FunctionParameters["Picture"];
Path = "/" + String(New UUID) + ".png";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("path", Path);
Options.Insert("url", Address);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("yadisk", "UploadFileByURL", Options);
// END
OPI_TestDataRetrieval.Process(Result, "YandexDisk", "UploadFileByURL", , FunctionParameters, Path);
EndProcedure
Procedure YandexDisk_GetObject(FunctionParameters)
Token = FunctionParameters["YandexDisk_Token"];
Path = FunctionParameters["YandexDisk_FileByURLPath"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("path", Path);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("yadisk", "GetObject", Options);
// END
OPI_TestDataRetrieval.Process(Result, "YandexDisk", "GetObject", , Path);
EndProcedure
Procedure YandexDisk_DeleteObject(FunctionParameters)
Token = FunctionParameters["YandexDisk_Token"];
Path = FunctionParameters["YandexDisk_FileByURLPath"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("path", Path);
Options.Insert("can", Ложь);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("yadisk", "DeleteObject", Options);
// END
OPI_TestDataRetrieval.Process(Result, "YandexDisk", "DeleteObject");
EndProcedure
Procedure YandexDisk_UploadFile(FunctionParameters)
Path1 = "/" + String(New UUID) + ".png";
Path2 = "/" + String(New UUID) + ".png";
Token = FunctionParameters["YandexDisk_Token"];
Image = FunctionParameters["Picture"]; // URL
TFN = GetTempFileName("png"); // Path
CopyFile(Image, TFN);
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("path", Path1);
Options.Insert("file", Image);
Options.Insert("rewrite", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("yadisk", "UploadFile", Options);
OPI_TestDataRetrieval.Process(Result, "YandexDisk", "UploadFile", "URL"); // SKIP
OPI_YandexDisk.DeleteObject(Token, Path1, False); // SKIP
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("path", Path2);
Options.Insert("file", TFN);
Options.Insert("rewrite", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("yadisk", "UploadFile", Options);
// END
OPI_Tools.RemoveFileWithTry(TFN, "Failed to delete the temporary file after the test!!");
OPI_TestDataRetrieval.Process(Result, "YandexDisk", "UploadFile");
OPI_YandexDisk.DeleteObject(Token, Path2, False); // SKIP
EndProcedure
Procedure YandexDisk_CreateObjectCopy(FunctionParameters)
Token = FunctionParameters["YandexDisk_Token"];
Original = FunctionParameters["YandexDisk_OriginalFilePath"];
Path = "/" + String(New UUID) + ".png";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("from", Original);
Options.Insert("to", Path);
Options.Insert("rewrite", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("yadisk", "CreateObjectCopy", Options);
// END
OPI_TestDataRetrieval.Process(Result, "YandexDisk", "CreateObjectCopy", , FunctionParameters, Path);
EndProcedure
Procedure YandexDisk_GetDownloadLink(FunctionParameters)
Token = FunctionParameters["YandexDisk_Token"];
Path = FunctionParameters["YandexDisk_PathForLink"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("path", Path);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("yadisk", "GetDownloadLink", Options);
// END
OPI_TestDataRetrieval.Process(Result, "YandexDisk", "GetDownloadLink");
EndProcedure
Procedure YandexDisk_DownloadFile(FunctionParameters)
Token = FunctionParameters["YandexDisk_Token"];
Path = FunctionParameters["YandexDisk_PathForLink"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("path", Path);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("yadisk", "DownloadFile", Options);
// END
OPI_TestDataRetrieval.Process(Result, "YandexDisk", "DownloadFile");
EndProcedure
Procedure YandexDisk_GetFilesList(FunctionParameters)
Token = FunctionParameters["YandexDisk_Token"];
Count = 2;
OffsetFromStart = 1;
FilterByType = "image";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("amount", Count);
Options.Insert("offset", OffsetFromStart);
Options.Insert("type", FilterByType);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("yadisk", "GetFilesList", Options);
// END
OPI_TestDataRetrieval.Process(Result, "YandexDisk", "GetFilesList", , Count, OffsetFromStart);
EndProcedure
Procedure YandexDisk_MoveObject(FunctionParameters)
Token = FunctionParameters["YandexDisk_Token"];
Original = FunctionParameters["YandexDisk_OriginalFilePath"];
Path = "/" + String(New UUID) + ".png";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("from", Original);
Options.Insert("to", Path);
Options.Insert("rewrite", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("yadisk", "MoveObject", Options);
// END
OPI_TestDataRetrieval.Process(Result, "YandexDisk", "MoveObject", , FunctionParameters, Path);
EndProcedure
Procedure YandexDisk_GetPublishedObjectsList(FunctionParameters)
Token = FunctionParameters["YandexDisk_Token"];
Count = 2;
OffsetFromStart = 1;
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("amount", Count);
Options.Insert("offset", OffsetFromStart);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("yadisk", "GetPublishedObjectsList", Options);
// END
OPI_TestDataRetrieval.Process(Result, "YandexDisk", "GetPublishedObjectsList", , Count, OffsetFromStart);
EndProcedure
Procedure YandexDisk_PublishObject(FunctionParameters)
Token = FunctionParameters["YandexDisk_Token"];
Path = FunctionParameters["YandexDisk_OriginalFilePath"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("path", Path);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("yadisk", "PublishObject", Options);
// END
OPI_TestDataRetrieval.Process(Result, "YandexDisk", "PublishObject", , FunctionParameters, Path);
EndProcedure
Procedure YandexDisk_GetDownloadLinkForPublicObject(FunctionParameters)
Token = FunctionParameters["YandexDisk_Token"];
URL = FunctionParameters["YandexDisk_PublicURL"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("url", URL);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("yadisk", "GetDownloadLinkForPublicObject", Options);
// END
OPI_TestDataRetrieval.Process(Result, "YandexDisk", "GetDownloadLinkForPublicObject");
EndProcedure
Procedure YandexDisk_GetPublicObject(FunctionParameters)
Token = FunctionParameters["YandexDisk_Token"];
URL = FunctionParameters["YandexDisk_PublicURL"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("url", URL);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("yadisk", "GetPublicObject", Options);
// END
OPI_TestDataRetrieval.Process(Result, "YandexDisk", "GetPublicObject");
EndProcedure
Procedure YandexDisk_SavePublicObjectToDisk(FunctionParameters)
Token = FunctionParameters["YandexDisk_Token"];
URL = FunctionParameters["YandexDisk_PublicURL"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("url", URL);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("yadisk", "SavePublicObjectToDisk", Options);
// END
OPI_TestDataRetrieval.Process(Result, "YandexDisk", "SavePublicObjectToDisk");
EndProcedure
Procedure YandexDisk_CancelObjectPublication(FunctionParameters)
Token = FunctionParameters["YandexDisk_Token"];
Path = FunctionParameters["YandexDisk_OriginalFilePath"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("path", Path);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("yadisk", "CancelObjectPublication", Options);
// END
OPI_TestDataRetrieval.Process(Result, "YandexDisk", "CancelObjectPublication", , Path);
EndProcedure
Procedure YandexDisk_UploadFileInParts(FunctionParameters)
Path = "/song.mp3";
Token = FunctionParameters["YandexDisk_Token"];
File = FunctionParameters["Audio"]; // URL, Binary or File path
ChunkSize = 1048576; // 1 MB
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("path", Path);
Options.Insert("file", File);
Options.Insert("psize", ChunkSize);
Options.Insert("rewrite", Истина);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("yadisk", "UploadFileInParts", Options);
// END
OPI_TestDataRetrieval.Process(Result, "YandexDisk", "UploadFileInParts", , File);
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("path", Path);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("yadisk", "DownloadFile", Options);
OPI_TestDataRetrieval.Process(Result, "YandexDisk", "UploadFileInParts", "Downloading", File);
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("path", Path);
Options.Insert("can", Ложь);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("yadisk", "DeleteObject", Options);
OPI_TestDataRetrieval.Process(Result, "YandexDisk", "UploadFileInParts", "Deletion");
EndProcedure
#EndRegion // YandexDisk
#EndRegion // AtomicTests
#EndRegion // Private
#Region Alternate
Procedure ЯДиск_Авторизация() Export
YDisk_Authorization();
EndProcedure
Procedure ЯДиск_ПолучитьИнформациюОДиске() Export
YDisk_GetDiskInfo();
EndProcedure
Procedure ЯДиск_СоздатьПапку() Export
YDisk_CreateFolder();
EndProcedure
Procedure ЯДиск_ЗагрузитьПоАдресуПолучитьОбъект() Export
YDisk_UploadByUrlAndGetObject();
EndProcedure
Procedure ЯДиск_ЗагрузитьУдалитьФайл() Export
YDisk_UploadDeleteFile();
EndProcedure
Procedure ЯДиск_СоздатьКопиюОбъекта() Export
YDisk_CreateObjectCopy();
EndProcedure
Procedure ЯДиск_ПолучитьСсылкуНаСкачивание() Export
YDisk_GetDownloadLink();
EndProcedure
Procedure ЯДиск_ПолучитьСписокФайлов() Export
YDisk_GetFileList();
EndProcedure
Procedure ЯДиск_ПереместитьОбъект() Export
YDisk_MoveObject();
EndProcedure
Procedure ЯДиск_ДействияПубличныхОбъектов() Export
YDisk_PublicObjectActions();
EndProcedure
Procedure ЯДиск_ПолучитьСписокОпубликованных() Export
YDisk_GetPublishedList();
EndProcedure
#EndRegion
+461
View File
@@ -0,0 +1,461 @@
// OneScript: ./OInt/tests/Modules/OPItc_YandexMetrika.os
// MIT License
// Copyright (c) 2023-2026 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
// Test suite for YAxUnit
// BSLLS:Typo-off
// BSLLS:LatinAndCyrillicSymbolInWord-off
// BSLLS:IncorrectLineBreak-off
// BSLLS:UsingServiceTag-off
// BSLLS:UnusedParameters-off
// BSLLS:DuplicateStringLiteral-off
// BSLLS:UsingHardcodePath-off
// BSLLS:UnusedLocalVariable-off
// BSLLS:DeprecatedMessage-off
// BSLLS:LineLength-off
// BSLLS:MagicNumber-off
// BSLLS:CommentedCode-off
// BSLLS:AssignAliasFieldsInQuery-off
// BSLLS:UsingHardcodeNetworkAddress-off
// BSLLS:UnreachableCode-off
// BSLLS:UnusedLocalMethod-off
// BSLLS:NestedFunctionInParameters-off
// BSLLS:MissingTemporaryFileDeletion-off
// BSLLS:UsingSynchronousCalls-off
// BSLLS:MagicNumber-off
// BSLLS:MagicDate-off
// BSLLS:MissingParameterDescription-off
// BSLLS:NumberOfOptionalParams-off
// BSLLS:MethodSize-off
// BSLLS:NestedConstructorsInStructureDeclaration-off
// BSLLS:NumberOfValuesInStructureConstructor-off
// BSLLS:UsingHardcodeSecretInformation-off
// BSLLS:SpaceAtStartComment-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
//@skip-check module-unused-local-variable
//@skip-check bsl-legacy-check-string-literal
//@skip-check bsl-legacy-check-method-for-statements-after-return
//@skip-check missing-temporary-file-deletion
//@skip-check module-unused-method
#Use "../../tools/main"
#Use "../../tools/http"
#Use "../../api"
#Use asserts
#Use "internal"
// For YAxUnit
Procedure ИсполняемыеСценарии() Export
OPI_TestDataRetrieval.FormYAXTests("YandexMetrika");
EndProcedure
// For Asserts
Function ПолучитьСписокТестов(UnitTesting) Export
Return OPI_TestDataRetrieval.FormAssertsTests("YandexMetrika");
EndFunction
#Region Internal
#Region RunnableTests
#Region YandexMetrika
Procedure YaMetrika_TagsManagement() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Metrika_Token", TestParameters);
YandexMetrika_CreateTag(TestParameters);
YandexMetrika_GetTagsList(TestParameters);
YandexMetrika_UpdateTag(TestParameters);
YandexMetrika_GetTag(TestParameters);
YandexMetrika_DeleteTag(TestParameters);
EndProcedure
Procedure YaMetrika_CountersManagement() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Metrika_Token", TestParameters);
YandexMetrika_GetCounterStructure(TestParameters);
YandexMetrika_CreateCounter(TestParameters);
YandexMetrika_GetCounter(TestParameters);
YandexMetrika_UpdateCounter(TestParameters);
YandexMetrika_DeleteCounter(TestParameters);
YandexMetrika_RestoreCounter(TestParameters);
YandexMetrika_GetCountersList(TestParameters);
YandexMetrika_DeleteCounter(TestParameters);
EndProcedure
Procedure YaMetrika_ActionsManagement() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Metrika_Token", TestParameters);
YandexMetrika_CreateCounter(TestParameters);
YandexMetrika_GetActionsList(TestParameters);
YandexMetrika_DeleteCounter(TestParameters);
EndProcedure
#EndRegion // YandexMetrika
#EndRegion // RunnableTests
#EndRegion // Internal
#Region Private
#Region AtomicTests
#Region YandexMetrika
Procedure YandexMetrika_GetTagsList(FunctionParameters)
Token = FunctionParameters["Metrika_Token"];
Options = New Structure;
Options.Insert("token", Token);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("metrika", "GetTagsList", Options);
// END
OPI_TestDataRetrieval.Process(Result, "YandexMetrika", "GetTagsList");
EndProcedure
Procedure YandexMetrika_CreateTag(FunctionParameters)
Token = FunctionParameters["Metrika_Token"];
Name = "New tag";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("title", Name);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("metrika", "CreateTag", Options);
// END
OPI_TestDataRetrieval.Process(Result, "YandexMetrika", "CreateTag", , FunctionParameters, Name);
EndProcedure
Procedure YandexMetrika_DeleteTag(FunctionParameters)
Token = FunctionParameters["Metrika_Token"];
TagID = FunctionParameters["Metrika_LabelID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("label", TagID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("metrika", "DeleteTag", Options);
// END
OPI_TestDataRetrieval.Process(Result, "YandexMetrika", "DeleteTag");
EndProcedure
Procedure YandexMetrika_UpdateTag(FunctionParameters)
Token = FunctionParameters["Metrika_Token"];
TagID = FunctionParameters["Metrika_LabelID"];
Name = "New tag title";
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("label", TagID);
Options.Insert("title", Name);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("metrika", "UpdateTag", Options);
// END
OPI_TestDataRetrieval.Process(Result, "YandexMetrika", "UpdateTag", , Name);
EndProcedure
Procedure YandexMetrika_GetTag(FunctionParameters)
Token = FunctionParameters["Metrika_Token"];
TagID = FunctionParameters["Metrika_LabelID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("label", TagID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("metrika", "GetTag", Options);
// END
OPI_TestDataRetrieval.Process(Result, "YandexMetrika", "GetTag");
EndProcedure
Procedure YandexMetrika_GetCounterStructure(FunctionParameters)
Clear = False;
Options = New Structure;
Options.Insert("empty", Clear);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("metrika", "GetCounterStructure", Options);
// END
OPI_TestDataRetrieval.Process(Result, "YandexMetrika", "GetCounterStructure");
EndProcedure
Procedure YandexMetrika_CreateCounter(FunctionParameters)
Token = FunctionParameters["Metrika_Token"];
CounterStructure = New Structure;
CounterStructure.Insert("autogoals_enabled", True);
CodeSettingsStructure = New Structure;
CodeSettingsStructure.Insert("async" , 0);
CodeSettingsStructure.Insert("clickmap" , 1);
CodeSettingsStructure.Insert("ecommerce" , 1);
CodeSettingsStructure.Insert("in_one_line" , 0);
CodeSettingsStructure.Insert("track_hash" , 1);
CodeSettingsStructure.Insert("visor" , 1);
CodeSettingsStructure.Insert("xml_site" , 0);
CodeSettingsStructure.Insert("ytm" , 0);
CodeSettingsStructure.Insert("alternative_cdn", 1);
InformerStructure = New Structure;
InformerStructure.Insert("color_arrow", 1);
InformerStructure.Insert("color_end" , "EFEFEFFE");
InformerStructure.Insert("color_start", "EEEEEEEE");
InformerStructure.Insert("color_text" , 0);
InformerStructure.Insert("enabled" , 1);
InformerStructure.Insert("indicator" , "uniques");
InformerStructure.Insert("size" , 2);
InformerStructure.Insert("type" , "ext");
CodeSettingsStructure.Insert("informer", InformerStructure);
CounterStructure.Insert("code_options", CodeSettingsStructure);
FlagsStructure = New Structure;
FlagsStructure.Insert("collect_first_party_data" , True);
FlagsStructure.Insert("measurement_enabled" , True);
FlagsStructure.Insert("use_in_benchmarks" , True);
FlagsStructure.Insert("direct_allow_use_goals_without_access", True);
CounterStructure.Insert("counter_flags" , FlagsStructure);
CounterStructure.Insert("favorite" , 1);
CounterStructure.Insert("filter_robots" , 2);
CounterStructure.Insert("gdpr_agreement_accepted", 1);
DomainStructure = New Structure("site", "openintegrations.dev");
CounterStructure.Insert("site2", DomainStructure);
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("fields", CounterStructure);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("metrika", "CreateCounter", Options);
// END
OPI_TestDataRetrieval.Process(Result, "YandexMetrika", "CreateCounter", , FunctionParameters);
EndProcedure
Procedure YandexMetrika_DeleteCounter(FunctionParameters)
Token = FunctionParameters["Metrika_Token"];
CounterID = FunctionParameters["Metrika_CounterID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("counter", CounterID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("metrika", "DeleteCounter", Options);
// END
OPI_TestDataRetrieval.Process(Result, "YandexMetrika", "DeleteCounter");
EndProcedure
Procedure YandexMetrika_UpdateCounter(FunctionParameters)
Token = FunctionParameters["Metrika_Token"];
CounterID = FunctionParameters["Metrika_CounterID"];
CounterStructure = New Structure;
CounterStructure.Insert("autogoals_enabled", True);
FlagsStructure = New Structure;
FlagsStructure.Insert("collect_first_party_data" , False);
FlagsStructure.Insert("measurement_enabled" , False);
FlagsStructure.Insert("use_in_benchmarks" , False);
FlagsStructure.Insert("direct_allow_use_goals_without_access", False);
CounterStructure.Insert("counter_flags", FlagsStructure);
CounterStructure.Insert("favorite" , 0);
CounterStructure.Insert("filter_robots", 1);
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("counter", CounterID);
Options.Insert("fields", CounterStructure);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("metrika", "UpdateCounter", Options);
// END
OPI_TestDataRetrieval.Process(Result, "YandexMetrika", "UpdateCounter");
EndProcedure
Procedure YandexMetrika_GetCounter(FunctionParameters)
Token = FunctionParameters["Metrika_Token"];
CounterID = FunctionParameters["Metrika_CounterID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("counter", CounterID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("metrika", "GetCounter", Options);
// END
OPI_TestDataRetrieval.Process(Result, "YandexMetrika", "GetCounter");
EndProcedure
Procedure YandexMetrika_RestoreCounter(FunctionParameters)
Token = FunctionParameters["Metrika_Token"];
CounterID = FunctionParameters["Metrika_CounterID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("counter", CounterID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("metrika", "RestoreCounter", Options);
// END
OPI_TestDataRetrieval.Process(Result, "YandexMetrika", "RestoreCounter");
EndProcedure
Procedure YandexMetrika_GetCountersList(FunctionParameters)
Token = FunctionParameters["Metrika_Token"];
CounterID = FunctionParameters["Metrika_CounterID"];
Options = New Structure;
Options.Insert("token", Token);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("metrika", "GetCountersList", Options);
OPI_TestDataRetrieval.Process(Result, "YandexMetrika", "GetCountersList"); // SKIP
// filter by IDs list
Filter = New Structure;
CountersArray = New Array;
CountersArray.Add(CounterID);
Filter.Insert("counter_ids", CountersArray);
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("filter", Filter);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("metrika", "GetCountersList", Options);
// END
OPI_TestDataRetrieval.Process(Result, "YandexMetrika", "GetCountersList", "Filter");
EndProcedure
Procedure YandexMetrika_GetActionsList(FunctionParameters)
Token = FunctionParameters["Metrika_Token"];
CounterID = FunctionParameters["Metrika_CounterID"];
Options = New Structure;
Options.Insert("token", Token);
Options.Insert("counter", CounterID);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("metrika", "GetActionsList", Options);
// END
OPI_TestDataRetrieval.Process(Result, "YandexMetrika", "GetActionsList");
EndProcedure
#EndRegion // YandexMetrika
#EndRegion // AtomicTests
#EndRegion // Private
#Region Alternate
Procedure ЯМетрика_УправлениеМетками() Export
YaMetrika_TagsManagement();
EndProcedure
Procedure ЯМетрика_УправлениеСчетчиками() Export
YaMetrika_CountersManagement();
EndProcedure
Procedure ЯМетрика_УправлениеОперациями() Export
YaMetrika_ActionsManagement();
EndProcedure
#EndRegion
@@ -1,9 +1,9 @@
Процедура ЗапуститьЭхоСервер() Экспорт
Порт = 9876;
Порт = 9876;
РазмерПула = 10;
НастройкиЛога = OPI_TCP.ПолучитьНастройкиЛогирования(Истина, 500, "D:\SERVER_LOG.txt");
НастройкиЛога = OPI_TCP.ПолучитьНастройкиЛогирования(Истина, 500, "D:\SERVER_LOG.txt");
ОбъектСервера = OPI_TCP.ЗапуститьСервер(Порт, РазмерПула, НастройкиЛога);
Если Не OPI_TCP.ЭтоОбъектСервера(ОбъектСервера) Тогда
@@ -220,7 +220,7 @@
ТипРезультата = ТипЗнч(Результат);
Если ТипРезультата = Тип("ДвоичныеДанные") Тогда
Результат = Новый Структура("result,data", Истина, Результат);
Результат = Новый Структура("result,data", Истина, Результат);
ИначеЕсли Не Тип("Структура") Тогда
Результат = JsonВСтруктуру(Результат, Ложь);
КонецЕсли;
@@ -1,3 +1,5 @@
// OneScript: ./OInt/tests/Modules/OPItc_Airtable.os
// MIT License
// Copyright (c) 2023-2026 Anton Tsitavets
@@ -9,7 +11,7 @@
// 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
// 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
@@ -22,6 +24,8 @@
// https://github.com/Bayselonarrend/OpenIntegrations
// Набор тестов для YAxUnit
// BSLLS:Typo-off
// BSLLS:LatinAndCyrillicSymbolInWord-off
// BSLLS:IncorrectLineBreak-off
@@ -63,6 +67,607 @@
//@skip-check missing-temporary-file-deletion
//@skip-check module-unused-method
// #Использовать oint
// #Использовать asserts
// #Использовать "internal"
//#Использовать "../../tools/main"
//#Использовать "../../tools/http"
//#Использовать "../../api"
//#Использовать asserts
//#Использовать "internal"
#Область СлужебныйПрограммныйИнтерфейс
// Для YaxUnit
Процедура ИсполняемыеСценарии() Экспорт
OPI_ПолучениеДанныхТестов.СформироватьТестыЯкс("Airtable");
КонецПроцедуры
// Для Asserts
Функция ПолучитьСписокТестов(ЮнитТестирование) Экспорт
Возврат OPI_ПолучениеДанныхТестов.СформироватьТестыАссертс("Airtable");
КонецФункции
#Область ЗапускаемыеТесты
#Область Airtable
Процедура АТ_СоздатьБазу() Экспорт
ПараметрыТеста = Новый Структура;
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Airtable_Token" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Airtable_Workspace", ПараметрыТеста);
Airtable_СоздатьБазу(ПараметрыТеста);
Airtable_ПолучитьТаблицыБазы(ПараметрыТеста);
Airtable_ПолучитьСписокБаз(ПараметрыТеста);
КонецПроцедуры
Процедура АТ_СоздатьТаблицу() Экспорт
ПараметрыТеста = Новый Структура;
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Airtable_Token", ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Airtable_Base" , ПараметрыТеста);
Airtable_ПолучитьПолеНомера(ПараметрыТеста);
Airtable_ПолучитьПолеСтроковое(ПараметрыТеста);
Airtable_ПолучитьПолеВложения(ПараметрыТеста);
Airtable_ПолучитьПолеФлажка(ПараметрыТеста);
Airtable_ПолучитьПолеДаты(ПараметрыТеста);
Airtable_ПолучитьПолеТелефона(ПараметрыТеста);
Airtable_ПолучитьПолеПочты(ПараметрыТеста);
Airtable_ПолучитьПолеСсылки(ПараметрыТеста);
Airtable_СоздатьТаблицу(ПараметрыТеста);
Airtable_ИзменитьТаблицу(ПараметрыТеста);
КонецПроцедуры
Процедура АТ_СоздатьПоле() Экспорт
ПараметрыТеста = Новый Структура;
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Airtable_Token", ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Airtable_Base" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Airtable_Table", ПараметрыТеста);
Airtable_СоздатьПоле(ПараметрыТеста);
Airtable_ИзменитьПоле(ПараметрыТеста);
КонецПроцедуры
Процедура АТ_СоздатьУдалитьЗаписи() Экспорт
ПараметрыТеста = Новый Структура;
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Airtable_Token", ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Airtable_Base" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Airtable_Table", ПараметрыТеста);
Airtable_СоздатьЗаписи(ПараметрыТеста);
Airtable_ПолучитьЗапись(ПараметрыТеста);
Airtable_СоздатьКомментарий(ПараметрыТеста);
Airtable_ИзменитьКомментарий(ПараметрыТеста);
Airtable_ПолучитьКомментарии(ПараметрыТеста);
Airtable_УдалитьКомментарий(ПараметрыТеста);
Airtable_ПолучитьСписокЗаписей(ПараметрыТеста);
Airtable_УдалитьЗаписи(ПараметрыТеста);
КонецПроцедуры
#КонецОбласти // Airtable
#КонецОбласти // ЗапускаемыеТесты
#КонецОбласти // СлужебныйПрограммныйИнтерфейс
#Область СлужебныеПроцедурыИФункции
#Область АтомарныеТесты
#Область Airtable
Процедура Airtable_СоздатьБазу(ПараметрыФункции)
Токен = ПараметрыФункции["Airtable_Token"];
Область = ПараметрыФункции["Airtable_Workspace"];
Наименование = "Тестовая база";
МассивПолей = Новый Массив;
МассивПолей.Добавить(OPI_Airtable.ПолучитьПолеНомера("Номер"));
МассивПолей.Добавить(OPI_Airtable.ПолучитьПолеСтроковое("Строковое"));
ИмяТаблицы = "Тестовая таблица";
СоответствиеТаблиц = Новый Соответствие;
СоответствиеТаблиц.Вставить(ИмяТаблицы, МассивПолей);
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("ws", Область);
Опции.Вставить("title", Наименование);
Опции.Вставить("tablesdata", СоответствиеТаблиц);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("airtable", "СоздатьБазу", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "Airtable", "СоздатьБазу", , ПараметрыФункции, ИмяТаблицы);
КонецПроцедуры
Процедура Airtable_ПолучитьТаблицыБазы(ПараметрыФункции)
Токен = ПараметрыФункции["Airtable_Token"];
База = ПараметрыФункции["Airtable_Base"];
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("base", База);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("airtable", "ПолучитьТаблицыБазы", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "Airtable", "ПолучитьТаблицыБазы");
КонецПроцедуры
Процедура Airtable_ПолучитьСписокБаз(ПараметрыФункции)
Токен = ПараметрыФункции["Airtable_Token"];
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("airtable", "ПолучитьСписокБаз", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "Airtable", "ПолучитьСписокБаз");
КонецПроцедуры
Процедура Airtable_ПолучитьПолеНомера(ПараметрыФункции)
Опции = Новый Структура;
Опции.Вставить("title", "Номер");
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("airtable", "ПолучитьПолеНомера", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "Airtable", "ПолучитьПолеНомера");
КонецПроцедуры
Процедура Airtable_ПолучитьПолеСтроковое(ПараметрыФункции)
Опции = Новый Структура;
Опции.Вставить("title", "Строковое");
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("airtable", "ПолучитьПолеСтроковое", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "Airtable", "ПолучитьПолеСтроковое");
КонецПроцедуры
Процедура Airtable_ПолучитьПолеВложения(ПараметрыФункции)
Опции = Новый Структура;
Опции.Вставить("title", "Вложение");
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("airtable", "ПолучитьПолеВложения", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "Airtable", "ПолучитьПолеВложения");
КонецПроцедуры
Процедура Airtable_ПолучитьПолеФлажка(ПараметрыФункции)
Опции = Новый Структура;
Опции.Вставить("title", "Флажок");
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("airtable", "ПолучитьПолеФлажка", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "Airtable", "ПолучитьПолеФлажка");
КонецПроцедуры
Процедура Airtable_ПолучитьПолеДаты(ПараметрыФункции)
Опции = Новый Структура;
Опции.Вставить("title", "Дата");
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("airtable", "ПолучитьПолеДаты", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "Airtable", "ПолучитьПолеДаты");
КонецПроцедуры
Процедура Airtable_ПолучитьПолеТелефона(ПараметрыФункции)
Опции = Новый Структура;
Опции.Вставить("title", "Телефон");
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("airtable", "ПолучитьПолеТелефона", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "Airtable", "ПолучитьПолеТелефона");
КонецПроцедуры
Процедура Airtable_ПолучитьПолеПочты(ПараметрыФункции)
Опции = Новый Структура;
Опции.Вставить("title", "Почта");
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("airtable", "ПолучитьПолеПочты", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "Airtable", "ПолучитьПолеПочты");
КонецПроцедуры
Процедура Airtable_ПолучитьПолеСсылки(ПараметрыФункции)
Опции = Новый Структура;
Опции.Вставить("title", "Ссылка");
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("airtable", "ПолучитьПолеСсылки", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "Airtable", "ПолучитьПолеСсылки");
КонецПроцедуры
Процедура Airtable_СоздатьТаблицу(ПараметрыФункции)
Токен = ПараметрыФункции["Airtable_Token"];
База = ПараметрыФункции["Airtable_Base"];
МассивПолей = Новый Массив;
МассивПолей.Добавить(OPI_Airtable.ПолучитьПолеНомера("Номер"));
МассивПолей.Добавить(OPI_Airtable.ПолучитьПолеСтроковое("Строковое"));
МассивПолей.Добавить(OPI_Airtable.ПолучитьПолеВложения("Вложение"));
МассивПолей.Добавить(OPI_Airtable.ПолучитьПолеФлажка("Флажок"));
МассивПолей.Добавить(OPI_Airtable.ПолучитьПолеДаты("Дата"));
МассивПолей.Добавить(OPI_Airtable.ПолучитьПолеТелефона("Телефон"));
МассивПолей.Добавить(OPI_Airtable.ПолучитьПолеПочты("Почта"));
МассивПолей.Добавить(OPI_Airtable.ПолучитьПолеСсылки("Ссылка"));
Наименование = "Тестовая таблица 2";
Описание = "Новая таблица";
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("base", База);
Опции.Вставить("title", Наименование);
Опции.Вставить("fieldsdata", МассивПолей);
Опции.Вставить("description", Описание);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("airtable", "СоздатьТаблицу", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "Airtable", "СоздатьТаблицу", , ПараметрыФункции, Наименование, Описание);
КонецПроцедуры
Процедура Airtable_ИзменитьТаблицу(ПараметрыФункции)
Токен = ПараметрыФункции["Airtable_Token"];
База = ПараметрыФункции["Airtable_Base"];
Таблица = ПараметрыФункции["Airtable_Table"];
Наименование = "Тестовая таблица 2 (изм.)";
Описание = "Новая таблица (изм.)";
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("base", База);
Опции.Вставить("table", Таблица);
Опции.Вставить("title", Наименование);
Опции.Вставить("description", Описание);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("airtable", "ИзменитьТаблицу", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "Airtable", "ИзменитьТаблицу", , Наименование, Описание);
КонецПроцедуры
Процедура Airtable_СоздатьПоле(ПараметрыФункции)
Токен = ПараметрыФункции["Airtable_Token"];
База = ПараметрыФункции["Airtable_Base"];
Таблица = ПараметрыФункции["Airtable_Table"];
Имя = Строка(Новый УникальныйИдентификатор);
Опции = Новый Структура;
Опции.Вставить("title", Имя);
Поле = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("airtable", "ПолучитьПолеНомера", Опции);
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("base", База);
Опции.Вставить("table", Таблица);
Опции.Вставить("fielddata", Поле);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("airtable", "СоздатьПоле", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "Airtable", "СоздатьПоле", , ПараметрыФункции, Имя);
КонецПроцедуры
Процедура Airtable_ИзменитьПоле(ПараметрыФункции)
Токен = ПараметрыФункции["Airtable_Token"];
База = ПараметрыФункции["Airtable_Base"];
Таблица = ПараметрыФункции["Airtable_Table"];
Поле = ПараметрыФункции["Airtable_Field"];
Имя = Строка(Новый УникальныйИдентификатор) + "(изм.)";
Описание = "Новое описание";
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("base", База);
Опции.Вставить("table", Таблица);
Опции.Вставить("field", Поле);
Опции.Вставить("title", Имя);
Опции.Вставить("description", Описание);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("airtable", "ИзменитьПоле", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "Airtable", "ИзменитьПоле", , Имя, Описание);
КонецПроцедуры
Процедура Airtable_СоздатьЗаписи(ПараметрыФункции)
Токен = ПараметрыФункции["Airtable_Token"];
База = ПараметрыФункции["Airtable_Base"];
Таблица = ПараметрыФункции["Airtable_Table"];
Номер = 10;
Строковое = "Привет";
ОписаниеСтроки1 = Новый Структура("Номер,Строковое", Номер, Строковое);
ОписаниеСтроки2 = Новый Структура("Номер,Строковое", Номер, Строковое);
МассивОписаний = Новый Массив;
МассивОписаний.Добавить(ОписаниеСтроки1);
МассивОписаний.Добавить(ОписаниеСтроки2);
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("base", База);
Опции.Вставить("table", Таблица);
Опции.Вставить("data", МассивОписаний);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("airtable", "СоздатьЗаписи", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "Airtable", "СоздатьЗаписи", , ПараметрыФункции);
МассивУдаляемых = Новый Массив;
Для Каждого Запись Из Результат["records"] Цикл
ТекущаяЗапись = Запись["id"];
МассивУдаляемых.Добавить(ТекущаяЗапись);
КонецЦикла;
OPI_Airtable.УдалитьЗаписи(Токен, База, Таблица, МассивУдаляемых);
// Одиночное
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("base", База);
Опции.Вставить("table", Таблица);
Опции.Вставить("data", ОписаниеСтроки1);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("airtable", "СоздатьЗаписи", Опции);
OPI_ПолучениеДанныхТестов.Обработать(Результат, "Airtable", "СоздатьЗаписи", "Одиночная", ПараметрыФункции, Номер, Строковое);
КонецПроцедуры
Процедура Airtable_ПолучитьЗапись(ПараметрыФункции)
Токен = ПараметрыФункции["Airtable_Token"];
База = ПараметрыФункции["Airtable_Base"];
Таблица = ПараметрыФункции["Airtable_Table"];
Запись = ПараметрыФункции["Airtable_Record"];
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("base", База);
Опции.Вставить("table", Таблица);
Опции.Вставить("record", Запись);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("airtable", "ПолучитьЗапись", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "Airtable", "ПолучитьЗапись", , Запись);
КонецПроцедуры
Процедура Airtable_СоздатьКомментарий(ПараметрыФункции)
Токен = ПараметрыФункции["Airtable_Token"];
База = ПараметрыФункции["Airtable_Base"];
Таблица = ПараметрыФункции["Airtable_Table"];
Запись = ПараметрыФункции["Airtable_Record"];
Текст = "Тестовый комментарий";
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("base", База);
Опции.Вставить("table", Таблица);
Опции.Вставить("record", Запись);
Опции.Вставить("text", Текст);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("airtable", "СоздатьКомментарий", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "Airtable", "СоздатьКомментарий", , ПараметрыФункции, Текст);
КонецПроцедуры
Процедура Airtable_ИзменитьКомментарий(ПараметрыФункции)
Токен = ПараметрыФункции["Airtable_Token"];
База = ПараметрыФункции["Airtable_Base"];
Таблица = ПараметрыФункции["Airtable_Table"];
Запись = ПараметрыФункции["Airtable_Record"];
Комментарий = ПараметрыФункции["Airtable_Comment"];
Текст = "Тестовый комментарий (изм.)";
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("base", База);
Опции.Вставить("table", Таблица);
Опции.Вставить("record", Запись);
Опции.Вставить("comment", Комментарий);
Опции.Вставить("text", Текст);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("airtable", "ИзменитьКомментарий", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "Airtable", "ИзменитьКомментарий", , Текст);
КонецПроцедуры
Процедура Airtable_ПолучитьКомментарии(ПараметрыФункции)
Токен = ПараметрыФункции["Airtable_Token"];
База = ПараметрыФункции["Airtable_Base"];
Таблица = ПараметрыФункции["Airtable_Table"];
Запись = ПараметрыФункции["Airtable_Record"];
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("base", База);
Опции.Вставить("table", Таблица);
Опции.Вставить("record", Запись);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("airtable", "ПолучитьКомментарии", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "Airtable", "ПолучитьКомментарии");
КонецПроцедуры
Процедура Airtable_УдалитьКомментарий(ПараметрыФункции)
Токен = ПараметрыФункции["Airtable_Token"];
База = ПараметрыФункции["Airtable_Base"];
Таблица = ПараметрыФункции["Airtable_Table"];
Запись = ПараметрыФункции["Airtable_Record"];
Комментарий = ПараметрыФункции["Airtable_Comment"];
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("base", База);
Опции.Вставить("table", Таблица);
Опции.Вставить("record", Запись);
Опции.Вставить("comment", Комментарий);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("airtable", "УдалитьКомментарий", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "Airtable", "УдалитьКомментарий", , Комментарий);
КонецПроцедуры
Процедура Airtable_ПолучитьСписокЗаписей(ПараметрыФункции)
Токен = ПараметрыФункции["Airtable_Token"];
База = ПараметрыФункции["Airtable_Base"];
Таблица = ПараметрыФункции["Airtable_Table"];
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("base", База);
Опции.Вставить("table", Таблица);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("airtable", "ПолучитьСписокЗаписей", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "Airtable", "ПолучитьСписокЗаписей");
КонецПроцедуры
Процедура Airtable_УдалитьЗаписи(ПараметрыФункции)
Токен = ПараметрыФункции["Airtable_Token"];
База = ПараметрыФункции["Airtable_Base"];
Таблица = ПараметрыФункции["Airtable_Table"];
Запись = ПараметрыФункции["Airtable_Record"];
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("base", База);
Опции.Вставить("table", Таблица);
Опции.Вставить("records", Запись);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("airtable", "УдалитьЗаписи", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "Airtable", "УдалитьЗаписи");
КонецПроцедуры
#КонецОбласти // Airtable
#КонецОбласти // АтомарныеТесты
#КонецОбласти // СлужебныеПроцедурыИФункции
#Region Alternate
Procedure AT_CreateDatabase() Export
АТ_СоздатьБазу();
EndProcedure
Procedure AT_CreateTable() Export
АТ_СоздатьТаблицу();
EndProcedure
Procedure AT_CreateField() Export
АТ_СоздатьПоле();
EndProcedure
Procedure AT_CreateDeleteRecords() Export
АТ_СоздатьУдалитьЗаписи();
EndProcedure
#EndRegion
File diff suppressed because it is too large Load Diff
@@ -1,3 +1,5 @@
// OneScript: ./OInt/tests/Modules/OPItc_CDEK.os
// MIT License
// Copyright (c) 2023-2026 Anton Tsitavets
@@ -9,7 +11,7 @@
// 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
// 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
@@ -22,6 +24,8 @@
// https://github.com/Bayselonarrend/OpenIntegrations
// Набор тестов для YAxUnit
// BSLLS:Typo-off
// BSLLS:LatinAndCyrillicSymbolInWord-off
// BSLLS:IncorrectLineBreak-off
@@ -63,6 +67,853 @@
//@skip-check missing-temporary-file-deletion
//@skip-check module-unused-method
// #Использовать oint
// #Использовать asserts
// #Использовать "internal"
//#Использовать "../../tools/main"
//#Использовать "../../tools/http"
//#Использовать "../../api"
//#Использовать asserts
//#Использовать "internal"
// Для YaxUnit
Процедура ИсполняемыеСценарии() Экспорт
OPI_ПолучениеДанныхТестов.СформироватьТестыЯкс("CDEK");
КонецПроцедуры
// Для Asserts
Функция ПолучитьСписокТестов(ЮнитТестирование) Экспорт
Возврат OPI_ПолучениеДанныхТестов.СформироватьТестыАссертс("CDEK");
КонецФункции
#Область СлужебныйПрограммныйИнтерфейс
#Область ЗапускаемыеТесты
#Область CDEK
Процедура СдэкАПИ_ОбщиеМетоды() Экспорт
ПараметрыТеста = Новый Структура;
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("CDEK_Account" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("CDEK_Password", ПараметрыТеста);
CDEK_ПолучитьТокен(ПараметрыТеста);
CDEK_ПолучитьЧекиНаДату(ПараметрыТеста);
CDEK_ПолучитьРеестрыПлатежейНаДату(ПараметрыТеста);
CDEK_ПолучитьПереводыПлатежейНаДату(ПараметрыТеста);
CDEK_ПолучитьОписаниеФильтраОфисов(ПараметрыТеста);
CDEK_ПолучитьСписокОфисов(ПараметрыТеста);
CDEK_ПолучитьСписокРегионов(ПараметрыТеста);
КонецПроцедуры
Процедура СдэкАПИ_РаботаСЗаказами() Экспорт
ПараметрыТеста = Новый Структура;
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("CDEK_Token", ПараметрыТеста);
CDEK_ПолучитьОписаниеЗаказа(ПараметрыТеста);
CDEK_СоздатьЗаказ(ПараметрыТеста);
OPI_Инструменты.Пауза(25);
CDEK_ПолучитьЗаказ(ПараметрыТеста);
CDEK_ПолучитьЗаказПоНомеру(ПараметрыТеста);
CDEK_СформироватьКвитанцию(ПараметрыТеста);
CDEK_СформироватьШтрихкод(ПараметрыТеста);
CDEK_СоздатьПреалерт(ПараметрыТеста);
OPI_Инструменты.Пауза(25);
CDEK_ПолучитьКвитанцию(ПараметрыТеста);
CDEK_ПолучитьШтрихкод(ПараметрыТеста);
CDEK_ПолучитьПреалерт(ПараметрыТеста);
CDEK_ПолучитьСтатусПаспортныхДанных(ПараметрыТеста);
CDEK_ПолучитьЧекЗаказа(ПараметрыТеста);
CDEK_ИзменитьЗаказ(ПараметрыТеста);
CDEK_ОформитьКлиентскийВозврат(ПараметрыТеста);
CDEK_СоздатьОтказ(ПараметрыТеста);
CDEK_УдалитьЗаказ(ПараметрыТеста);
КонецПроцедуры
Процедура СдэкАПИ_РаботаСЗаявкамиНаВызовКурьера() Экспорт
ПараметрыТеста = Новый Структура;
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("CDEK_Token", ПараметрыТеста);
CDEK_СоздатьЗаказ(ПараметрыТеста);
OPI_Инструменты.Пауза(25);
CDEK_ПолучитьОписаниеЗаявкиКурьера(ПараметрыТеста);
CDEK_СоздатьЗаявкуНаВызовКурьера(ПараметрыТеста);
CDEK_ПолучитьЗаявкуНаВызовКурьера(ПараметрыТеста);
CDEK_УдалитьЗаявкуНаВызовКурьера(ПараметрыТеста);
CDEK_ПолучитьОписаниеДоговоренности(ПараметрыТеста);
CDEK_ПолучитьДоступныеИнтервалыДоставки(ПараметрыТеста);
CDEK_ЗафиксироватьДоговоренностьОДоставке(ПараметрыТеста);
OPI_Инструменты.Пауза(25);
CDEK_ПолучитьДоговоренностьОДоставке(ПараметрыТеста);
CDEK_УдалитьЗаказ(ПараметрыТеста);
КонецПроцедуры
#КонецОбласти // CDEK
#КонецОбласти // ЗапускаемыеТесты
#КонецОбласти // СлужебныйПрограммныйИнтерфейс
#Область СлужебныеПроцедурыИФункции
#Область АтомарныеТесты
#Область CDEK
Процедура CDEK_ПолучитьТокен(ПараметрыФункции)
Аккаунт = ПараметрыФункции["CDEK_Account"];
Пароль = ПараметрыФункции["CDEK_Password"];
Опции = Новый Структура;
Опции.Вставить("account", Аккаунт);
Опции.Вставить("pass", Пароль);
Опции.Вставить("testapi", Истина);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "ПолучитьТокен", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "CDEK", "ПолучитьТокен", , ПараметрыФункции);
КонецПроцедуры
Процедура CDEK_ПолучитьОписаниеЗаказа(ПараметрыФункции)
Опции = Новый Структура;
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "ПолучитьОписаниеЗаказа", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "CDEK", "ПолучитьОписаниеЗаказа");
Опции = Новый Структура;
Опции.Вставить("empty", Истина);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "ПолучитьОписаниеЗаказа", Опции);
OPI_ПолучениеДанныхТестов.Обработать(Результат, "CDEK", "ПолучитьОписаниеЗаказа", "Пустая");
КонецПроцедуры
Процедура CDEK_СоздатьЗаказ(ПараметрыФункции)
Токен = ПараметрыФункции["CDEK_Token"];
ОписаниеЗаказа = Новый Структура;
ЛокацияОтправления = Новый Структура;
ЛокацияОтправления.Вставить("code" , "44");
ЛокацияОтправления.Вставить("city" , "Москва");
ЛокацияОтправления.Вставить("address", "пр. Ленинградский, д.4");
ЛокацияНазначения = Новый Структура;
ЛокацияНазначения.Вставить("code" , "270");
ЛокацияНазначения.Вставить("city" , "Новосибирск");
ЛокацияНазначения.Вставить("address", "ул. Блюхера, 32");
Получатель = Новый Структура;
Телефоны = Новый Массив;
Телефоны.Добавить(Новый Структура("number", "+79134637228"));
Получатель.Вставить("phones", Телефоны);
Получатель.Вставить("name" , "Иванов Иван");
Отправитель = Новый Структура("name", "Петров Петр");
Услуги = Новый Массив;
Услуга = Новый Структура;
Услуга.Вставить("code" , "SECURE_PACKAGE_A2");
Услуга.Вставить("parameter", 10);
Услуги.Добавить(Услуга);
Пакеты = Новый Массив;
Пакет = Новый Структура;
Позиции = Новый Массив;
Позиция = Новый Структура;
Оплата = Новый Структура;
Оплата.Вставить("value", 3000);
Позиция.Вставить("payment" , Оплата);
Позиция.Вставить("ware_key", "00055");
Позиция.Вставить("name" , "Товар");
Позиция.Вставить("cost" , 300);
Позиция.Вставить("amount" , 2);
Позиция.Вставить("weight" , 700);
Позиция.Вставить("url" , "www.item.ru");
Позиции.Добавить(Позиция);
Пакет.Вставить("items" , Позиции);
Пакет.Вставить("number" , "bar-001");
Пакет.Вставить("comment", "Упаковка");
Пакет.Вставить("height" , 10);
Пакет.Вставить("length" , 10);
Пакет.Вставить("weight" , "4000");
Пакет.Вставить("width" , 10);
Пакеты.Добавить(Пакет);
ОписаниеЗаказа.Вставить("from_location", ЛокацияОтправления);
ОписаниеЗаказа.Вставить("to_location" , ЛокацияНазначения);
ОписаниеЗаказа.Вставить("packages" , Пакеты);
ОписаниеЗаказа.Вставить("recipient" , Получатель);
ОписаниеЗаказа.Вставить("sender" , Отправитель);
ОписаниеЗаказа.Вставить("services" , Услуги);
ОписаниеЗаказа.Вставить("number" , Строка(Новый УникальныйИдентификатор));
ОписаниеЗаказа.Вставить("comment" , "Новый заказ");
ОписаниеЗаказа.Вставить("tariff_code", 139);
ОписаниеЗаказа.Вставить("delivery_recipient_cost" , Новый Структура("value" , 50));
ОписаниеЗаказа.Вставить("delivery_recipient_cost_adv", Новый Структура("sum,threshold", 3000, 200));
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("order", ОписаниеЗаказа);
Опции.Вставить("ostore", Истина);
Опции.Вставить("testapi", Истина);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "СоздатьЗаказ", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "CDEK", "СоздатьЗаказ", , ПараметрыФункции);
КонецПроцедуры
Процедура CDEK_ПолучитьЗаказ(ПараметрыФункции)
Токен = ПараметрыФункции["CDEK_Token"];
UUID = ПараметрыФункции["CDEK_OrderUUID"];
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("uuid", UUID);
Опции.Вставить("testapi", Истина);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "ПолучитьЗаказ", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "CDEK", "ПолучитьЗаказ", , ПараметрыФункции);
КонецПроцедуры
Процедура CDEK_ПолучитьЗаказПоНомеру(ПараметрыФункции)
Токен = ПараметрыФункции["CDEK_Token"];
НомерЗаказа = ПараметрыФункции["CDEK_OrderIMN"];
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("number", НомерЗаказа);
Опции.Вставить("internal", Истина);
Опции.Вставить("testapi", Истина);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "ПолучитьЗаказПоНомеру", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "CDEK", "ПолучитьЗаказПоНомеру");
КонецПроцедуры
Процедура CDEK_ИзменитьЗаказ(ПараметрыФункции)
Токен = ПараметрыФункции["CDEK_Token"];
UUID = ПараметрыФункции["CDEK_OrderUUID"];
ОписаниеЗаказа = Новый Структура("comment", "Новый комментарий");
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("uuid", UUID);
Опции.Вставить("order", ОписаниеЗаказа);
Опции.Вставить("testapi", Истина);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "ИзменитьЗаказ", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "CDEK", "ИзменитьЗаказ");
КонецПроцедуры
Процедура CDEK_УдалитьЗаказ(ПараметрыФункции)
Токен = ПараметрыФункции["CDEK_Token"];
UUID = ПараметрыФункции["CDEK_OrderUUID"];
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("uuid", UUID);
Опции.Вставить("testapi", Истина);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "УдалитьЗаказ", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "CDEK", "УдалитьЗаказ");
КонецПроцедуры
Процедура CDEK_ОформитьКлиентскийВозврат(ПараметрыФункции)
Токен = ПараметрыФункции["CDEK_Token"];
UUID = ПараметрыФункции["CDEK_OrderUUID"];
Тариф = 139;
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("uuid", UUID);
Опции.Вставить("tariff", Тариф);
Опции.Вставить("testapi", Истина);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "ОформитьКлиентскийВозврат", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "CDEK", "ОформитьКлиентскийВозврат");
КонецПроцедуры
Процедура CDEK_СоздатьОтказ(ПараметрыФункции)
Токен = ПараметрыФункции["CDEK_Token"];
UUID = ПараметрыФункции["CDEK_OrderUUID"];
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("uuid", UUID);
Опции.Вставить("testapi", Истина);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "СоздатьОтказ", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "CDEK", "СоздатьОтказ");
КонецПроцедуры
Процедура CDEK_ПолучитьОписаниеЗаявкиКурьера(ПараметрыФункции)
Опции = Новый Структура;
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "ПолучитьОписаниеЗаявкиКурьера", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "CDEK", "ПолучитьОписаниеЗаявкиКурьера");
Опции = Новый Структура;
Опции.Вставить("empty", Истина);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "ПолучитьОписаниеЗаявкиКурьера", Опции);
OPI_ПолучениеДанныхТестов.Обработать(Результат, "CDEK", "ПолучитьОписаниеЗаявкиКурьера", "Пустая");
КонецПроцедуры
Процедура CDEK_СоздатьЗаявкуНаВызовКурьера(ПараметрыФункции)
Токен = ПараметрыФункции["CDEK_Token"];
ТекущаяДата = OPI_Инструменты.ПолучитьТекущуюДату();
ОписаниеЗаявки = Новый Структура;
ОписаниеЗаявки.Вставить("intake_date" , Формат(ТекущаяДата + 60 * 60 * 24, "ДФ=yyyy-MM-dd"));
ОписаниеЗаявки.Вставить("intake_time_from", "10:00");
ОписаниеЗаявки.Вставить("intake_time_to" , "17:00");
ОписаниеЗаявки.Вставить("name" , "Консолидированный груз");
ОписаниеЗаявки.Вставить("weight" , 1000);
ОписаниеЗаявки.Вставить("length" , 10);
ОписаниеЗаявки.Вставить("width" , 10);
ОписаниеЗаявки.Вставить("height" , 10);
ОписаниеЗаявки.Вставить("comment" , "Комментарий курьеру");
ОписаниеЗаявки.Вставить("need_call" , Ложь);
Отправитель = Новый Структура;
Отправитель.Вставить("company", "Компания");
Отправитель.Вставить("name" , "Иванов Иван");
Телефоны = Новый Массив;
Телефон = Новый Структура("number", "+79589441654");
Телефоны.Добавить(Телефон);
Отправитель.Вставить("phones", Телефоны);
ОписаниеЗаявки.Вставить("sender", Отправитель);
ТочкаОтправления = Новый Структура;
ТочкаОтправления.Вставить("code" , "44");
ТочкаОтправления.Вставить("fias_guid" , "0c5b2444-70a0-4932-980c-b4dc0d3f02b5");
ТочкаОтправления.Вставить("postal_code" , "109004");
ТочкаОтправления.Вставить("longitude" , 37.6204);
ТочкаОтправления.Вставить("latitude" , 55.754);
ТочкаОтправления.Вставить("country_code", "RU");
ТочкаОтправления.Вставить("region" , "Москва");
ТочкаОтправления.Вставить("sub_region" , "Москва");
ТочкаОтправления.Вставить("city" , "Москва");
ТочкаОтправления.Вставить("kladr_code" , "7700000000000");
ТочкаОтправления.Вставить("address" , "ул. Блюхера, 32");
ОписаниеЗаявки.Вставить("from_location", ТочкаОтправления);
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("intake", ОписаниеЗаявки);
Опции.Вставить("testapi", Истина);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "СоздатьЗаявкуНаВызовКурьера", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "CDEK", "СоздатьЗаявкуНаВызовКурьера", , ПараметрыФункции);
КонецПроцедуры
Процедура CDEK_ПолучитьЗаявкуНаВызовКурьера(ПараметрыФункции)
Токен = ПараметрыФункции["CDEK_Token"];
UUID = ПараметрыФункции["CDEK_IntakeUUID"];
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("uuid", UUID);
Опции.Вставить("testapi", Истина);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "ПолучитьЗаявкуНаВызовКурьера", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "CDEK", "ПолучитьЗаявкуНаВызовКурьера");
КонецПроцедуры
Процедура CDEK_УдалитьЗаявкуНаВызовКурьера(ПараметрыФункции)
Токен = ПараметрыФункции["CDEK_Token"];
UUID = ПараметрыФункции["CDEK_IntakeUUID"];
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("uuid", UUID);
Опции.Вставить("testapi", Истина);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "УдалитьЗаявкуНаВызовКурьера", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "CDEK", "УдалитьЗаявкуНаВызовКурьера");
КонецПроцедуры
Процедура CDEK_СформироватьКвитанцию(ПараметрыФункции)
Токен = ПараметрыФункции["CDEK_Token"];
UUID = ПараметрыФункции["CDEK_OrderUUID"];
Тип = "tpl_russia";
Копий = 1;
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("uuids", UUID);
Опции.Вставить("type", Тип);
Опции.Вставить("count", Копий);
Опции.Вставить("testapi", Истина);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "СформироватьКвитанцию", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "CDEK", "СформироватьКвитанцию", , ПараметрыФункции);
КонецПроцедуры
Процедура CDEK_ПолучитьКвитанцию(ПараметрыФункции)
Токен = ПараметрыФункции["CDEK_Token"];
UUID = ПараметрыФункции["CDEK_PrintUUID"];
Результат = OPI_CDEK.ПолучитьКвитанцию(Токен, UUID, , Истина); // Ответ сервера с ссылкой
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "CDEK", "ПолучитьКвитанцию");
КонецПроцедуры
Процедура CDEK_СформироватьШтрихкод(ПараметрыФункции)
Токен = ПараметрыФункции["CDEK_Token"];
UUID = ПараметрыФункции["CDEK_OrderUUID"];
Формат = "A5";
Копий = 1;
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("uuids", UUID);
Опции.Вставить("count", Копий);
Опции.Вставить("format", Формат);
Опции.Вставить("testapi", Истина);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "СформироватьШтрихкод", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "CDEK", "СформироватьШтрихкод", , ПараметрыФункции);
КонецПроцедуры
Процедура CDEK_ПолучитьШтрихкод(ПараметрыФункции)
Токен = ПараметрыФункции["CDEK_Token"];
UUID = ПараметрыФункции["CDEK_BarcodeUUID"];
Результат = OPI_CDEK.ПолучитьШтрихкод(Токен, UUID, , Истина); // Ответ сервера с ссылкой
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "CDEK", "ПолучитьШтрихкод");
КонецПроцедуры
Процедура CDEK_ПолучитьДоступныеИнтервалыДоставки(ПараметрыФункции)
Токен = ПараметрыФункции["CDEK_Token"];
UUID = ПараметрыФункции["CDEK_OrderUUID"];
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("uuid", UUID);
Опции.Вставить("testapi", Истина);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "ПолучитьДоступныеИнтервалыДоставки", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "CDEK", "ПолучитьДоступныеИнтервалыДоставки");
КонецПроцедуры
Процедура CDEK_ПолучитьОписаниеДоговоренности(ПараметрыФункции)
Опции = Новый Структура;
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "ПолучитьОписаниеДоговоренности", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "CDEK", "ПолучитьОписаниеДоговоренности");
Опции = Новый Структура;
Опции.Вставить("empty", Истина);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "ПолучитьОписаниеДоговоренности", Опции);
OPI_ПолучениеДанныхТестов.Обработать(Результат, "CDEK", "ПолучитьОписаниеДоговоренности", "Пустая");
КонецПроцедуры
Процедура CDEK_ЗафиксироватьДоговоренностьОДоставке(ПараметрыФункции)
Токен = ПараметрыФункции["CDEK_Token"];
UUIDЗаказа = ПараметрыФункции["CDEK_OrderUUID"];
Сутки = 60 * 60 * 24;
ТекущаяДата = НачалоДня(OPI_Инструменты.ПолучитьТекущуюДату());
ДатаДоставки = ТекущаяДата + Сутки * 14;
Пока ДеньНедели(ДатаДоставки) > 5 Цикл
ДатаДоставки = ДатаДоставки + Сутки;
КонецЦикла;
Договоренность = Новый Структура;
Договоренность.Вставить("cdek_number", "1106207236");
Договоренность.Вставить("order_uuid" , UUIDЗаказа);
Договоренность.Вставить("date" , Формат(ДатаДоставки, "ДФ=yyyy-MM-dd"));
Договоренность.Вставить("time_from" , "10:00");
Договоренность.Вставить("time_to" , "17:00");
Договоренность.Вставить("comment" , "Офис группы компаний");
МестоДоставки = Новый Структура;
МестоДоставки.Вставить("code" , "270");
МестоДоставки.Вставить("fias_guid" , "0c5b2444-70a0-4932-980c-b4dc0d3f02b5");
МестоДоставки.Вставить("postal_code" , "109004");
МестоДоставки.Вставить("longitude" , 37.6204);
МестоДоставки.Вставить("latitude" , 55.754);
МестоДоставки.Вставить("country_code", "RU");
МестоДоставки.Вставить("region" , "Новосибирск");
МестоДоставки.Вставить("sub_region" , "Новосибирск");
МестоДоставки.Вставить("city" , "Новосибирск");
МестоДоставки.Вставить("kladr_code" , "7700000000000");
МестоДоставки.Вставить("address" , "ул. Блюхера, 33");
Договоренность.Вставить("to_location", МестоДоставки);
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("appt", Договоренность);
Опции.Вставить("testapi", Истина);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "ЗафиксироватьДоговоренностьОДоставке", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "CDEK", "ЗафиксироватьДоговоренностьОДоставке", , ПараметрыФункции);
КонецПроцедуры
Процедура CDEK_ПолучитьДоговоренностьОДоставке(ПараметрыФункции)
Токен = ПараметрыФункции["CDEK_Token"];
UUID = ПараметрыФункции["CDEK_ApptUUID"];
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("uuid", UUID);
Опции.Вставить("testapi", Истина);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "ПолучитьДоговоренностьОДоставке", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "CDEK", "ПолучитьДоговоренностьОДоставке");
КонецПроцедуры
Процедура CDEK_СоздатьПреалерт(ПараметрыФункции)
Токен = ПараметрыФункции["CDEK_Token"];
UUID = ПараметрыФункции["CDEK_OrderUUID"];
ПВЗ = "NSK27";
ДатаПередачи = OPI_Инструменты.ПолучитьТекущуюДату() + 60 * 60 * 24;
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("uuids", UUID);
Опции.Вставить("date", ДатаПередачи);
Опции.Вставить("point", ПВЗ);
Опции.Вставить("testapi", Истина);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "СоздатьПреалерт", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "CDEK", "СоздатьПреалерт", , ПараметрыФункции);
КонецПроцедуры
Процедура CDEK_ПолучитьПреалерт(ПараметрыФункции)
Токен = ПараметрыФункции["CDEK_Token"];
UUID = ПараметрыФункции["CDEK_PrealertUUID"];
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("uuid", UUID);
Опции.Вставить("testapi", Истина);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "ПолучитьПреалерт", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "CDEK", "ПолучитьПреалерт");
КонецПроцедуры
Процедура CDEK_ПолучитьСтатусПаспортныхДанных(ПараметрыФункции)
Токен = ПараметрыФункции["CDEK_Token"];
UUID = ПараметрыФункции["CDEK_OrderUUID"];
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("uuid", UUID);
Опции.Вставить("testapi", Истина);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "ПолучитьСтатусПаспортныхДанных", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "CDEK", "ПолучитьСтатусПаспортныхДанных");
КонецПроцедуры
Процедура CDEK_ПолучитьЧекЗаказа(ПараметрыФункции)
Токен = ПараметрыФункции["CDEK_Token"];
UUID = ПараметрыФункции["CDEK_OrderUUID"];
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("uuid", UUID);
Опции.Вставить("testapi", Истина);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "ПолучитьЧекЗаказа", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "CDEK", "ПолучитьЧекЗаказа");
КонецПроцедуры
Процедура CDEK_ПолучитьЧекиНаДату(ПараметрыФункции)
Токен = ПараметрыФункции["CDEK_Token"];
ДатаПолучения = OPI_Инструменты.ПолучитьТекущуюДату();
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("date", ДатаПолучения);
Опции.Вставить("testapi", Истина);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "ПолучитьЧекиНаДату", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "CDEK", "ПолучитьЧекиНаДату");
КонецПроцедуры
Процедура CDEK_ПолучитьРеестрыПлатежейНаДату(ПараметрыФункции)
Токен = ПараметрыФункции["CDEK_Token"];
ДатаПолучения = OPI_Инструменты.ПолучитьТекущуюДату();
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("date", ДатаПолучения);
Опции.Вставить("testapi", Истина);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "ПолучитьРеестрыПлатежейНаДату", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "CDEK", "ПолучитьРеестрыПлатежейНаДату");
КонецПроцедуры
Процедура CDEK_ПолучитьПереводыПлатежейНаДату(ПараметрыФункции)
Токен = ПараметрыФункции["CDEK_Token"];
ДатаПолучения = OPI_Инструменты.ПолучитьТекущуюДату();
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("date", ДатаПолучения);
Опции.Вставить("testapi", Истина);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "ПолучитьПереводыПлатежейНаДату", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "CDEK", "ПолучитьПереводыПлатежейНаДату");
КонецПроцедуры
Процедура CDEK_ПолучитьОписаниеФильтраОфисов(ПараметрыФункции)
Опции = Новый Структура;
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "ПолучитьОписаниеФильтраОфисов", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "CDEK", "ПолучитьОписаниеФильтраОфисов");
Опции = Новый Структура;
Опции.Вставить("empty", Истина);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "ПолучитьОписаниеФильтраОфисов", Опции);
OPI_ПолучениеДанныхТестов.Обработать(Результат, "CDEK", "ПолучитьОписаниеФильтраОфисов", "Пустая");
КонецПроцедуры
Процедура CDEK_ПолучитьСписокОфисов(ПараметрыФункции)
Токен = ПараметрыФункции["CDEK_Token"];
Фильтр = Новый Структура;
Фильтр.Вставить("weight_max" , 50);
Фильтр.Вставить("city_code" , 270);
Фильтр.Вставить("allowed_cod", Истина);
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("filter", Фильтр);
Опции.Вставить("testapi", Истина);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "ПолучитьСписокОфисов", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "CDEK", "ПолучитьСписокОфисов");
КонецПроцедуры
Процедура CDEK_ПолучитьСписокРегионов(ПараметрыФункции)
Токен = ПараметрыФункции["CDEK_Token"];
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("testapi", Истина);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "ПолучитьСписокРегионов", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "CDEK", "ПолучитьСписокРегионов");
КонецПроцедуры
#КонецОбласти // CDEK
#КонецОбласти // АтомарныеТесты
#КонецОбласти // СлужебныеПроцедурыИФункции
#Region Alternate
Procedure CdekAPI_CommonMethods() Export
СдэкАПИ_ОбщиеМетоды();
EndProcedure
Procedure CDEKAPI_OrdersManagement() Export
СдэкАПИ_РаботаСЗаказами();
EndProcedure
Procedure CdekAPI_CourierInvitationsManagement() Export
СдэкАПИ_РаботаСЗаявкамиНаВызовКурьера();
EndProcedure
#EndRegion
File diff suppressed because it is too large Load Diff
@@ -1,3 +1,5 @@
// OneScript: ./OInt/tests/Modules/OPItc_Dropbox.os
// MIT License
// Copyright (c) 2023-2026 Anton Tsitavets
@@ -9,7 +11,7 @@
// 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
// 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
@@ -22,6 +24,8 @@
// https://github.com/Bayselonarrend/OpenIntegrations
// Набор тестов для YAxUnit
// BSLLS:Typo-off
// BSLLS:LatinAndCyrillicSymbolInWord-off
// BSLLS:IncorrectLineBreak-off
@@ -63,6 +67,792 @@
//@skip-check missing-temporary-file-deletion
//@skip-check module-unused-method
// #Использовать oint
// #Использовать asserts
// #Использовать "internal"
//#Использовать "../../tools/main"
//#Использовать "../../tools/http"
//#Использовать "../../api"
//#Использовать asserts
//#Использовать "internal"
// Для YaxUnit
Процедура ИсполняемыеСценарии() Экспорт
OPI_ПолучениеДанныхТестов.СформироватьТестыЯкс("Dropbox");
КонецПроцедуры
// Для Asserts
Функция ПолучитьСписокТестов(ЮнитТестирование) Экспорт
Возврат OPI_ПолучениеДанныхТестов.СформироватьТестыАссертс("Dropbox");
КонецФункции
#Область СлужебныйПрограммныйИнтерфейс
#Область ЗапускаемыеТесты
#Область Dropbox
Процедура ДропБокс_ПолучитьОбновитьТокен() Экспорт
ПараметрыТеста = Новый Структура;
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Dropbox_Appkey" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Dropbox_Appsecret", ПараметрыТеста);
Dropbox_ПолучитьСсылкуАвторизации(ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Dropbox_Code", ПараметрыТеста);
Dropbox_ПолучитьТокен(ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Dropbox_Refresh", ПараметрыТеста);
Dropbox_ОбновитьТокен(ПараметрыТеста);
КонецПроцедуры
Процедура ДропБокс_ЗагрузитьФайл() Экспорт
ПараметрыТеста = Новый Структура;
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Dropbox_Token", ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Big" , ПараметрыТеста);
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_ПолучитьСтатусАсинхронногоИзменения(ПараметрыТеста);
Dropbox_ОтменитьПубликациюФайла(ПараметрыТеста);
КонецПроцедуры
#КонецОбласти // Dropbox
#КонецОбласти // ЗапускаемыеТесты
#КонецОбласти // СлужебныйПрограммныйИнтерфейс
#Область СлужебныеПроцедурыИФункции
#Область АтомарныеТесты
#Область Dropbox
Процедура Dropbox_ПолучитьСсылкуАвторизации(ПараметрыФункции)
КлючПриложения = ПараметрыФункции["Dropbox_Appkey"];
Опции = Новый Структура;
Опции.Вставить("appkey", КлючПриложения);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("dropbox", "ПолучитьСсылкуАвторизации", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "Dropbox", "ПолучитьСсылкуАвторизации");
КонецПроцедуры
Процедура Dropbox_ПолучитьТокен(ПараметрыФункции)
КлючПриложения = ПараметрыФункции["Dropbox_Appkey"];
СекретПриложения = ПараметрыФункции["Dropbox_Appsecret"];
Код = ПараметрыФункции["Dropbox_Code"];
Опции = Новый Структура;
Опции.Вставить("appkey", КлючПриложения);
Опции.Вставить("appsecret", СекретПриложения);
Опции.Вставить("code", Код);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("dropbox", "ПолучитьТокен", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "Dropbox", "ПолучитьТокен");
КонецПроцедуры
Процедура Dropbox_ОбновитьТокен(ПараметрыФункции)
КлючПриложения = ПараметрыФункции["Dropbox_Appkey"];
СекретПриложения = ПараметрыФункции["Dropbox_Appsecret"];
РефрешТокен = ПараметрыФункции["Dropbox_Refresh"];
Опции = Новый Структура;
Опции.Вставить("appkey", КлючПриложения);
Опции.Вставить("appsecret", СекретПриложения);
Опции.Вставить("refresh", РефрешТокен);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("dropbox", "ОбновитьТокен", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "Dropbox", "ОбновитьТокен");
КонецПроцедуры
Процедура Dropbox_ПолучитьИнформациюОбОбъекте(ПараметрыФункции)
Путь = "/New/pic.png";
Токен = ПараметрыФункции["Dropbox_Token"];
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("path", Путь);
Опции.Вставить("detail", Истина);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("dropbox", "ПолучитьИнформациюОбОбъекте", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "Dropbox", "ПолучитьИнформациюОбОбъекте", , Путь);
КонецПроцедуры
Процедура Dropbox_ПолучитьПревью(ПараметрыФункции)
Токен = ПараметрыФункции["Dropbox_Token"];
Путь = "/New/mydoc.docx";
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("path", Путь);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("dropbox", "ПолучитьПревью", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "Dropbox", "ПолучитьПревью");
КонецПроцедуры
Процедура Dropbox_ЗагрузитьФайл(ПараметрыФункции)
Путь = "/New/pic.png";
Токен = ПараметрыФункции["Dropbox_Token"];
Картинка = ПараметрыФункции["Picture"];
КартинкаПуть = ПолучитьИмяВременногоФайла("png");
КопироватьФайл(Картинка, КартинкаПуть);
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("file", КартинкаПуть);
Опции.Вставить("path", Путь);
Опции.Вставить("overwrite", Истина);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("dropbox", "ЗагрузитьФайл", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "Dropbox", "ЗагрузитьФайл", , Путь);
OPI_Инструменты.УдалитьФайлВПопытке(КартинкаПуть, "Не удалось удалить временный файл после теста!");
Если Не OPI_Инструменты.ЭтоOneScript() И ПараметрыФункции.Свойство("Big") Тогда
БольшойФайл = ПараметрыФункции["Big"];
Путь = "/giant.tmp";
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("file", БольшойФайл);
Опции.Вставить("path", Путь);
Опции.Вставить("overwrite", Истина);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("dropbox", "ЗагрузитьФайл", Опции);
OPI_ПолучениеДанныхТестов.Обработать(Результат, "Dropbox", "ЗагрузитьФайл", "Большой", Путь);
КонецЕсли;
КонецПроцедуры
Процедура Dropbox_ЗагрузитьФайлПоURL(ПараметрыФункции)
Путь = "/New/url_doc.docx";
Токен = ПараметрыФункции["Dropbox_Token"];
URL = ПараметрыФункции["Document"];
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("url", URL);
Опции.Вставить("path", Путь);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("dropbox", "ЗагрузитьФайлПоURL", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "Dropbox", "ЗагрузитьФайлПоURL", , ПараметрыФункции);
КонецПроцедуры
Процедура Dropbox_ПолучитьСтатусЗагрузкиПоURL(ПараметрыФункции)
Токен = ПараметрыФункции["Dropbox_Token"];
ИДРаботы = ПараметрыФункции["Dropbox_Job"];
Статус = "in_progress";
Пока Статус = "in_progress" Цикл
Результат = OPI_Dropbox.ПолучитьСтатусЗагрузкиПоURL(Токен, ИДРаботы);
Статус = Результат[".tag"];
OPI_Инструменты.Пауза(5);
OPI_ПолучениеДанныхТестов.Обработать(Результат, "Dropbox", "ПолучитьСтатусЗагрузкиПоURL", "Прогресс"); // SKIP
КонецЦикла;
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "Dropbox", "ПолучитьСтатусЗагрузкиПоURL");
Токен = ПараметрыФункции["Dropbox_Token"];
Путь = "/New/url_doc.docx";
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("path", Путь);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("dropbox", "УдалитьОбъект", Опции);
OPI_ПолучениеДанныхТестов.Обработать(Результат, "Dropbox", "ПолучитьСтатусЗагрузкиПоURL", "Удаление", Путь);
КонецПроцедуры
Процедура Dropbox_УдалитьОбъект(ПараметрыФункции)
Путь = "/New/pic.png";
Токен = ПараметрыФункции["Dropbox_Token"];
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("path", Путь);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("dropbox", "УдалитьОбъект", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "Dropbox", "УдалитьОбъект", , Путь);
КонецПроцедуры
Процедура Dropbox_КопироватьОбъект(ПараметрыФункции)
Оригинал = "/New/pic.png";
Копия = "/New/pic_copy.png";
Токен = ПараметрыФункции["Dropbox_Token"];
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("from", Оригинал);
Опции.Вставить("to", Копия);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("dropbox", "КопироватьОбъект", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "Dropbox", "КопироватьОбъект", , Копия);
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("path", Копия);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("dropbox", "УдалитьОбъект", Опции);
OPI_ПолучениеДанныхТестов.Обработать(Результат, "Dropbox", "КопироватьОбъект", "Удаление", Копия);
КонецПроцедуры
Процедура Dropbox_ПереместитьОбъект(ПараметрыФункции)
ОригинальныйПуть = "/New/pic.png";
ЦелевойПуть = "/pic.png";
Токен = ПараметрыФункции["Dropbox_Token"];
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("from", ОригинальныйПуть);
Опции.Вставить("to", ЦелевойПуть);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("dropbox", "ПереместитьОбъект", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "Dropbox", "ПереместитьОбъект", , ЦелевойПуть);
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("from", ЦелевойПуть);
Опции.Вставить("to", ОригинальныйПуть);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("dropbox", "ПереместитьОбъект", Опции);
OPI_ПолучениеДанныхТестов.Обработать(Результат, "Dropbox", "ПереместитьОбъект", "Удаление", ОригинальныйПуть);
КонецПроцедуры
Процедура Dropbox_СоздатьПапку(ПараметрыФункции)
Токен = ПараметрыФункции["Dropbox_Token"];
Путь = "/Новый каталог";
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("path", Путь);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("dropbox", "СоздатьПапку", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "Dropbox", "СоздатьПапку", , Путь);
OPI_Dropbox.УдалитьОбъект(Токен, Путь);
КонецПроцедуры
Процедура Dropbox_СкачатьФайл(ПараметрыФункции)
Токен = ПараметрыФункции["Dropbox_Token"];
Путь = "/New/pic.png";
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("path", Путь);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("dropbox", "СкачатьФайл", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "Dropbox", "СкачатьФайл");
КонецПроцедуры
Процедура Dropbox_СкачатьПапку(ПараметрыФункции)
Токен = ПараметрыФункции["Dropbox_Token"];
Путь = "/New";
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("path", Путь);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("dropbox", "СкачатьПапку", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "Dropbox", "СкачатьПапку");
КонецПроцедуры
Процедура Dropbox_ПолучитьСписокФайловПапки(ПараметрыФункции)
Путь = "/New";
Токен = ПараметрыФункции["Dropbox_Token"];
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("path", Путь);
Опции.Вставить("detail", Истина);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("dropbox", "ПолучитьСписокФайловПапки", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "Dropbox", "ПолучитьСписокФайловПапки");
КонецПроцедуры
Процедура Dropbox_ПолучитьСписокВерсийОбъекта(ПараметрыФункции)
Токен = ПараметрыФункции["Dropbox_Token"];
Путь = "/New/pic.png";
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("path", Путь);
Опции.Вставить("amount", 1);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("dropbox", "ПолучитьСписокВерсийОбъекта", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "Dropbox", "ПолучитьСписокВерсийОбъекта", , ПараметрыФункции);
КонецПроцедуры
Процедура Dropbox_ВосстановитьОбъектКВерсии(ПараметрыФункции)
Версия = ПараметрыФункции["Dropbox_FileRevision"];
Токен = ПараметрыФункции["Dropbox_Token"];
Путь = "/New/pic.png";
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("path", Путь);
Опции.Вставить("rev", Версия);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("dropbox", "ВосстановитьОбъектКВерсии", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "Dropbox", "ВосстановитьОбъектКВерсии", , Путь);
КонецПроцедуры
Процедура Dropbox_ПолучитьСписокТегов(ПараметрыФункции)
Токен = ПараметрыФункции["Dropbox_Token"];
МассивПутей = Новый Массив;
МассивПутей.Добавить("/New/Dogs.mp3");
МассивПутей.Добавить("/New/mydoc.docx");
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("paths", МассивПутей);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("dropbox", "ПолучитьСписокТегов", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "Dropbox", "ПолучитьСписокТегов", , ПараметрыФункции, МассивПутей);
КонецПроцедуры
Процедура Dropbox_ДобавитьТег(ПараметрыФункции)
Тег = "Important";
Токен = ПараметрыФункции["Dropbox_Token"];
Путь = "/New/mydoc.docx";
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("path", Путь);
Опции.Вставить("tag", Тег);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("dropbox", "ДобавитьТег", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "Dropbox", "ДобавитьТег");
КонецПроцедуры
Процедура Dropbox_УдалитьТег(ПараметрыФункции)
Тег = "Important";
Токен = ПараметрыФункции["Dropbox_Token"];
Путь = "/New/mydoc.docx";
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("path", Путь);
Опции.Вставить("tag", Тег);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("dropbox", "УдалитьТег", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "Dropbox", "УдалитьТег");
КонецПроцедуры
Процедура Dropbox_ПолучитьИнформациюОбАккаунте(ПараметрыФункции)
Токен = ПараметрыФункции["Dropbox_Token"];
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("dropbox", "ПолучитьИнформациюОбАккаунте", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "Dropbox", "ПолучитьИнформациюОбАккаунте");
IDАккаунта = Результат["account_id"];
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("account", IDАккаунта);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("dropbox", "ПолучитьИнформациюОбАккаунте", Опции);
OPI_ПолучениеДанныхТестов.Обработать(Результат, "Dropbox", "ПолучитьИнформациюОбАккаунте", "По ID");
КонецПроцедуры
Процедура Dropbox_ПолучитьДанныеИспользованияПространства(ПараметрыФункции)
Токен = ПараметрыФункции["Dropbox_Token"];
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("dropbox", "ПолучитьДанныеИспользованияПространства", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "Dropbox", "ПолучитьДанныеИспользованияПространства");
КонецПроцедуры
Процедура Dropbox_ДобавитьПользователейКФайлу(ПараметрыФункции)
Токен = ПараметрыФункции["Dropbox_Token"];
Почта = ПараметрыФункции["Dropbox_OtherUser"];
Файл = ПараметрыФункции["Dropbox_FileID"];
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("fileid", Файл);
Опции.Вставить("emails", Почта);
Опции.Вставить("readonly", Ложь);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("dropbox", "ДобавитьПользователейКФайлу", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "Dropbox", "ДобавитьПользователейКФайлу", , Почта, Ложь);
Почты = Новый Массив;
Почты.Добавить(Почта);
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("fileid", Файл);
Опции.Вставить("emails", Почты);
Опции.Вставить("readonly", Истина);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("dropbox", "ДобавитьПользователейКФайлу", Опции);
OPI_ПолучениеДанныхТестов.Обработать(Результат, "Dropbox", "ДобавитьПользователейКФайлу", , Почта, Истина);
КонецПроцедуры
Процедура Dropbox_ОпубликоватьПапку(ПараметрыФункции)
Токен = ПараметрыФункции["Dropbox_Token"];
Путь = "/New";
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("path", Путь);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("dropbox", "ОпубликоватьПапку", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "Dropbox", "ОпубликоватьПапку", , ПараметрыФункции);
КонецПроцедуры
Процедура Dropbox_ОтменитьПубликациюПапки(ПараметрыФункции)
Токен = ПараметрыФункции["Dropbox_Token"];
Папка = ПараметрыФункции["Dropbox_SharedFolder"];
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("folder", Папка);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("dropbox", "ОтменитьПубликациюПапки", Опции);
OPI_ПолучениеДанныхТестов.Обработать(Результат, "Dropbox", "ОтменитьПубликациюПапки"); // SKIP
ТекущийСтатус = "in_progress";
IDРаботы = Результат["async_job_id"];
Пока ТекущийСтатус = "in_progress" Цикл
Результат = OPI_Dropbox.ПолучитьСтатусАсинхронногоИзменения(Токен, IDРаботы);
ТекущийСтатус = Результат[".tag"];
OPI_Инструменты.Пауза(3);
КонецЦикла;
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "Dropbox", "ОтменитьПубликациюПапки", "Окончание", ПараметрыФункции, IDРаботы);
КонецПроцедуры
Процедура Dropbox_ПолучитьСтатусАсинхронногоИзменения(ПараметрыФункции)
Токен = ПараметрыФункции["Dropbox_Token"];
IDРаботы = ПараметрыФункции["Dropbox_NewJobID"];
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("job", IDРаботы);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("dropbox", "ПолучитьСтатусАсинхронногоИзменения", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "Dropbox", "ПолучитьСтатусАсинхронногоИзменения");
КонецПроцедуры
Процедура Dropbox_ДобавитьПользователейКПапке(ПараметрыФункции)
Токен = ПараметрыФункции["Dropbox_Token"];
Почта = ПараметрыФункции["Dropbox_OtherUser"];
Папка = ПараметрыФункции["Dropbox_SharedFolder"]; // shared_folder_id
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("folder", Папка);
Опции.Вставить("emails", Почта);
Опции.Вставить("readonly", Ложь);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("dropbox", "ДобавитьПользователейКПапке", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "Dropbox", "ДобавитьПользователейКПапке");
Почты = Новый Массив;
Почты.Добавить(Почта);
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("folder", Папка);
Опции.Вставить("emails", Почты);
Опции.Вставить("readonly", Истина);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("dropbox", "ДобавитьПользователейКПапке", Опции);
OPI_ПолучениеДанныхТестов.Обработать(Результат, "Dropbox", "ДобавитьПользователейКПапке", "Дополнительный");
КонецПроцедуры
Процедура Dropbox_ОтменитьПубликациюФайла(ПараметрыФункции)
Токен = ПараметрыФункции["Dropbox_Token"];
Файл = ПараметрыФункции["Dropbox_FileID"];
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("fileid", Файл);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("dropbox", "ОтменитьПубликациюФайла", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "Dropbox", "ОтменитьПубликациюФайла");
КонецПроцедуры
#КонецОбласти // Dropbox
#КонецОбласти // АтомарныеТесты
#КонецОбласти // СлужебныеПроцедурыИФункции
#Region Alternate
Procedure DropboxAPI_GetUpdateToken() Export
ДропБокс_ПолучитьОбновитьТокен();
EndProcedure
Procedure DropboxAPI_UploadFile() Export
ДропБокс_ЗагрузитьФайл();
EndProcedure
Procedure DropboxAPI_CreateFolder() Export
ДропБокс_СоздатьКаталог();
EndProcedure
Procedure DropboxAPI_GetFolderFileList() Export
ДропБокс_ПолучитьСписокФайловПапки();
EndProcedure
Procedure DropboxAPI_UploadFileByURL() Export
ДропБокс_ЗагрузитьФайлПоURL();
EndProcedure
Procedure DropboxAPI_CreateDeleteTag() Export
ДропБокс_СоздатьУдалитьТег();
EndProcedure
Procedure DropboxAPI_GetAccount() Export
ДропБокс_ПолучитьАккаунт();
EndProcedure
Procedure DropboxAPI_AccessManagement() Export
ДропБокс_РаботаСДоступами();
EndProcedure
#EndRegion
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -1,3 +1,5 @@
// OneScript: ./OInt/tests/Modules/OPItc_GoogleCalendar.os
// MIT License
// Copyright (c) 2023-2026 Anton Tsitavets
@@ -9,7 +11,7 @@
// 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
// 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
@@ -22,6 +24,8 @@
// https://github.com/Bayselonarrend/OpenIntegrations
// Набор тестов для YAxUnit
// BSLLS:Typo-off
// BSLLS:LatinAndCyrillicSymbolInWord-off
// BSLLS:IncorrectLineBreak-off
@@ -63,6 +67,565 @@
//@skip-check missing-temporary-file-deletion
//@skip-check module-unused-method
// #Использовать oint
// #Использовать asserts
// #Использовать "internal"
//#Использовать "../../tools/main"
//#Использовать "../../tools/http"
//#Использовать "../../api"
//#Использовать asserts
//#Использовать "internal"
// Для YaxUnit
Процедура ИсполняемыеСценарии() Экспорт
OPI_ПолучениеДанныхТестов.СформироватьТестыЯкс("GoogleCalendar");
КонецПроцедуры
// Для Asserts
Функция ПолучитьСписокТестов(ЮнитТестирование) Экспорт
Возврат OPI_ПолучениеДанныхТестов.СформироватьТестыАссертс("GoogleCalendar");
КонецФункции
#Область СлужебныйПрограммныйИнтерфейс
#Область ЗапускаемыеТесты
#Область GoogleCalendar
Процедура ГК_Авторизация() Экспорт
ПараметрыТеста = Новый Структура;
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_ClientID" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_ClientSecret", ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_Code" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_Refresh" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_ServiceData" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Access_Token" , ПараметрыТеста);
GoogleCalendar_СформироватьСсылкуПолученияКода(ПараметрыТеста);
GoogleCalendar_ПолучитьТокенПоКоду(ПараметрыТеста);
GoogleCalendar_ОбновитьТокен(ПараметрыТеста);
GoogleCalendar_ПолучитьТокенServiceАккаунта(ПараметрыТеста);
КонецПроцедуры
Процедура ГК_ПолучитьСписокКалендарей() Экспорт
ПараметрыТеста = Новый Структура;
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_Token", ПараметрыТеста);
GoogleCalendar_ПолучитьСписокКалендарей(ПараметрыТеста);
КонецПроцедуры
Процедура ГК_СоздатьУдалитьКалендарь() Экспорт
ПараметрыТеста = Новый Структура;
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_Token", ПараметрыТеста);
GoogleCalendar_СоздатьКалендарь(ПараметрыТеста);
GoogleCalendar_ИзменитьМетаданныеКалендаря(ПараметрыТеста);
GoogleCalendar_ПолучитьМетаданныеКалендаря(ПараметрыТеста);
GoogleCalendar_ДобавитьКалендарьВСписок(ПараметрыТеста);
GoogleCalendar_ИзменитьКалендарьСписка(ПараметрыТеста);
GoogleCalendar_ПолучитьКалендарьСписка(ПараметрыТеста);
GoogleCalendar_ОчиститьОсновнойКалендарь(ПараметрыТеста);
// !DISABLED! GoogleCalendar_УдалитьКалендарьИзСписка(ПараметрыТеста);
GoogleCalendar_УдалитьКалендарь(ПараметрыТеста);
OPI_Инструменты.Пауза(5);
КонецПроцедуры
Процедура ГК_СоздатьУдалитьСобытие() Экспорт
ПараметрыТеста = Новый Структура;
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_Token" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_NewCalendarID", ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_CalendarID" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture2" , ПараметрыТеста);
GoogleCalendar_СоздатьКалендарь(ПараметрыТеста);
GoogleCalendar_СоздатьСобытие(ПараметрыТеста);
GoogleCalendar_ИзменитьСобытие(ПараметрыТеста);
GoogleCalendar_ПолучитьСобытие(ПараметрыТеста);
GoogleCalendar_ПереместитьСобытие(ПараметрыТеста);
GoogleCalendar_ПолучитьСписокСобытий(ПараметрыТеста);
GoogleCalendar_ПолучитьОписаниеСобытия(ПараметрыТеста);
GoogleCalendar_УдалитьСобытие(ПараметрыТеста);
GoogleCalendar_УдалитьКалендарь(ПараметрыТеста);
OPI_Инструменты.Пауза(5);
КонецПроцедуры
#КонецОбласти // GoogleCalendar
#КонецОбласти // ЗапускаемыеТесты
#КонецОбласти // СлужебныйПрограммныйИнтерфейс
#Область СлужебныеПроцедурыИФункции
#Область АтомарныеТесты
#Область GoogleCalendar
Процедура GoogleCalendar_СформироватьСсылкуПолученияКода(ПараметрыФункции)
ClientID = ПараметрыФункции["Google_ClientID"];
Опции = Новый Структура;
Опции.Вставить("id", ClientID);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gcalendar", "СформироватьСсылкуПолученияКода", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "GoogleCalendar", "СформироватьСсылкуПолученияКода");
КонецПроцедуры
Процедура GoogleCalendar_ПолучитьТокенПоКоду(ПараметрыФункции)
ClientID = ПараметрыФункции["Google_ClientID"];
ClientSecret = ПараметрыФункции["Google_ClientSecret"];
Code = ПараметрыФункции["Google_Code"];
Опции = Новый Структура;
Опции.Вставить("id", ClientID);
Опции.Вставить("secret", ClientSecret);
Опции.Вставить("code", Code);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gcalendar", "ПолучитьТокенПоКоду", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "GoogleCalendar", "ПолучитьТокенПоКоду");
КонецПроцедуры
Процедура GoogleCalendar_ОбновитьТокен(ПараметрыФункции)
ClientID = ПараметрыФункции["Google_ClientID"];
ClientSecret = ПараметрыФункции["Google_ClientSecret"];
RefreshToken = ПараметрыФункции["Google_Refresh"];
Опции = Новый Структура;
Опции.Вставить("id", ClientID);
Опции.Вставить("secret", ClientSecret);
Опции.Вставить("refresh", RefreshToken);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gcalendar", "ОбновитьТокен", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "GoogleCalendar", "ОбновитьТокен");
КонецПроцедуры
Процедура GoogleCalendar_ПолучитьТокенServiceАккаунта(ПараметрыФункции)
Данные = ПараметрыФункции["Google_ServiceData"]; // URL, двоичные данные, файл или коллекция
Токен = ПараметрыФункции["Access_Token"]; // SKIP
Данные = OPI_ЗапросыHTTP // SKIP
.НовыйЗапрос() // SKIP
.Инициализировать(Данные) // SKIP
.ДобавитьBearerАвторизацию(Токен) // SKIP
.ОбработатьЗапрос("GET") // SKIP
.ВернутьОтветКакДвоичныеДанные(); // SKIP
ОбластиДействия = Новый Массив;
ОбластиДействия.Добавить("https://www.googleapis.com/auth/calendar");
ОбластиДействия.Добавить("https://www.googleapis.com/auth/drive");
ОбластиДействия.Добавить("https://www.googleapis.com/auth/spreadsheets");
Опции = Новый Структура;
Опции.Вставить("auth", Данные);
Опции.Вставить("scope", ОбластиДействия);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gcalendar", "ПолучитьТокенServiceАккаунта", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "GoogleCalendar", "ПолучитьТокенServiceАккаунта");
КонецПроцедуры
Процедура GoogleCalendar_ПолучитьСписокКалендарей(ПараметрыФункции)
Токен = ПараметрыФункции["Google_Token"];
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gcalendar", "ПолучитьСписокКалендарей", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "GoogleCalendar", "ПолучитьСписокКалендарей");
КонецПроцедуры
Процедура GoogleCalendar_СоздатьКалендарь(ПараметрыФункции)
Токен = ПараметрыФункции["Google_Token"];
Наименование = "Тестовый календарь";
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("title", Наименование);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gcalendar", "СоздатьКалендарь", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "GoogleCalendar", "СоздатьКалендарь", , ПараметрыФункции, Наименование);
КонецПроцедуры
Процедура GoogleCalendar_ИзменитьМетаданныеКалендаря(ПараметрыФункции)
Токен = ПараметрыФункции["Google_Token"];
Календарь = ПараметрыФункции["Google_NewCalendarID"];
Наименование = "Новое наименование";
Описание = "Новое описание";
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("calendar", Календарь);
Опции.Вставить("title", Наименование);
Опции.Вставить("description", Описание);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gcalendar", "ИзменитьМетаданныеКалендаря", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "GoogleCalendar", "ИзменитьМетаданныеКалендаря", , Наименование, Описание);
КонецПроцедуры
Процедура GoogleCalendar_ПолучитьМетаданныеКалендаря(ПараметрыФункции)
Токен = ПараметрыФункции["Google_Token"];
Календарь = ПараметрыФункции["Google_NewCalendarID"];
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("calendar", Календарь);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gcalendar", "ПолучитьМетаданныеКалендаря", Опции);
// END
Наименование = "Новое наименование";
Описание = "Новое описание";
OPI_ПолучениеДанныхТестов.Обработать(Результат, "GoogleCalendar", "ПолучитьМетаданныеКалендаря", , Наименование, Описание);
КонецПроцедуры
Процедура GoogleCalendar_ДобавитьКалендарьВСписок(ПараметрыФункции)
Токен = ПараметрыФункции["Google_Token"];
Календарь = ПараметрыФункции["Google_NewCalendarID"];
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("calendar", Календарь);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gcalendar", "ДобавитьКалендарьВСписок", Опции);
// END
Наименование = "Новое наименование";
Описание = "Новое описание";
OPI_ПолучениеДанныхТестов.Обработать(Результат, "GoogleCalendar", "ДобавитьКалендарьВСписок", , Наименование, Описание);
КонецПроцедуры
Процедура GoogleCalendar_ИзменитьКалендарьСписка(ПараметрыФункции)
Токен = ПараметрыФункции["Google_Token"];
Календарь = ПараметрыФункции["Google_NewCalendarID"];
ОсновнойЦвет = "#000000";
ДополнительныйЦвет = "#ffd800";
Скрытый = Ложь;
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("calendar", Календарь);
Опции.Вставить("primary", ОсновнойЦвет);
Опции.Вставить("secondary", ДополнительныйЦвет);
Опции.Вставить("hidden", Скрытый);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gcalendar", "ИзменитьКалендарьСписка", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "GoogleCalendar", "ИзменитьКалендарьСписка", , ОсновнойЦвет, ДополнительныйЦвет);
КонецПроцедуры
Процедура GoogleCalendar_ПолучитьКалендарьСписка(ПараметрыФункции)
Токен = ПараметрыФункции["Google_Token"];
Календарь = ПараметрыФункции["Google_NewCalendarID"];
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("calendar", Календарь);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gcalendar", "ПолучитьКалендарьСписка", Опции);
// END
ОсновнойЦвет = "#000000";
ДополнительныйЦвет = "#ffd800";
OPI_ПолучениеДанныхТестов.Обработать(Результат, "GoogleCalendar", "ПолучитьКалендарьСписка", , ОсновнойЦвет, ДополнительныйЦвет);
КонецПроцедуры
Процедура GoogleCalendar_ОчиститьОсновнойКалендарь(ПараметрыФункции)
Токен = ПараметрыФункции["Google_Token"];
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gcalendar", "ОчиститьОсновнойКалендарь", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "GoogleCalendar", "ОчиститьОсновнойКалендарь");
КонецПроцедуры
Процедура GoogleCalendar_УдалитьКалендарьИзСписка(ПараметрыФункции)
Токен = ПараметрыФункции["Google_Token"];
Календарь = ПараметрыФункции["Google_NewCalendarID"];
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("calendar", Календарь);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gcalendar", "УдалитьКалендарьИзСписка", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "GoogleCalendar", "УдалитьКалендарьИзСписка");
КонецПроцедуры
Процедура GoogleCalendar_УдалитьКалендарь(ПараметрыФункции)
Токен = ПараметрыФункции["Google_Token"];
Календарь = ПараметрыФункции["Google_NewCalendarID"];
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("calendar", Календарь);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gcalendar", "УдалитьКалендарь", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "GoogleCalendar", "УдалитьКалендарь");
КонецПроцедуры
Процедура GoogleCalendar_СоздатьСобытие(ПараметрыФункции)
ТекущаяДата = OPI_Инструменты.ПолучитьТекущуюДату();
Токен = ПараметрыФункции["Google_Token"];
Календарь = ПараметрыФункции["Google_NewCalendarID"];
Наименование = "Новое событие";
Описание = "Описание тестового события";
Час = 3600;
Картинка1 = ПараметрыФункции["Picture"]; // URL, Двоичные или Путь к файлу
Картинка2 = ПараметрыФункции["Picture2"]; // URL, Двоичные или Путь к файлу
Вложения = Новый Соответствие;
Вложения.Вставить("Картинка1", Картинка1);
Вложения.Вставить("Картинка2", Картинка2);
ОписаниеСобытия = Новый Соответствие;
ОписаниеСобытия.Вставить("Описание" , Описание);
ОписаниеСобытия.Вставить("Заголовок" , Наименование);
ОписаниеСобытия.Вставить("МестоПроведения" , "В офисе");
ОписаниеСобытия.Вставить("ДатаНачала" , ТекущаяДата);
ОписаниеСобытия.Вставить("ДатаОкончания" , ОписаниеСобытия["ДатаНачала"] + Час);
ОписаниеСобытия.Вставить("МассивURLФайловВложений", Вложения);
ОписаниеСобытия.Вставить("ОтправлятьУведомления" , Истина);
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("calendar", Календарь);
Опции.Вставить("props", ОписаниеСобытия);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gcalendar", "СоздатьСобытие", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "GoogleCalendar", "СоздатьСобытие", , ПараметрыФункции, Наименование, Описание);
КонецПроцедуры
Процедура GoogleCalendar_ИзменитьСобытие(ПараметрыФункции)
Токен = ПараметрыФункции["Google_Token"];
Календарь = ПараметрыФункции["Google_NewCalendarID"];
Событие = ПараметрыФункции["Google_EventID"];
Описание = "Новое описание события";
ОписаниеСобытия = Новый Соответствие;
ОписаниеСобытия.Вставить("Описание", Описание);
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("calendar", Календарь);
Опции.Вставить("props", ОписаниеСобытия);
Опции.Вставить("event", Событие);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gcalendar", "ИзменитьСобытие", Опции);
// END
Наименование = "Новое событие";
OPI_ПолучениеДанныхТестов.Обработать(Результат, "GoogleCalendar", "ИзменитьСобытие", , Наименование, Описание);
КонецПроцедуры
Процедура GoogleCalendar_ПолучитьСобытие(ПараметрыФункции)
Токен = ПараметрыФункции["Google_Token"];
Календарь = ПараметрыФункции["Google_NewCalendarID"];
Событие = ПараметрыФункции["Google_EventID"];
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("calendar", Календарь);
Опции.Вставить("event", Событие);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gcalendar", "ПолучитьСобытие", Опции);
// END
Наименование = "Новое событие";
Описание = "Новое описание события";
OPI_ПолучениеДанныхТестов.Обработать(Результат, "GoogleCalendar", "ПолучитьСобытие", , Наименование, Описание);
КонецПроцедуры
Процедура GoogleCalendar_ПереместитьСобытие(ПараметрыФункции)
Токен = ПараметрыФункции["Google_Token"];
Событие = ПараметрыФункции["Google_EventID"];
КалендарьИсточник = ПараметрыФункции["Google_NewCalendarID"];
КалендарьПриемник = ПараметрыФункции["Google_CalendarID"];
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("from", КалендарьИсточник);
Опции.Вставить("to", КалендарьПриемник);
Опции.Вставить("event", Событие);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gcalendar", "ПереместитьСобытие", Опции);
// END
Наименование = "Новое событие";
Описание = "Новое описание события";
OPI_ПолучениеДанныхТестов.Обработать(Результат, "GoogleCalendar", "ПереместитьСобытие", , Наименование, Описание);
OPI_GoogleCalendar.ПереместитьСобытие(Токен, КалендарьПриемник, КалендарьИсточник, Событие);
КонецПроцедуры
Процедура GoogleCalendar_УдалитьСобытие(ПараметрыФункции)
Токен = ПараметрыФункции["Google_Token"];
Календарь = ПараметрыФункции["Google_NewCalendarID"];
Событие = ПараметрыФункции["Google_EventID"];
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("calendar", Календарь);
Опции.Вставить("event", Событие);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gcalendar", "УдалитьСобытие", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "GoogleCalendar", "УдалитьСобытие");
КонецПроцедуры
Процедура GoogleCalendar_ПолучитьСписокСобытий(ПараметрыФункции)
Токен = ПараметрыФункции["Google_Token"];
Календарь = ПараметрыФункции["Google_NewCalendarID"];
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("calendar", Календарь);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gcalendar", "ПолучитьСписокСобытий", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "GoogleCalendar", "ПолучитьСписокСобытий");
КонецПроцедуры
Процедура GoogleCalendar_ПолучитьОписаниеСобытия(ПараметрыФункции)
Пустая = Ложь;
Опции = Новый Структура;
Опции.Вставить("empty", Пустая);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gcalendar", "ПолучитьОписаниеСобытия", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "GoogleCalendar", "ПолучитьОписаниеСобытия");
КонецПроцедуры
#КонецОбласти // GoogleCalendar
#КонецОбласти // АтомарныеТесты
#КонецОбласти // СлужебныеПроцедурыИФункции
#Region Alternate
Procedure GC_Authorization() Export
ГК_Авторизация();
EndProcedure
Procedure GC_GetCalendarList() Export
ГК_ПолучитьСписокКалендарей();
EndProcedure
Procedure GC_CreateDeleteCalendar() Export
ГК_СоздатьУдалитьКалендарь();
EndProcedure
Procedure GC_CreateDeleteEvent() Export
ГК_СоздатьУдалитьСобытие();
EndProcedure
#EndRegion
@@ -1,3 +1,5 @@
// OneScript: ./OInt/tests/Modules/OPItc_GoogleDrive.os
// MIT License
// Copyright (c) 2023-2026 Anton Tsitavets
@@ -9,7 +11,7 @@
// 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
// 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
@@ -22,6 +24,8 @@
// https://github.com/Bayselonarrend/OpenIntegrations
// Набор тестов для YAxUnit
// BSLLS:Typo-off
// BSLLS:LatinAndCyrillicSymbolInWord-off
// BSLLS:IncorrectLineBreak-off
@@ -63,6 +67,543 @@
//@skip-check missing-temporary-file-deletion
//@skip-check module-unused-method
// #Использовать oint
// #Использовать asserts
// #Использовать "internal"
//#Использовать "../../tools/main"
//#Использовать "../../tools/http"
//#Использовать "../../api"
//#Использовать asserts
//#Использовать "internal"
// Для YaxUnit
Процедура ИсполняемыеСценарии() Экспорт
OPI_ПолучениеДанныхТестов.СформироватьТестыЯкс("GoogleDrive");
КонецПроцедуры
// Для Asserts
Функция ПолучитьСписокТестов(ЮнитТестирование) Экспорт
Возврат OPI_ПолучениеДанныхТестов.СформироватьТестыАссертс("GoogleDrive");
КонецФункции
#Область СлужебныйПрограммныйИнтерфейс
#Область ЗапускаемыеТесты
#Область GoogleDrive
Процедура ГД_Авторизация() Экспорт
ПараметрыТеста = Новый Структура;
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_ClientID" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_ClientSecret", ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_Code" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_Refresh" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_ServiceData" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Access_Token" , ПараметрыТеста);
GoogleDrive_СформироватьСсылкуПолученияКода(ПараметрыТеста);
GoogleDrive_ПолучитьТокенПоКоду(ПараметрыТеста);
GoogleDrive_ОбновитьТокен(ПараметрыТеста);
GoogleDrive_ПолучитьТокенServiceАккаунта(ПараметрыТеста);
КонецПроцедуры
Процедура ГД_ПолучитьСписокКаталогов() Экспорт
ПараметрыТеста = Новый Структура;
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_Token", ПараметрыТеста);
GoogleDrive_ПолучитьСписокКаталогов(ПараметрыТеста);
GoogleDrive_ПолучитьИнформациюОбОбъекте(ПараметрыТеста);
КонецПроцедуры
Процедура ГД_ЗагрузитьУдалитьФайл() Экспорт
ПараметрыТеста = Новый Структура;
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_Token", ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GD_Catalog" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture2" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Big" , ПараметрыТеста);
ПараметрыТеста.Вставить("МассивУдаляемых", Новый Массив);
GoogleDrive_ЗагрузитьФайл(ПараметрыТеста);
GoogleDrive_СкопироватьОбъект(ПараметрыТеста);
GoogleDrive_СкачатьФайл(ПараметрыТеста);
GoogleDrive_ОбновитьФайл(ПараметрыТеста);
GoogleDrive_ПолучитьСписокФайлов(ПараметрыТеста);
GoogleDrive_УдалитьОбъект(ПараметрыТеста);
GoogleDrive_ПолучитьОписаниеФайла(ПараметрыТеста);
OPI_Инструменты.Пауза(5);
КонецПроцедуры
Процедура ГД_СоздатьУдалитьКомментарий() Экспорт
ПараметрыТеста = Новый Структура;
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_Token", ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GD_Catalog" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
ПараметрыТеста.Вставить("МассивУдаляемых", Новый Массив);
GoogleDrive_ЗагрузитьФайл(ПараметрыТеста);
GoogleDrive_СоздатьКомментарий(ПараметрыТеста);
GoogleDrive_ПолучитьКомментарий(ПараметрыТеста);
GoogleDrive_ПолучитьСписокКомментариев(ПараметрыТеста);
GoogleDrive_УдалитьКомментарий(ПараметрыТеста);
GoogleDrive_УдалитьОбъект(ПараметрыТеста);
КонецПроцедуры
Процедура ГД_СоздатьКаталог() Экспорт
ПараметрыТеста = Новый Структура;
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_Token", ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GD_Catalog" , ПараметрыТеста);
GoogleDrive_СоздатьПапку(ПараметрыТеста);
КонецПроцедуры
#КонецОбласти // GoogleDrive
#КонецОбласти // ЗапускаемыеТесты
#КонецОбласти // СлужебныйПрограммныйИнтерфейс
#Область СлужебныеПроцедурыИФункции
#Область АтомарныеТесты
#Область GoogleDrive
Процедура GoogleDrive_СформироватьСсылкуПолученияКода(ПараметрыФункции)
ClientID = ПараметрыФункции["Google_ClientID"];
Опции = Новый Структура;
Опции.Вставить("id", ClientID);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gdrive", "СформироватьСсылкуПолученияКода", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "GoogleDrive", "СформироватьСсылкуПолученияКода");
КонецПроцедуры
Процедура GoogleDrive_ПолучитьТокенПоКоду(ПараметрыФункции)
ClientID = ПараметрыФункции["Google_ClientID"];
ClientSecret = ПараметрыФункции["Google_ClientSecret"];
Code = ПараметрыФункции["Google_Code"];
Опции = Новый Структура;
Опции.Вставить("id", ClientID);
Опции.Вставить("secret", ClientSecret);
Опции.Вставить("code", Code);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gdrive", "ПолучитьТокенПоКоду", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "GoogleDrive", "ПолучитьТокенПоКоду");
КонецПроцедуры
Процедура GoogleDrive_ОбновитьТокен(ПараметрыФункции)
ClientID = ПараметрыФункции["Google_ClientID"];
ClientSecret = ПараметрыФункции["Google_ClientSecret"];
RefreshToken = ПараметрыФункции["Google_Refresh"];
Опции = Новый Структура;
Опции.Вставить("id", ClientID);
Опции.Вставить("secret", ClientSecret);
Опции.Вставить("refresh", RefreshToken);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gdrive", "ОбновитьТокен", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "GoogleDrive", "ОбновитьТокен");
КонецПроцедуры
Процедура GoogleDrive_ПолучитьТокенServiceАккаунта(ПараметрыФункции)
Данные = ПараметрыФункции["Google_ServiceData"]; // URL, двоичные данные, файл или коллекция
Токен = ПараметрыФункции["Access_Token"]; // SKIP
Данные = OPI_ЗапросыHTTP // SKIP
.НовыйЗапрос() // SKIP
.Инициализировать(Данные) // SKIP
.ДобавитьBearerАвторизацию(Токен) // SKIP
.ОбработатьЗапрос("GET") // SKIP
.ВернутьОтветКакДвоичныеДанные(); // SKIP
ОбластиДействия = Новый Массив;
ОбластиДействия.Добавить("https://www.googleapis.com/auth/calendar");
ОбластиДействия.Добавить("https://www.googleapis.com/auth/drive");
ОбластиДействия.Добавить("https://www.googleapis.com/auth/spreadsheets");
Опции = Новый Структура;
Опции.Вставить("auth", Данные);
Опции.Вставить("scope", ОбластиДействия);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gdrive", "ПолучитьТокенServiceАккаунта", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "GoogleDrive", "ПолучитьТокенServiceАккаунта");
КонецПроцедуры
Процедура GoogleDrive_ПолучитьСписокКаталогов(ПараметрыФункции)
Имя = "Тестовая папка";
Токен = ПараметрыФункции["Google_Token"];
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("query", Имя);
Опции.Вставить("depth", Истина);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gdrive", "ПолучитьСписокКаталогов", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "GoogleDrive", "ПолучитьСписокКаталогов", , ПараметрыФункции);
КонецПроцедуры
Процедура GoogleDrive_ПолучитьИнформациюОбОбъекте(ПараметрыФункции)
Токен = ПараметрыФункции["Google_Token"];
Идентификатор = ПараметрыФункции["GD_Catalog"];
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("object", Идентификатор);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gdrive", "ПолучитьИнформациюОбОбъекте", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "GoogleDrive", "ПолучитьИнформациюОбОбъекте");
КонецПроцедуры
Процедура GoogleDrive_ЗагрузитьФайл(ПараметрыФункции)
Токен = ПараметрыФункции["Google_Token"];
Каталог = ПараметрыФункции["GD_Catalog"];
Картинка = ПараметрыФункции["Picture"]; // URL, Двоичные данные или Путь к файлу
Пустая = Ложь;
Опции = Новый Структура;
Опции.Вставить("empty", Пустая);
Описание = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gdrive", "ПолучитьОписаниеФайла", Опции);
Описание.Вставить("Родитель", Каталог);
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("file", Картинка);
Опции.Вставить("props", Описание);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gdrive", "ЗагрузитьФайл", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "GoogleDrive", "ЗагрузитьФайл", , ПараметрыФункции, Описание);
Если Не OPI_Инструменты.ЭтоOneScript() И ПараметрыФункции.Свойство("Big") Тогда
БольшойФайл = ПараметрыФункции["Big"];
Описание.Вставить("Имя", "big.rar");
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("file", БольшойФайл);
Опции.Вставить("props", Описание);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gdrive", "ЗагрузитьФайл", Опции);
OPI_ПолучениеДанныхТестов.Обработать(Результат, "GoogleDrive", "ЗагрузитьФайл", "Большой", ПараметрыФункции, Описание);
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("object", Результат);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gdrive", "СкачатьФайл", Опции);
OPI_ПолучениеДанныхТестов.Обработать(Результат, "GoogleDrive", "ЗагрузитьФайл", "Проверка", ПараметрыФункции, Описание);
КонецЕсли;
КонецПроцедуры
Процедура GoogleDrive_СкопироватьОбъект(ПараметрыФункции)
Токен = ПараметрыФункции["Google_Token"];
Идентификатор = ПараметрыФункции["GD_File"];
НовоеИмя = "Скопированный файл.jpeg";
НовыйРодитель = "root";
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("object", Идентификатор);
Опции.Вставить("title", НовоеИмя);
Опции.Вставить("catalog", НовыйРодитель);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gdrive", "СкопироватьОбъект", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "GoogleDrive", "СкопироватьОбъект", , ПараметрыФункции, НовоеИмя);
КонецПроцедуры
Процедура GoogleDrive_СкачатьФайл(ПараметрыФункции)
Токен = ПараметрыФункции["Google_Token"];
Идентификатор = ПараметрыФункции["GD_File"];
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("object", Идентификатор);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gdrive", "СкачатьФайл", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "GoogleDrive", "СкачатьФайл", , ПараметрыФункции);
КонецПроцедуры
Процедура GoogleDrive_ОбновитьФайл(ПараметрыФункции)
Токен = ПараметрыФункции["Google_Token"];
НовоеИмя = "Обновленный файл.jpg";
Идентификатор = ПараметрыФункции["GD_File"];
Файл = ПараметрыФункции["Picture2"]; // URL, Двоичные данные или Путь к файлу
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("object", Идентификатор);
Опции.Вставить("file", Файл);
Опции.Вставить("title", НовоеИмя);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gdrive", "ОбновитьФайл", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "GoogleDrive", "ОбновитьФайл", , НовоеИмя);
КонецПроцедуры
Процедура GoogleDrive_ПолучитьСписокФайлов(ПараметрыФункции)
Токен = ПараметрыФункции["Google_Token"];
Каталог = "root";
ИмяСодержит = "data";
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("query", ИмяСодержит);
Опции.Вставить("catalog", Каталог);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gdrive", "ПолучитьСписокФайлов", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "GoogleDrive", "ПолучитьСписокФайлов");
КонецПроцедуры
Процедура GoogleDrive_УдалитьОбъект(ПараметрыФункции)
Токен = ПараметрыФункции["Google_Token"];
Идентификатор = ПараметрыФункции["GD_File"];
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("object", Идентификатор);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gdrive", "УдалитьОбъект", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "GoogleDrive", "УдалитьОбъект");
Для Каждого Удаляемый Из ПараметрыФункции["МассивУдаляемых"] Цикл
Результат = OPI_GoogleDrive.УдалитьОбъект(Токен, Удаляемый);
OPI_ПолучениеДанныхТестов.Обработать(Результат, "GoogleDrive", "УдалитьОбъект", "Дополнительный");
OPI_Инструменты.Пауза(2);
КонецЦикла;
КонецПроцедуры
Процедура GoogleDrive_ПолучитьОписаниеФайла(ПараметрыФункции)
Опции = Новый Структура;
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gdrive", "ПолучитьОписаниеФайла", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "GoogleDrive", "ПолучитьОписаниеФайла");
КонецПроцедуры
Процедура GoogleDrive_СоздатьКомментарий(ПараметрыФункции)
Токен = ПараметрыФункции["Google_Token"];
Идентификатор = ПараметрыФункции["GD_File"];
Комментарий = "Текст комментария";
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("object", Идентификатор);
Опции.Вставить("text", Комментарий);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gdrive", "СоздатьКомментарий", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "GoogleDrive", "СоздатьКомментарий", , ПараметрыФункции, Комментарий);
КонецПроцедуры
Процедура GoogleDrive_ПолучитьКомментарий(ПараметрыФункции)
Токен = ПараметрыФункции["Google_Token"];
Идентификатор = ПараметрыФункции["GD_File"];
ИДКомментария = ПараметрыФункции["GD_Comment"];
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("object", Идентификатор);
Опции.Вставить("comment", ИДКомментария);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gdrive", "ПолучитьКомментарий", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "GoogleDrive", "ПолучитьКомментарий");
КонецПроцедуры
Процедура GoogleDrive_ПолучитьСписокКомментариев(ПараметрыФункции)
Токен = ПараметрыФункции["Google_Token"];
Идентификатор = ПараметрыФункции["GD_File"];
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("object", Идентификатор);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gdrive", "ПолучитьСписокКомментариев", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "GoogleDrive", "ПолучитьСписокКомментариев");
КонецПроцедуры
Процедура GoogleDrive_УдалитьКомментарий(ПараметрыФункции)
Токен = ПараметрыФункции["Google_Token"];
Идентификатор = ПараметрыФункции["GD_File"];
ИДКомментария = ПараметрыФункции["GD_Comment"];
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("object", Идентификатор);
Опции.Вставить("comment", ИДКомментария);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gdrive", "УдалитьКомментарий", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "GoogleDrive", "УдалитьКомментарий");
КонецПроцедуры
Процедура GoogleDrive_СоздатьПапку(ПараметрыФункции)
Токен = ПараметрыФункции["Google_Token"];
Каталог = ПараметрыФункции["GD_Catalog"];
Имя = "Тестовая папка";
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("title", Имя);
Опции.Вставить("catalog", Каталог);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gdrive", "СоздатьПапку", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "GoogleDrive", "СоздатьПапку");
ИДКаталога = Результат["id"];
OPI_GoogleDrive.УдалитьОбъект(Токен, ИДКаталога);
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("title", Имя);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gdrive", "СоздатьПапку", Опции);
OPI_ПолучениеДанныхТестов.Обработать(Результат, "GoogleDrive", "СоздатьПапку", "Корень");
ИДКаталога = Результат["id"];
OPI_GoogleDrive.УдалитьОбъект(Токен, ИДКаталога);
КонецПроцедуры
#КонецОбласти // GoogleDrive
#КонецОбласти // АтомарныеТесты
#КонецОбласти // СлужебныеПроцедурыИФункции
#Region Alternate
Procedure GD_Authorization() Export
ГД_Авторизация();
EndProcedure
Procedure GD_GetCatalogList() Export
ГД_ПолучитьСписокКаталогов();
EndProcedure
Procedure GD_UploadDeleteFile() Export
ГД_ЗагрузитьУдалитьФайл();
EndProcedure
Procedure GD_CreateDeleteComment() Export
ГД_СоздатьУдалитьКомментарий();
EndProcedure
Procedure GD_CreateCatalog() Export
ГД_СоздатьКаталог();
EndProcedure
#EndRegion
@@ -1,3 +1,5 @@
// OneScript: ./OInt/tests/Modules/OPItc_GoogleSheets.os
// MIT License
// Copyright (c) 2023-2026 Anton Tsitavets
@@ -9,7 +11,7 @@
// 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
// 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
@@ -22,6 +24,8 @@
// https://github.com/Bayselonarrend/OpenIntegrations
// Набор тестов для YAxUnit
// BSLLS:Typo-off
// BSLLS:LatinAndCyrillicSymbolInWord-off
// BSLLS:IncorrectLineBreak-off
@@ -63,6 +67,428 @@
//@skip-check missing-temporary-file-deletion
//@skip-check module-unused-method
// #Использовать oint
// #Использовать asserts
// #Использовать "internal"
//#Использовать "../../tools/main"
//#Использовать "../../tools/http"
//#Использовать "../../api"
//#Использовать asserts
//#Использовать "internal"
// Для YaxUnit
Процедура ИсполняемыеСценарии() Экспорт
OPI_ПолучениеДанныхТестов.СформироватьТестыЯкс("GoogleSheets");
КонецПроцедуры
// Для Asserts
Функция ПолучитьСписокТестов(ЮнитТестирование) Экспорт
Возврат OPI_ПолучениеДанныхТестов.СформироватьТестыАссертс("GoogleSheets");
КонецФункции
#Область СлужебныйПрограммныйИнтерфейс
#Область ЗапускаемыеТесты
#Область GoogleSheets
Процедура ГТ_Авторизация() Экспорт
ПараметрыТеста = Новый Структура;
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_ClientID" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_ClientSecret", ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_Code" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_Refresh" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_ServiceData" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Access_Token" , ПараметрыТеста);
GoogleSheets_СформироватьСсылкуПолученияКода(ПараметрыТеста);
GoogleSheets_ПолучитьТокенПоКоду(ПараметрыТеста);
GoogleSheets_ОбновитьТокен(ПараметрыТеста);
GoogleSheets_ПолучитьТокенServiceАккаунта(ПараметрыТеста);
КонецПроцедуры
Процедура ГТ_СоздатьТаблицу() Экспорт
ПараметрыТеста = Новый Структура;
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_Token", ПараметрыТеста);
GoogleSheets_СоздатьКнигу(ПараметрыТеста);
GoogleSheets_ПолучитьКнигу(ПараметрыТеста);
GoogleSheets_КопироватьЛист(ПараметрыТеста);
GoogleSheets_ДобавитьЛист(ПараметрыТеста);
GoogleSheets_УдалитьЛист(ПараметрыТеста);
GoogleSheets_ИзменитьНаименованиеКниги(ПараметрыТеста);
GoogleSheets_ПолучитьТаблицу(ПараметрыТеста);
OPI_GoogleDrive.УдалитьОбъект(ПараметрыТеста["Google_Token"], ПараметрыТеста["GS_Spreadsheet"]);
OPI_GoogleDrive.УдалитьОбъект(ПараметрыТеста["Google_Token"], ПараметрыТеста["GS_Spreadsheet2"]);
КонецПроцедуры
Процедура ГТ_ЗаполнитьОчиститьЯчейки() Экспорт
ПараметрыТеста = Новый Структура;
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_Token", ПараметрыТеста);
GoogleSheets_СоздатьКнигу(ПараметрыТеста);
GoogleSheets_УстановитьЗначенияЯчеек(ПараметрыТеста);
GoogleSheets_ПолучитьЗначенияЯчеек(ПараметрыТеста);
GoogleSheets_ОчиститьЯчейки(ПараметрыТеста);
OPI_GoogleDrive.УдалитьОбъект(ПараметрыТеста["Google_Token"], ПараметрыТеста["GS_Spreadsheet"]);
OPI_GoogleDrive.УдалитьОбъект(ПараметрыТеста["Google_Token"], ПараметрыТеста["GS_Spreadsheet2"]);
КонецПроцедуры
#КонецОбласти // GoogleSheets
#КонецОбласти // ЗапускаемыеТесты
#КонецОбласти // СлужебныйПрограммныйИнтерфейс
#Область СлужебныеПроцедурыИФункции
#Область АтомарныеТесты
#Область GoogleSheets
Процедура GoogleSheets_СформироватьСсылкуПолученияКода(ПараметрыФункции)
ClientID = ПараметрыФункции["Google_ClientID"];
Опции = Новый Структура;
Опции.Вставить("id", ClientID);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gsheets", "СформироватьСсылкуПолученияКода", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "GoogleSheets", "СформироватьСсылкуПолученияКода");
КонецПроцедуры
Процедура GoogleSheets_ПолучитьТокенПоКоду(ПараметрыФункции)
ClientID = ПараметрыФункции["Google_ClientID"];
ClientSecret = ПараметрыФункции["Google_ClientSecret"];
Code = ПараметрыФункции["Google_Code"];
Опции = Новый Структура;
Опции.Вставить("id", ClientID);
Опции.Вставить("secret", ClientSecret);
Опции.Вставить("code", Code);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gsheets", "ПолучитьТокенПоКоду", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "GoogleSheets", "ПолучитьТокенПоКоду");
КонецПроцедуры
Процедура GoogleSheets_ОбновитьТокен(ПараметрыФункции)
ClientID = ПараметрыФункции["Google_ClientID"];
ClientSecret = ПараметрыФункции["Google_ClientSecret"];
RefreshToken = ПараметрыФункции["Google_Refresh"];
Опции = Новый Структура;
Опции.Вставить("id", ClientID);
Опции.Вставить("secret", ClientSecret);
Опции.Вставить("refresh", RefreshToken);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gsheets", "ОбновитьТокен", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "GoogleSheets", "ОбновитьТокен");
КонецПроцедуры
Процедура GoogleSheets_ПолучитьТокенServiceАккаунта(ПараметрыФункции)
Данные = ПараметрыФункции["Google_ServiceData"]; // URL, двоичные данные, файл или коллекция
Токен = ПараметрыФункции["Access_Token"]; // SKIP
Данные = OPI_ЗапросыHTTP // SKIP
.НовыйЗапрос() // SKIP
.Инициализировать(Данные) // SKIP
.ДобавитьBearerАвторизацию(Токен) // SKIP
.ОбработатьЗапрос("GET") // SKIP
.ВернутьОтветКакДвоичныеДанные(); // SKIP
ОбластиДействия = Новый Массив;
ОбластиДействия.Добавить("https://www.googleapis.com/auth/calendar");
ОбластиДействия.Добавить("https://www.googleapis.com/auth/drive");
ОбластиДействия.Добавить("https://www.googleapis.com/auth/spreadsheets");
Опции = Новый Структура;
Опции.Вставить("auth", Данные);
Опции.Вставить("scope", ОбластиДействия);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gsheets", "ПолучитьТокенServiceАккаунта", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "GoogleSheets", "ПолучитьТокенServiceАккаунта");
КонецПроцедуры
Процедура GoogleSheets_СоздатьКнигу(ПараметрыФункции)
Токен = ПараметрыФункции["Google_Token"];
Наименование = "Тестовая таблица";
МассивЛистов = Новый Массив;
МассивЛистов.Добавить("Лист1");
МассивЛистов.Добавить("Лист2");
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("title", Наименование);
Опции.Вставить("sheets", МассивЛистов);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gsheets", "СоздатьКнигу", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "GoogleSheets", "СоздатьКнигу", , ПараметрыФункции, Наименование, МассивЛистов);
Наименование = "Тестовая таблица (доп.)";
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("title", Наименование);
Опции.Вставить("sheets", МассивЛистов);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gsheets", "СоздатьКнигу", Опции);
OPI_ПолучениеДанныхТестов.Обработать(Результат, "GoogleSheets", "СоздатьКнигу", "Дополнительно", ПараметрыФункции, Наименование);
КонецПроцедуры
Процедура GoogleSheets_ПолучитьКнигу(ПараметрыФункции)
Токен = ПараметрыФункции["Google_Token"];
Идентификатор = ПараметрыФункции["GS_Spreadsheet"];
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("spreadsheet", Идентификатор);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gsheets", "ПолучитьКнигу", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "GoogleSheets", "ПолучитьКнигу");
КонецПроцедуры
Процедура GoogleSheets_КопироватьЛист(ПараметрыФункции)
Токен = ПараметрыФункции["Google_Token"];
Откуда = ПараметрыФункции["GS_Spreadsheet"];
Куда = ПараметрыФункции["GS_Spreadsheet2"];
Лист = ПараметрыФункции["GS_Sheet"];
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("from", Откуда);
Опции.Вставить("to", Куда);
Опции.Вставить("sheet", Лист);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gsheets", "КопироватьЛист", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "GoogleSheets", "КопироватьЛист");
КонецПроцедуры
Процедура GoogleSheets_ДобавитьЛист(ПараметрыФункции)
Токен = ПараметрыФункции["Google_Token"];
Книга = ПараметрыФункции["GS_Spreadsheet"];
Наименование = "Тестовый лист";
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("spreadsheet", Книга);
Опции.Вставить("title", Наименование);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gsheets", "ДобавитьЛист", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "GoogleSheets", "ДобавитьЛист");
КонецПроцедуры
Процедура GoogleSheets_УдалитьЛист(ПараметрыФункции)
Токен = ПараметрыФункции["Google_Token"];
Книга = ПараметрыФункции["GS_Spreadsheet"];
Лист = ПараметрыФункции["GS_Sheet"];
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("spreadsheet", Книга);
Опции.Вставить("sheet", Лист);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gsheets", "УдалитьЛист", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "GoogleSheets", "УдалитьЛист", , Книга);
КонецПроцедуры
Процедура GoogleSheets_ИзменитьНаименованиеКниги(ПараметрыФункции)
Токен = ПараметрыФункции["Google_Token"];
Книга = ПараметрыФункции["GS_Spreadsheet"];
Наименование = "Тестовая таблица (изм.)";
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("spreadsheet", Книга);
Опции.Вставить("title", Наименование);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gsheets", "ИзменитьНаименованиеКниги", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "GoogleSheets", "ИзменитьНаименованиеКниги", , Книга);
КонецПроцедуры
Процедура GoogleSheets_ПолучитьТаблицу(ПараметрыФункции)
Токен = ПараметрыФункции["Google_Token"];
Книга = ПараметрыФункции["GS_Spreadsheet"];
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("spreadsheet", Книга);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gsheets", "ПолучитьКнигу", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "GoogleSheets", "ПолучитьТаблицу");
КонецПроцедуры
Процедура GoogleSheets_УстановитьЗначенияЯчеек(ПараметрыФункции)
Токен = ПараметрыФункции["Google_Token"];
Книга = ПараметрыФункции["GS_Spreadsheet"];
Лист = "Лист2";
СоответствиеЗначений = Новый Соответствие;
СоответствиеЗначений.Вставить("A1", "Это A1");
СоответствиеЗначений.Вставить("A2", "Это A2");
СоответствиеЗначений.Вставить("B2", "Это B2");
СоответствиеЗначений.Вставить("B3", "Это B3");
СоответствиеЗначений.Вставить("A3", "Это A3");
СоответствиеЗначений.Вставить("A4", "Это A4");
СоответствиеЗначений.Вставить("B1", "Это B1");
СоответствиеЗначений.Вставить("B4", "Это B4");
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("spreadsheet", Книга);
Опции.Вставить("data", СоответствиеЗначений);
Опции.Вставить("sheetname", Лист);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gsheets", "УстановитьЗначенияЯчеек", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "GoogleSheets", "УстановитьЗначенияЯчеек", , СоответствиеЗначений.Количество());
КонецПроцедуры
Процедура GoogleSheets_ПолучитьЗначенияЯчеек(ПараметрыФункции)
Токен = ПараметрыФункции["Google_Token"];
Книга = ПараметрыФункции["GS_Spreadsheet"];
Лист = "Лист2";
МассивЯчеек = Новый Массив;
МассивЯчеек.Добавить("B2");
МассивЯчеек.Добавить("A3");
МассивЯчеек.Добавить("B4");
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("spreadsheet", Книга);
Опции.Вставить("cells", МассивЯчеек);
Опции.Вставить("sheetname", Лист);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gsheets", "ПолучитьЗначенияЯчеек", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "GoogleSheets", "ПолучитьЗначенияЯчеек", , МассивЯчеек.Количество());
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("spreadsheet", Книга);
Опции.Вставить("sheetname", Лист);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gsheets", "ПолучитьЗначенияЯчеек", Опции);
OPI_ПолучениеДанныхТестов.Обработать(Результат, "GoogleSheets", "ПолучитьЗначенияЯчеек", "Все", Книга);
КонецПроцедуры
Процедура GoogleSheets_ОчиститьЯчейки(ПараметрыФункции)
Токен = ПараметрыФункции["Google_Token"];
Книга = ПараметрыФункции["GS_Spreadsheet"];
Лист = "Лист2";
МассивЯчеек = Новый Массив;
МассивЯчеек.Добавить("B2");
МассивЯчеек.Добавить("A3");
МассивЯчеек.Добавить("B4");
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("spreadsheet", Книга);
Опции.Вставить("cells", МассивЯчеек);
Опции.Вставить("sheetname", Лист);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gsheets", "ОчиститьЯчейки", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "GoogleSheets", "ОчиститьЯчейки", , МассивЯчеек.Количество());
КонецПроцедуры
#КонецОбласти // GoogleSheets
#КонецОбласти // АтомарныеТесты
#КонецОбласти // СлужебныеПроцедурыИФункции
#Region Alternate
Procedure GT_Authorization() Export
ГТ_Авторизация();
EndProcedure
Procedure GT_CreateTable() Export
ГТ_СоздатьТаблицу();
EndProcedure
Procedure GT_FillClearCells() Export
ГТ_ЗаполнитьОчиститьЯчейки();
EndProcedure
#EndRegion
@@ -1,3 +1,5 @@
// OneScript: ./OInt/tests/Modules/OPItc_GoogleWorkspace.os
// MIT License
// Copyright (c) 2023-2026 Anton Tsitavets
@@ -9,7 +11,7 @@
// 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
// 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
@@ -22,6 +24,8 @@
// https://github.com/Bayselonarrend/OpenIntegrations
// Набор тестов для YAxUnit
// BSLLS:Typo-off
// BSLLS:LatinAndCyrillicSymbolInWord-off
// BSLLS:IncorrectLineBreak-off
@@ -63,6 +67,155 @@
//@skip-check missing-temporary-file-deletion
//@skip-check module-unused-method
// #Использовать oint
// #Использовать asserts
// #Использовать "internal"
//#Использовать "../../tools/main"
//#Использовать "../../tools/http"
//#Использовать "../../api"
//#Использовать asserts
//#Использовать "internal"
// Для YaxUnit
Процедура ИсполняемыеСценарии() Экспорт
OPI_ПолучениеДанныхТестов.СформироватьТестыЯкс("GoogleWorkspace");
КонецПроцедуры
// Для Asserts
Функция ПолучитьСписокТестов(ЮнитТестирование) Экспорт
Возврат OPI_ПолучениеДанныхТестов.СформироватьТестыАссертс("GoogleWorkspace");
КонецФункции
#Область СлужебныйПрограммныйИнтерфейс
#Область ЗапускаемыеТесты
#Область GoogleWorkspace
Процедура ГВ_Авторизация() Экспорт
ПараметрыТеста = Новый Структура;
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_ClientID" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_ClientSecret", ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_Code" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_Refresh" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_ServiceData" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Access_Token" , ПараметрыТеста);
GoogleWorkspace_СформироватьСсылкуПолученияКода(ПараметрыТеста);
GoogleWorkspace_ПолучитьТокенПоКоду(ПараметрыТеста);
GoogleWorkspace_ОбновитьТокен(ПараметрыТеста);
GoogleWorkspace_ПолучитьТокенServiceАккаунта(ПараметрыТеста);
КонецПроцедуры
#КонецОбласти // GoogleWorkspace
#КонецОбласти // ЗапускаемыеТесты
#КонецОбласти // СлужебныйПрограммныйИнтерфейс
#Область СлужебныеПроцедурыИФункции
#Область АтомарныеТесты
#Область GoogleWorkspace
Процедура GoogleWorkspace_СформироватьСсылкуПолученияКода(ПараметрыФункции)
ClientID = ПараметрыФункции["Google_ClientID"];
Опции = Новый Структура;
Опции.Вставить("id", ClientID);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("google", "СформироватьСсылкуПолученияКода", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "GoogleWorkspace", "СформироватьСсылкуПолученияКода");
КонецПроцедуры
Процедура GoogleWorkspace_ПолучитьТокенПоКоду(ПараметрыФункции)
ClientID = ПараметрыФункции["Google_ClientID"];
ClientSecret = ПараметрыФункции["Google_ClientSecret"];
Code = ПараметрыФункции["Google_Code"];
Опции = Новый Структура;
Опции.Вставить("id", ClientID);
Опции.Вставить("secret", ClientSecret);
Опции.Вставить("code", Code);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("google", "ПолучитьТокенПоКоду", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "GoogleWorkspace", "ПолучитьТокенПоКоду");
КонецПроцедуры
Процедура GoogleWorkspace_ОбновитьТокен(ПараметрыФункции)
ClientID = ПараметрыФункции["Google_ClientID"];
ClientSecret = ПараметрыФункции["Google_ClientSecret"];
RefreshToken = ПараметрыФункции["Google_Refresh"];
Опции = Новый Структура;
Опции.Вставить("id", ClientID);
Опции.Вставить("secret", ClientSecret);
Опции.Вставить("refresh", RefreshToken);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("google", "ОбновитьТокен", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "GoogleWorkspace", "ОбновитьТокен");
КонецПроцедуры
Процедура GoogleWorkspace_ПолучитьТокенServiceАккаунта(ПараметрыФункции)
Данные = ПараметрыФункции["Google_ServiceData"]; // URL, двоичные данные, файл или коллекция
Токен = ПараметрыФункции["Access_Token"]; // SKIP
Данные = OPI_ЗапросыHTTP // SKIP
.НовыйЗапрос() // SKIP
.Инициализировать(Данные) // SKIP
.ДобавитьBearerАвторизацию(Токен) // SKIP
.ОбработатьЗапрос("GET") // SKIP
.ВернутьОтветКакДвоичныеДанные(); // SKIP
ОбластиДействия = Новый Массив;
ОбластиДействия.Добавить("https://www.googleapis.com/auth/calendar");
ОбластиДействия.Добавить("https://www.googleapis.com/auth/drive");
ОбластиДействия.Добавить("https://www.googleapis.com/auth/spreadsheets");
Опции = Новый Структура;
Опции.Вставить("auth", Данные);
Опции.Вставить("scope", ОбластиДействия);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("google", "ПолучитьТокенServiceАккаунта", Опции);
// END
OPI_ПолучениеДанныхТестов.Обработать(Результат, "GoogleWorkspace", "ПолучитьТокенServiceАккаунта");
КонецПроцедуры
#КонецОбласти // GoogleWorkspace
#КонецОбласти // АтомарныеТесты
#КонецОбласти // СлужебныеПроцедурыИФункции
#Region Alternate
Procedure GW_Auth() Export
ГВ_Авторизация();
EndProcedure
#EndRegion
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More