1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2026-06-20 09:19:27 +02:00

Доработка тестов

This commit is contained in:
Anton Titovets
2025-12-24 16:01:50 +03:00
parent 6811535aac
commit 376a4f2310
3 changed files with 180 additions and 1 deletions
@@ -1,4 +1,4 @@
// OneScript: ./OInt/tools/Modules/internal/Modules/OPI_Инструменты.os
// OneScript: ./OInt/tools/Modules/internal/Modules/OPI_Инструменты.os
// MIT License
@@ -673,6 +673,52 @@
КонецФункции
Функция СравнитьДвеКоллекции(Знач ПерваяКоллекция, Знач ВтораяКоллекция) Экспорт
Если ТипЗнч(ПерваяКоллекция) <> ТипЗнч(ВтораяКоллекция) Тогда
Если Не (ЭтоКоллекция(ПерваяКоллекция, Истина) И ЭтоКоллекция(ВтораяКоллекция, Истина)) Тогда
Возврат Ложь;
КонецЕсли;
КонецЕсли;
Попытка
Если ЭтоКоллекция(ПерваяКоллекция, Истина) Тогда
Для Каждого ЭлементКоллекции Из ПерваяКоллекция Цикл
Если Не СравнитьДвеКоллекции(ЭлементКоллекции.Значение, ВтораяКоллекция[ЭлементКоллекции.Ключ]) Тогда
Возврат Ложь;
КонецЕсли;
КонецЦикла;
ИначеЕсли ЭтоКоллекция(ПерваяКоллекция) Тогда
Для Н = 0 По ПерваяКоллекция.ВГраница() Цикл
Если Не СравнитьДвеКоллекции(ПерваяКоллекция[Н], ВтораяКоллекция[Н]) Тогда
Возврат Ложь;
КонецЕсли;
КонецЦикла;
Иначе
Если ПерваяКоллекция <> ВтораяКоллекция Тогда
Возврат Ложь;
КонецЕсли;
КонецЕсли;
Исключение
Возврат Ложь;
КонецПопытки;
Возврат Истина;
КонецФункции
#КонецОбласти
#Область OneScript
@@ -12812,6 +12812,30 @@
Функция Проверка_GRPC_ОтправитьСообщение(Знач Результат, Знач Вариант, Закрытие = Неопределено)
ОжидаетЧто(Результат["result"]).Равно(Истина);
ОжидаетЧто(Закрытие["result"]).Равно(Истина);
Возврат Результат;
КонецФункции
Функция Проверка_GRPC_ПолучитьСообщение(Знач Результат, Знач Вариант, Закрытие = Неопределено, Данные = Неопределено)
ОжидаетЧто(Результат["result"]).Равно(Истина);
ОжидаетЧто(Закрытие["result"]).Равно(Истина);
ОжидаетЧто(OPI_Инструменты.СравнитьДвеКоллекции(Результат["message"], Данные)).Равно(Истина);
Возврат Результат;
КонецФункции
Функция Проверка_GRPC_ЗакрытьПоток(Знач Результат, Знач Вариант)
Если Вариант = "Отправка" Тогда
ОжидаетЧто(Результат["result"]).Равно(Ложь);
Иначе
ОжидаетЧто(Результат["result"]).Равно(Истина);
КонецЕсли;
Возврат Результат;
КонецФункции
+109
View File
@@ -3338,6 +3338,8 @@
GRPC_ИнициализироватьКлиентскийПоток(ПараметрыТеста);
GRPC_ИнициализироватьДвунаправленныйПоток(ПараметрыТеста);
GRPC_ОтправитьСообщение(ПараметрыТеста);
GRPC_ПолучитьСообщение(ПараметрыТеста);
GRPC_ЗакрытьПоток(ПараметрыТеста);
КонецПроцедуры
@@ -26568,6 +26570,113 @@
КонецПроцедуры
Процедура GRPC_ПолучитьСообщение(ПараметрыФункции)
Адрес = ПараметрыФункции["GRPC_Address"];
Proto1 = ПараметрыФункции["GRPC_ProtoImport"]; // Строка, путь к файлу или URL
Proto2 = ПараметрыФункции["GRPC_ProtoTS"]; // Строка, путь к файлу или URL
Схемы = Новый Соответствие;
Схемы.Вставить("main.proto" , Proto1); // Основной
Схемы.Вставить("my_types.proto", Proto2); // Для импорта в основной
Параметры = OPI_GRPC.ПолучитьПараметрыСоединения(Адрес, Схемы);
Tls = OPI_GRPC.ПолучитьНастройкиTls(Ложь);
Сервис = "grpcbin.GRPCBin";
Метод = "DummyServerStream";
Соединение = OPI_GRPC.ОткрытьСоединение(Параметры, Tls);
Если Не OPI_GRPC.ЭтоКоннектор(Соединение) Тогда
ВызватьИсключение Соединение["error"];
КонецЕсли;
МассивСтрок = Новый Массив;
МассивСтрок.Добавить("one");
МассивСтрок.Добавить("two");
МассивСтрок.Добавить("three");
Данные = Новый Соответствие;
Данные.Вставить("f_string" , "Test message");
Данные.Вставить("f_int32" , 123);
Данные.Вставить("f_bool" , Истина);
Данные.Вставить("f_strings", МассивСтрок);
Данные.Вставить("f_sub" , Новый Структура("f_string", "Nested value"));
Результат = OPI_GRPC.ИнициализироватьСерверныйПоток(Соединение, Сервис, Метод, Данные);
Если Не Результат["result"] Тогда
ВызватьИсключение Результат["error"];
Иначе
IDПотока = Результат["streamId"];
КонецЕсли;
Результат = OPI_GRPC.ПолучитьСообщение(Соединение, IDПотока); // <---
Закрытие = OPI_GRPC.ЗакрытьПоток(Соединение, IDПотока);
// END
Обработать(Результат, "GRPC", "ПолучитьСообщение", , Закрытие, Данные);
КонецПроцедуры
Процедура GRPC_ЗакрытьПоток(ПараметрыФункции)
Адрес = ПараметрыФункции["GRPC_Address"];
Proto1 = ПараметрыФункции["GRPC_ProtoImport"]; // Строка, путь к файлу или URL
Proto2 = ПараметрыФункции["GRPC_ProtoTS"]; // Строка, путь к файлу или URL
Схемы = Новый Соответствие;
Схемы.Вставить("main.proto" , Proto1); // Основной
Схемы.Вставить("my_types.proto", Proto2); // Для импорта в основной
Параметры = OPI_GRPC.ПолучитьПараметрыСоединения(Адрес, Схемы);
Tls = OPI_GRPC.ПолучитьНастройкиTls(Ложь);
Сервис = "grpcbin.GRPCBin";
Метод = "DummyServerStream";
Соединение = OPI_GRPC.ОткрытьСоединение(Параметры, Tls);
Если Не OPI_GRPC.ЭтоКоннектор(Соединение) Тогда
ВызватьИсключение Соединение["error"];
КонецЕсли;
МассивСтрок = Новый Массив;
МассивСтрок.Добавить("one");
МассивСтрок.Добавить("two");
МассивСтрок.Добавить("three");
Данные = Новый Соответствие;
Данные.Вставить("f_string" , "Test message");
Данные.Вставить("f_int32" , 123);
Данные.Вставить("f_bool" , Истина);
Данные.Вставить("f_strings", МассивСтрок);
Данные.Вставить("f_sub" , Новый Структура("f_string", "Nested value"));
Результат = OPI_GRPC.ИнициализироватьСерверныйПоток(Соединение, Сервис, Метод, Данные);
Если Не Результат["result"] Тогда
ВызватьИсключение Результат["error"];
Иначе
IDПотока = Результат["streamId"];
КонецЕсли;
Результат = OPI_GRPC.ЗакрытьПоток(Соединение, IDПотока); // <---
// END
Обработать(Результат, "GRPC", "ЗакрытьПоток");
Результат = OPI_GRPC.ПолучитьСообщение(Соединение, IDПотока);
Обработать(Результат, "GRPC", "ЗакрытьПоток", "Отправка");
КонецПроцедуры
#КонецОбласти
#КонецОбласти