Skip to content

Commit

Permalink
#451 Исправлена ошибка разбора параметров запуска
Browse files Browse the repository at this point in the history
  • Loading branch information
alexandr-yang committed Dec 5, 2024
1 parent 5e427ee commit 243d597
Show file tree
Hide file tree
Showing 3 changed files with 54 additions and 7 deletions.
25 changes: 25 additions & 0 deletions exts/yaxunit/src/CommonModules/ЮТКоллекции/Module.bsl
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,31 @@

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

// Возвращает требуемое значение сответствия по ключу. В случае отсутствия ключа возвращает значение по умолчанию
//
// Параметры:
// ИсходноеСоответствие - Соответствие - Исходное соответствие
// Ключ - Произвольный - Ключ поиска
// ЗначениеПоУмолчанию - Произвольный - Значение, которое будет возвращено, если ключа в соответствии нет
//
// Возвращаемое значение:
// Произвольный - Значение ключа соответствия
Функция ЗначениеСоответствия(ИсходноеСоответствие, Ключ, ЗначениеПоУмолчанию = Неопределено) Экспорт

Если НЕ ЗначениеЗаполнено(ИсходноеСоответствие) ИЛИ ПустаяСтрока(Ключ) Тогда
Возврат ЗначениеПоУмолчанию;
КонецЕсли;

Значение = ИсходноеСоответствие.Получить(Ключ);

Если Значение = Неопределено Тогда
Возврат ЗначениеПоУмолчанию;
КонецЕсли;

Возврат Значение;

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

// Добавляет в приемник данные из источника, при совпадении ключей значения заменяются
//
// Параметры:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,21 +60,22 @@
КонецЕсли;

ПараметрыЗапускаПредприятия = ПараметрыЗапускаПредприятия(ПараметрЗапуска);
Возврат ПараметрыЗапускаПредприятия.Свойство(КлючЗапуска());
Возврат ПараметрыЗапускаПредприятия.Получить(КлючЗапуска()) <> Неопределено;

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

Функция ПараметрыЗапускаИзФайла(ИмяФайла, Обработчик) Экспорт

Параметры = Новый Структура(КлючЗапуска(), ИмяФайла);
Параметры = Новый Соответствие;
Параметры.Вставить(КлючЗапуска(), ИмяФайла);
Возврат ПрочитатьПараметрыЗапуска(Параметры, Обработчик);

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

Функция ФайлПараметровЗапускаТестирования() Экспорт

ПараметрыЗапускаПредприятия = ПараметрыЗапускаПредприятия(ПараметрЗапуска);
ИмяФайла = ПараметрыЗапускаПредприятия.Свойство(КлючЗапуска());
ИмяФайла = ПараметрыЗапускаПредприятия.Получить(КлючЗапуска());

Если ЗначениеЗаполнено(ИмяФайла) И ТипЗнч(ИмяФайла) = Тип("Строка") Тогда
Возврат ИмяФайла;
Expand All @@ -91,8 +92,8 @@
// ПрочитатьПараметрыЗапуска
// Читает параметры из строки запуска
// Параметры:
// ПараметрыЗапускаПредприятия - Структура - Структура параметров запуска предприятия полученная из `ПараметрЗапуска`
// Обработчик - ОписаниеОповещения
// ПараметрыЗапускаПредприятия - Соответствие - Соответствие параметров запуска предприятия полученные из `ПараметрЗапуска`
// Обработчик - ОписаниеОповещения
//
// Возвращаемое значение:
// см. ЮТФабрика.ПараметрыЗапуска
Expand All @@ -115,7 +116,7 @@

Функция ПереданныеПараметрыТестирования(ПараметрыЗапускаПредприятия)

ПараметрЗапускаТестов = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапускаПредприятия, КлючЗапуска(), Ложь);
ПараметрЗапускаТестов = ЮТКоллекции.ЗначениеСоответствия(ПараметрыЗапускаПредприятия, КлючЗапуска(), Ложь);

ТипПараметра = ТипЗнч(ПараметрЗапускаТестов);

Expand Down Expand Up @@ -145,7 +146,7 @@

ПарыКлючЗначение = ЮТСтроки.РазделитьСтроку(ПараметрыЗапускаСтрокой, ";");

ПараметрыЗапускаПредприятия = Новый Структура;
ПараметрыЗапускаПредприятия = Новый Соответствие;

Для Каждого Пара Из ПарыКлючЗначение Цикл

Expand Down
21 changes: 21 additions & 0 deletions tests/src/CommonModules/ОМ_ЮТКоллекции/Module.bsl
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
ЮТТесты
.ДобавитьТест("ДополнитьСтруктуру")
.ДобавитьТест("ЗначениеСтруктуры")
.ДобавитьТест("ЗначениеСоответствия")
.ДобавитьТест("ДополнитьМассив")
.ДобавитьТест("СкопироватьРекурсивно")
.ДобавитьТест("СкопироватьСтруктуру")
Expand Down Expand Up @@ -105,6 +106,26 @@

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

Процедура ЗначениеСоответствия() Экспорт

ИсходноеСоответствие = Новый Соответствие;
ИсходноеСоответствие.Вставить("Поле1", "Значение1");
ИсходноеСоответствие.Вставить(42, 24);

Результат = ЮТКоллекции.ЗначениеСоответствия(ИсходноеСоответствие, "Поле1", "ЗначениеПоУмолчанию");
ЮТест.ОжидаетЧто(Результат, "Проверка существующего поля").Равно("Значение1");

Результат = ЮТКоллекции.ЗначениеСоответствия(ИсходноеСоответствие, 42, "ЗначениеПоУмолчанию");
ЮТест.ОжидаетЧто(Результат, "Проверка числового поля").Равно(24);

Результат = ЮТКоллекции.ЗначениеСоответствия(ИсходноеСоответствие, "Поле3", "ЗначениеПоУмолчанию");
ЮТест.ОжидаетЧто(Результат, "Проверка несуществующего поля").Равно("ЗначениеПоУмолчанию");

Результат = ЮТКоллекции.ЗначениеСоответствия(Неопределено, "Поле", "ЗначениеПоУмолчанию");
ЮТест.ОжидаетЧто(Результат, "Проверка вызова функции со значение Неопределено").Равно("ЗначениеПоУмолчанию");

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

Процедура ДополнитьМассив() Экспорт

Приемник = Новый Массив;
Expand Down

0 comments on commit 243d597

Please sign in to comment.