You've already forked OpenIntegrations
mirror of
https://github.com/Bayselonarrend/OpenIntegrations.git
synced 2026-06-20 09:19:27 +02:00
Доработка тестов
This commit is contained in:
@@ -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
@@ -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", "ЗакрытьПоток", "Отправка");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
Reference in New Issue
Block a user