From c56f4f53e4bfc542ae5cfd60509782f27b7d0cc5 Mon Sep 17 00:00:00 2001 From: ekuznetsov Date: Mon, 25 Nov 2024 01:09:02 +0300 Subject: [PATCH 1/5] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=BC=D0=BE=D0=BA=D0=B0=20=D1=82=D0=B8?= =?UTF-8?q?=D0=BF=D0=B0=20=D0=A1=D0=BE=D0=BE=D0=B1=D1=89=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D0=B5=D0=A1=D0=B5=D1=80=D0=B2=D0=B8=D1=81=D0=B0=D0=98=D0=BD?= =?UTF-8?q?=D1=82=D0=B5=D0=B3=D1=80=D0=B0=D1=86=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../docs/features/mocking/mocking.md | 35 +++ .../Module.bsl" | 10 + .../src/Configuration/Configuration.mdo | 1 + .../ObjectModule.bsl" | 259 ++++++++++++++++++ ...1\200\320\260\321\206\320\270\320\270.mdo" | 13 + ...0\262\320\260\320\275\320\270\320\265.mdo" | 1 + ...0\270\321\207\320\275\321\213\320\271.mdo" | 1 + .../Module.bsl" | 93 +++++++ ...1\200\320\260\321\206\320\270\320\270.mdo" | 9 + tests/src/Configuration/Configuration.mdo | 1 + 10 files changed, 423 insertions(+) create mode 100644 "exts/yaxunit/src/DataProcessors/\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\270\321\201\320\260\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/ObjectModule.bsl" create mode 100644 "exts/yaxunit/src/DataProcessors/\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\270\321\201\320\260\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\270\321\201\320\260\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270.mdo" create mode 100644 "tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\270\321\201\320\260\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Module.bsl" create mode 100644 "tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\270\321\201\320\260\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/\320\236\320\261\321\200_\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\270\321\201\320\260\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270.mdo" diff --git a/documentation/docs/features/mocking/mocking.md b/documentation/docs/features/mocking/mocking.md index d240474ee..ada1e0899 100644 --- a/documentation/docs/features/mocking/mocking.md +++ b/documentation/docs/features/mocking/mocking.md @@ -147,6 +147,41 @@ sequenceDiagram * `ЮТест.Данные().ADORecordSet` - принимает информацию о колонках * `Добавить()` - добавляет новую строку значений +### `СообщениеСервисаИнтеграции` + +При тестировании интеграций с помощью 1С:Шина есть потребность тестировать сбор/разбор сообщений сервисов интеграции. + +У `СообщениеСервисаИнтеграции` отсутствует конструктор, поэтому был добавлен [`ЮТест.Данные().СообщениеСервисаИнтеграции`](/api/ЮТТестовыеДанные#IntegrationServiceMessage) реализующий интерфейс `СообщениеСервисаИнтеграции` + +Возможности: + +* Реализует методы `СообщениеСервисаИнтеграции` + * Свойства + * `ДатаОтправки` \ `SendDate` + * `ДатаУстаревания` \ `ExpirationDate` + * `Идентификатор` \ `ID` + * `ИдентификаторСообщенияЗапроса` \ `CorrelationId` + * `КодОтправителя` \ `SenderCode` + * `КодПолучателя` \ `RecipientCode` + * `Параметры` \ `Parameters` + * `РазмерТела` \ `BodySize` + * Методы + * `ПолучитьТелоКакПоток()` \ `GetBodyAsStream()` +* Имеет методы настройки, реализованные в виде [текучих выражений](/docs/getting-started/fluent-api.md) + * Установка тела + * `УстановитьТелоКакДвоичныеДанные()` + * `УстановитьТелоКакСтроку()` + * `УстановитьТелоКакСтрокуJSON()` + * Методы установки свойств + * `ДобавитьПараметр()` + * `ДатаОтправки()` + * `ДатаУстаревания()` + * `Идентификатор()` + * `ИдентификаторСообщенияЗапроса()` + * `КодОтправителя()` + * `КодПолучателя()` + * `РазмерТела()` + ### Создание своих моков При возникновении подобных ситуаций, когда для тестов вам нужны объекты с какой-то логикой/методами, по аналогии с примерами выше вы без проблем сможете создать нужные вам моки. diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" index 791dca4d2..dc3af5871 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" @@ -1095,6 +1095,16 @@ КонецФункции +#Если Сервер Тогда +// Возвращает мок для `СообщениеСервисаИнтеграции`. +// +// Возвращаемое значение: +// ОбработкаОбъект.ЮТСообщениеСервисаИнтеграции - Мок +Функция СообщениеСервисаИнтеграции() Экспорт + Возврат Обработки.ЮТСообщениеСервисаИнтеграции.Создать(); +КонецФункции +#КонецЕсли + #КонецОбласти #Область СлужебныеПроцедурыИФункции diff --git a/exts/yaxunit/src/Configuration/Configuration.mdo b/exts/yaxunit/src/Configuration/Configuration.mdo index 19d40b65d..edd30c12d 100644 --- a/exts/yaxunit/src/Configuration/Configuration.mdo +++ b/exts/yaxunit/src/Configuration/Configuration.mdo @@ -162,5 +162,6 @@ DataProcessor.ЮТКонструкторДвижений DataProcessor.ЮТКонструкторОбъектаXDTO DataProcessor.ЮТКонструкторТестовыхДанных + DataProcessor.ЮТСообщениеСервисаИнтеграции DataProcessor.ЮТЮнитТесты diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\270\321\201\320\260\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/ObjectModule.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\270\321\201\320\260\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/ObjectModule.bsl" new file mode 100644 index 000000000..d3a3e1721 --- /dev/null +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\270\321\201\320\260\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/ObjectModule.bsl" @@ -0,0 +1,259 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//©///////////////////////////////////////////////////////////////////////////©// + +#Если Сервер Тогда + +#Область ОписаниеПеременных + +//@skip-check object-module-export-variable +Перем ДатаОтправки Экспорт; +//@skip-check object-module-export-variable +Перем ДатаУстаревания Экспорт; +//@skip-check object-module-export-variable +Перем Идентификатор Экспорт; +//@skip-check object-module-export-variable +Перем ИдентификаторСообщенияЗапроса Экспорт; +//@skip-check object-module-export-variable +Перем КодОтправителя Экспорт; +//@skip-check object-module-export-variable +Перем КодПолучателя Экспорт; +//@skip-check object-module-export-variable +Перем Параметры Экспорт; +//@skip-check object-module-export-variable +Перем РазмерТела Экспорт; + +Перем Тело; + +#КонецОбласти + +#Область ПрограммныйИнтерфейс + +// Возвращает тело как поток. +// +// Возвращаемое значение: +// Поток - Тело +Функция ПолучитьТелоКакПоток() Экспорт + + Возврат ПолучитьТелоКакДвоичныеДанные().ОткрытьПотокДляЧтения(); + +КонецФункции + +// Устанавливает тело как двоичные данные. +// При получении тела в другом формате происходит конвертация +// +// Параметры: +// Данные - ДвоичныеДанные +// +// Возвращаемое значение: +// ОбработкаОбъект.ЮТСообщениеСервисаИнтеграции - Мок +Функция УстановитьТелоКакДвоичныеДанные(Данные) Экспорт + + Тело = Данные; + Возврат ЭтотОбъект; + +КонецФункции + +// Устанавливает тело как строку. +// При получении тела в другом формате происходит конвертация +// +// Параметры: +// Строка - Строка +// +// Возвращаемое значение: +// ОбработкаОбъект.ЮТСообщениеСервисаИнтеграции - Мок +Функция УстановитьТелоКакСтроку(Строка) Экспорт + + Тело = Строка; + Возврат ЭтотОбъект; + +КонецФункции + +// Устанавливает тело как строку JSON. +// Сериализует переданный объект в строку JSON и сохраняет в тело +// При получении тела в другом формате происходит конвертация +// +// Параметры: +// Данные - Произвольный +// +// Возвращаемое значение: +// ОбработкаОбъект.ЮТСообщениеСервисаИнтеграции - Мок +Функция УстановитьТелоКакСтрокуJSON(Данные) Экспорт + + ЗаписьJSON = Новый ЗаписьJSON(); + ЗаписьJSON.УстановитьСтроку(); + ЗаписатьJSON(ЗаписьJSON, Данные); + + Тело = ЗаписьJSON.Закрыть(); + + Возврат ЭтотОбъект; + +КонецФункции + +// Добавляет параметр. +// +// Параметры: +// ИмяПараметра - Строка +// Значение - Строка +// +// Возвращаемое значение: +// ОбработкаОбъект.ЮТСообщениеСервисаИнтеграции - Мок +Функция ДобавитьПараметр(ИмяПараметра, Значение) Экспорт + + Параметры.Вставить(ИмяПараметра, Значение); + Возврат ЭтотОбъект; + +КонецФункции + +// Устанавливает дату отправки. +// +// Параметры: +// Значение - Дата +// +// Возвращаемое значение: +// ОбработкаОбъект.ЮТСообщениеСервисаИнтеграции - Мок +Функция ДатаОтправки(Значение) Экспорт + + ДатаОтправки = Значение; + Возврат ЭтотОбъект; + +КонецФункции + +// Устанавливает дату устаревания. +// +// Параметры: +// Значение - Дата +// +// Возвращаемое значение: +// ОбработкаОбъект.ЮТСообщениеСервисаИнтеграции - Мок +Функция ДатаУстаревания(Значение) Экспорт + + ДатаУстаревания = Значение; + Возврат ЭтотОбъект; + +КонецФункции + +// Устанавливает идентификатор сообщения. +// +// Параметры: +// Значение - УникальныйИдентификатор +// +// Возвращаемое значение: +// ОбработкаОбъект.ЮТСообщениеСервисаИнтеграции - Мок +Функция Идентификатор(Значение) Экспорт + + Идентификатор = Значение; + Возврат ЭтотОбъект; + +КонецФункции + +// Устанавливает идентификатор сообщения запроса. +// +// Параметры: +// Значение - УникальныйИдентификатор +// +// Возвращаемое значение: +// ОбработкаОбъект.ЮТСообщениеСервисаИнтеграции - Мок +Функция ИдентификаторСообщенияЗапроса(Значение) Экспорт + + ИдентификаторСообщенияЗапроса = Значение; + Возврат ЭтотОбъект; + +КонецФункции + +// Устанавливает код отправителя. +// +// Параметры: +// Значение - Строка +// +// Возвращаемое значение: +// ОбработкаОбъект.ЮТСообщениеСервисаИнтеграции - Мок +Функция КодОтправителя(Значение) Экспорт + + КодОтправителя = Значение; + Возврат ЭтотОбъект; + +КонецФункции + +// Устанавливает код получателя. +// +// Параметры: +// Значение - Строка +// +// Возвращаемое значение: +// ОбработкаОбъект.ЮТСообщениеСервисаИнтеграции - Мок +Функция КодПолучателя(Значение) Экспорт + + КодПолучателя = Значение; + Возврат ЭтотОбъект; + +КонецФункции + +// Устанавливает размер тела +// +// Параметры: +// Значение - Число +// +// Возвращаемое значение: +// ОбработкаОбъект.ЮТСообщениеСервисаИнтеграции - Мок +Функция РазмерТела(Значение) Экспорт + + РазмерТела = Значение; + Возврат ЭтотОбъект; + +КонецФункции + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Функция ПолучитьТелоКакДвоичныеДанные() + + ТипТела = ТипЗнч(Тело); + + Если Тело = Неопределено Тогда + Возврат ПолучитьДвоичныеДанныеИзBase64Строки(""); + ИначеЕсли ТипТела = Тип("ДвоичныеДанные") Тогда + Возврат Тело; + ИначеЕсли ТипТела = Тип("Строка") Тогда + Возврат ПолучитьДвоичныеДанныеИзСтроки(Тело); + КонецЕсли; + +КонецФункции + +Процедура Инициализировать() + + ДатаОтправки = Дата(1, 1, 1); + ДатаУстаревания = Дата(1, 1, 1); + Идентификатор = Новый УникальныйИдентификатор("00000000-0000-0000-0000-000000000000"); + ИдентификаторСообщенияЗапроса = Новый УникальныйИдентификатор("00000000-0000-0000-0000-000000000000"); + КодОтправителя = ""; + КодПолучателя = ""; + РазмерТела = 0; + Параметры = Новый Соответствие(); + +КонецПроцедуры + +#КонецОбласти + +#Область Инициализация + +Инициализировать(); + +#КонецОбласти + +#КонецЕсли diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\270\321\201\320\260\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\270\321\201\320\260\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270.mdo" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\270\321\201\320\260\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\270\321\201\320\260\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270.mdo" new file mode 100644 index 000000000..d096b885d --- /dev/null +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\270\321\201\320\260\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\270\321\201\320\260\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270.mdo" @@ -0,0 +1,13 @@ + + + + + + + ЮТСообщениеСервисаИнтеграции + + ru + Мок для СообщениеCервисаBнтеграции + + true + diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\234\320\276\320\272\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265/\320\256\320\242\320\234\320\276\320\272\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265.mdo" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\234\320\276\320\272\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265/\320\256\320\242\320\234\320\276\320\272\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265.mdo" index e65bdd9ec..46fe81219 100644 --- "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\234\320\276\320\272\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265/\320\256\320\242\320\234\320\276\320\272\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265.mdo" +++ "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\234\320\276\320\272\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265/\320\256\320\242\320\234\320\276\320\272\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265.mdo" @@ -18,5 +18,6 @@ DataProcessor.ЮТHTTPServiceRequest DataProcessor.ЮТHTTPСервисЗапрос DataProcessor.ЮТRecordSet + DataProcessor.ЮТСообщениеСервисаИнтеграции Subsystem.ЮТДвижок diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\321\203\320\261\320\273\320\270\321\207\320\275\321\213\320\271/\320\256\320\242\320\237\321\203\320\261\320\273\320\270\321\207\320\275\321\213\320\271.mdo" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\321\203\320\261\320\273\320\270\321\207\320\275\321\213\320\271/\320\256\320\242\320\237\321\203\320\261\320\273\320\270\321\207\320\275\321\213\320\271.mdo" index 766d0179e..459583da0 100644 --- "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\321\203\320\261\320\273\320\270\321\207\320\275\321\213\320\271/\320\256\320\242\320\237\321\203\320\261\320\273\320\270\321\207\320\275\321\213\320\271.mdo" +++ "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\321\203\320\261\320\273\320\270\321\207\320\275\321\213\320\271/\320\256\320\242\320\237\321\203\320\261\320\273\320\270\321\207\320\275\321\213\320\271.mdo" @@ -51,4 +51,5 @@ DataProcessor.ЮТКонструкторОбъектаXDTO DataProcessor.ЮТКонструкторТестовыхДанных DataProcessor.ЮТЮнитТесты + DataProcessor.ЮТСообщениеСервисаИнтеграции diff --git "a/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\270\321\201\320\260\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Module.bsl" "b/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\270\321\201\320\260\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Module.bsl" new file mode 100644 index 000000000..5db2f3851 --- /dev/null +++ "b/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\270\321\201\320\260\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Module.bsl" @@ -0,0 +1,93 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// Copyright 2021-2024 BIA-Technologies Limited Liability Company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//©///////////////////////////////////////////////////////////////////////////©// + +#Область СлужебныйПрограммныйИнтерфейс + +Процедура ИсполняемыеСценарии() Экспорт + + ЮТТесты.Тег("Мокирование") + .ДобавитьТест("Конструктор") + .ДобавитьТест("УстановитьТело") + ; + +КонецПроцедуры + +Процедура Конструктор() Экспорт + + Идентификатор = Новый УникальныйИдентификатор("00000000-0000-0000-0000-000000000001"); + ИдентификаторСообщенияСообщениеа = Новый УникальныйИдентификатор("00000000-0000-0000-0000-000000000002"); + + Сообщение = ЮТест.Данные().СообщениеСервисаИнтеграции() + .ДобавитьПараметр("Параметр", "Параметр") + .ДатаОтправки(Дата(1, 1, 1)) + .ДатаУстаревания(Дата(2, 1, 1)) + .Идентификатор(Идентификатор) + .ИдентификаторСообщенияСообщениеа(ИдентификаторСообщенияСообщениеа) + .КодОтправителя("Sender") + .КодПолучателя("Recipient") + .РазмерТела(123); + + ЮТест.ОжидаетЧто(Сообщение) + .Свойство("Параметры.Параметр").Равно("Параметр") + .Свойство("ДатаОтправки").Равно(Дата(1, 1, 1)) + .Свойство("ДатаУстаревания").Равно(Дата(2, 1, 1)) + .Свойство("Идентификатор").Равно(Идентификатор) + .Свойство("ИдентификаторСообщенияСообщениеа").Равно(ИдентификаторСообщенияСообщениеа) + .Свойство("КодОтправителя").Равно("Sender") + .Свойство("КодПолучателя").Равно("Recipient") + .Свойство("РазмерТела").Равно(123); + +КонецПроцедуры + +Процедура УстановитьТело() Экспорт + + Описание = "Тело не установлено"; + Сообщение = ЮТест.Данные().СообщениеСервисаИнтеграции(); + ЮТест.ОжидаетЧто(Сообщение, Описание) + .Метод("ПолучитьТелоКакПоток").НеВыбрасываетИсключение(); + ПотокПоТелу = Сообщение.ПолучитьТелоКакПоток(); + ЮТест.ОжидаетЧто(ПотокПоТелу, Описание + ". Проверка типа").ИмеетТип("Поток"); + Текст = Новый ЧтениеТекста(ПотокПоТелу, КодировкаТекста.UTF8); + ЮТест.ОжидаетЧто(Текст.ПрочитатьСтроку(), Описание + ". Проверка пустого").ЭтоНеопределено(); + + Описание = "Тело установлено из двоичных данных"; + Тело = "Тело"; + ДвоичныеДанные = ПолучитьДвоичныеДанныеИзСтроки(Тело); + Сообщение = ЮТест.Данные().СообщениеСервисаИнтеграции() + .УстановитьТелоКакДвоичныеДанные(ДвоичныеДанные); + Текст = Новый ЧтениеТекста(Сообщение.ПолучитьТелоКакПоток(), КодировкаТекста.UTF8); + ЮТест.ОжидаетЧто(Текст.ПрочитатьСтроку(), Описание) + .Равно(Тело); + + Описание = "Тело установлено из строки"; + Сообщение = ЮТест.Данные().СообщениеСервисаИнтеграции() + .УстановитьТелоКакСтроку(Тело); + Текст = Новый ЧтениеТекста(Сообщение.ПолучитьТелоКакПоток(), КодировкаТекста.UTF8); + ЮТест.ОжидаетЧто(Текст.ПрочитатьСтроку(), Описание) + .Равно(Тело); + + Описание = "Тело установлено из JSON"; + Сообщение = ЮТест.Данные().СообщениеСервисаИнтеграции() + .УстановитьТелоКакСтрокуJSON(Новый Массив()); + Текст = Новый ЧтениеТекста(Сообщение.ПолучитьТелоКакПоток(), КодировкаТекста.UTF8); + ЮТест.ОжидаетЧто(Текст.ПрочитатьСтроку(), Описание) + .Равно("[]"); + +КонецПроцедуры + +#КонецОбласти diff --git "a/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\270\321\201\320\260\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/\320\236\320\261\321\200_\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\270\321\201\320\260\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270.mdo" "b/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\270\321\201\320\260\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/\320\236\320\261\321\200_\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\270\321\201\320\260\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270.mdo" new file mode 100644 index 000000000..6a653e34c --- /dev/null +++ "b/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\270\321\201\320\260\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/\320\236\320\261\321\200_\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\270\321\201\320\260\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270.mdo" @@ -0,0 +1,9 @@ + + + Обр_ЮТСообщениеСервисаИнтеграции + + ru + Обр СообщениеСервисаИнтеграции + + true + diff --git a/tests/src/Configuration/Configuration.mdo b/tests/src/Configuration/Configuration.mdo index f11d32b7a..47aae0ebf 100644 --- a/tests/src/Configuration/Configuration.mdo +++ b/tests/src/Configuration/Configuration.mdo @@ -32,6 +32,7 @@ CommonModule.Обр_ЮТRecordSet_МО CommonModule.Обр_ЮТКонструкторДвижений_МО CommonModule.Обр_ЮТКонструкторОбъектаXDTO_МО + CommonModule.Обр_ЮТСообщениеСервисаИнтеграции CommonModule.ОМ_ДТОткрытиеФормСлужебныйВызовСервера CommonModule.ОМ_Мокито CommonModule.ОМ_МокитоОбучение From 4f1250e0a35d39c6251bf31ae7ad645ec371afed Mon Sep 17 00:00:00 2001 From: ekuznetsov Date: Mon, 25 Nov 2024 01:30:54 +0300 Subject: [PATCH 2/5] =?UTF-8?q?=D0=A4=D0=B8=D0=BA=D1=81=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git "a/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\270\321\201\320\260\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Module.bsl" "b/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\270\321\201\320\260\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Module.bsl" index 5db2f3851..4367dff49 100644 --- "a/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\270\321\201\320\260\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\270\321\201\320\260\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Module.bsl" @@ -30,14 +30,14 @@ Процедура Конструктор() Экспорт Идентификатор = Новый УникальныйИдентификатор("00000000-0000-0000-0000-000000000001"); - ИдентификаторСообщенияСообщениеа = Новый УникальныйИдентификатор("00000000-0000-0000-0000-000000000002"); + ИдентификаторСообщенияЗапроса = Новый УникальныйИдентификатор("00000000-0000-0000-0000-000000000002"); Сообщение = ЮТест.Данные().СообщениеСервисаИнтеграции() .ДобавитьПараметр("Параметр", "Параметр") .ДатаОтправки(Дата(1, 1, 1)) .ДатаУстаревания(Дата(2, 1, 1)) .Идентификатор(Идентификатор) - .ИдентификаторСообщенияСообщениеа(ИдентификаторСообщенияСообщениеа) + .ИдентификаторСообщенияЗапроса(ИдентификаторСообщенияЗапроса) .КодОтправителя("Sender") .КодПолучателя("Recipient") .РазмерТела(123); @@ -47,7 +47,7 @@ .Свойство("ДатаОтправки").Равно(Дата(1, 1, 1)) .Свойство("ДатаУстаревания").Равно(Дата(2, 1, 1)) .Свойство("Идентификатор").Равно(Идентификатор) - .Свойство("ИдентификаторСообщенияСообщениеа").Равно(ИдентификаторСообщенияСообщениеа) + .Свойство("ИдентификаторСообщенияЗапроса").Равно(ИдентификаторСообщенияЗапроса) .Свойство("КодОтправителя").Равно("Sender") .Свойство("КодПолучателя").Равно("Recipient") .Свойство("РазмерТела").Равно(123); From d54f0d9bfb1b6d7c3bcea3c0c71319874a049023 Mon Sep 17 00:00:00 2001 From: ekuznetsov Date: Mon, 25 Nov 2024 23:38:59 +0300 Subject: [PATCH 3/5] =?UTF-8?q?+=20=D1=82=D0=B5=D1=81=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 23e2d5463..992c0f920 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -90,7 +90,7 @@ Наборы = ЮТЧитательСлужебный.ЗагрузитьТесты(ПараметрыЗапуска); ЮТест.ОжидаетЧто(Наборы, "Прочитанные наборы расширения tests") - .ИмеетДлину(37); + .ИмеетДлину(38); КонецПроцедуры From fb270365df63c605b8f25aa0702ed1a55650986a Mon Sep 17 00:00:00 2001 From: ekuznetsov Date: Tue, 26 Nov 2024 00:04:06 +0300 Subject: [PATCH 4/5] =?UTF-8?q?=D0=97=D0=B0=D0=BC=D0=B5=D1=87=D0=B0=D0=BD?= =?UTF-8?q?=D0=B8=D1=8F=20=D1=81=D0=BE=D0=BD=D0=B0=D1=80=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ObjectModule.bsl" | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\270\321\201\320\260\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/ObjectModule.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\270\321\201\320\260\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/ObjectModule.bsl" index d3a3e1721..a6b71daf5 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\270\321\201\320\260\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/ObjectModule.bsl" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\270\321\201\320\260\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/ObjectModule.bsl" @@ -20,6 +20,7 @@ #Область ОписаниеПеременных +// BSLLS:ExportVariables-off //@skip-check object-module-export-variable Перем ДатаОтправки Экспорт; //@skip-check object-module-export-variable @@ -36,8 +37,9 @@ Перем Параметры Экспорт; //@skip-check object-module-export-variable Перем РазмерТела Экспорт; +// BSLLS:ExportVariables-on -Перем Тело; +Перем Тело; // переменная для хранения тела в рамках существования объекта #КонецОбласти @@ -231,6 +233,8 @@ Возврат Тело; ИначеЕсли ТипТела = Тип("Строка") Тогда Возврат ПолучитьДвоичныеДанныеИзСтроки(Тело); + Иначе + ВызватьИсключение СтрШаблон("Установленный тип тела %1 не поддерживается.", ТипТела); КонецЕсли; КонецФункции From 47e92ed3523d529223932d94cd2b091f99a38836 Mon Sep 17 00:00:00 2001 From: ekuznetsov Date: Tue, 26 Nov 2024 00:48:30 +0300 Subject: [PATCH 5/5] =?UTF-8?q?=D1=83=D0=B1=D1=80=D0=B0=D0=BB=20=D0=BB?= =?UTF-8?q?=D0=B8=D1=88=D0=BD=D0=B5=D0=B5=20=D0=B8=D0=B7=20=D0=B4=D0=BE?= =?UTF-8?q?=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- documentation/docs/features/mocking/mocking.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/documentation/docs/features/mocking/mocking.md b/documentation/docs/features/mocking/mocking.md index ada1e0899..bd9545eaa 100644 --- a/documentation/docs/features/mocking/mocking.md +++ b/documentation/docs/features/mocking/mocking.md @@ -157,16 +157,16 @@ sequenceDiagram * Реализует методы `СообщениеСервисаИнтеграции` * Свойства - * `ДатаОтправки` \ `SendDate` - * `ДатаУстаревания` \ `ExpirationDate` - * `Идентификатор` \ `ID` - * `ИдентификаторСообщенияЗапроса` \ `CorrelationId` - * `КодОтправителя` \ `SenderCode` - * `КодПолучателя` \ `RecipientCode` - * `Параметры` \ `Parameters` - * `РазмерТела` \ `BodySize` + * `ДатаОтправки` + * `ДатаУстаревания` + * `Идентификатор` + * `ИдентификаторСообщенияЗапроса` + * `КодОтправителя` + * `КодПолучателя` + * `Параметры` + * `РазмерТела` * Методы - * `ПолучитьТелоКакПоток()` \ `GetBodyAsStream()` + * `ПолучитьТелоКакПоток()` * Имеет методы настройки, реализованные в виде [текучих выражений](/docs/getting-started/fluent-api.md) * Установка тела * `УстановитьТелоКакДвоичныеДанные()`