Skip to content

Commit

Permalink
Merge pull request #453 from alexandr-yang/issues/451
Browse files Browse the repository at this point in the history
#451 Исправлена ошибка разбора параметров запуска
  • Loading branch information
alkoleft authored Dec 9, 2024
2 parents 5fb8f59 + 666eb78 commit c9d0840
Show file tree
Hide file tree
Showing 3 changed files with 63 additions and 9 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 @@ -69,21 +69,22 @@
КонецЕсли;

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

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

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

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

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

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

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

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

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

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

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

Expand Down Expand Up @@ -154,7 +155,7 @@

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

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

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

Expand All @@ -163,11 +164,12 @@
КонецЕсли;

КлючЗначение = ЮТСтроки.РазделитьСтроку(Пара, "=");
Ключ = НРег(КлючЗначение[0]);

Если КлючЗначение.Количество() = 1 Тогда
ПараметрыЗапускаПредприятия.Вставить(КлючЗначение[0], Истина);
ПараметрыЗапускаПредприятия.Вставить(Ключ, Истина);
Иначе
ПараметрыЗапускаПредприятия.Вставить(КлючЗначение[0], КлючЗначение[1]);
ПараметрыЗапускаПредприятия.Вставить(Ключ, КлючЗначение[1]);
КонецЕсли;

КонецЦикла;
Expand Down Expand Up @@ -223,4 +225,10 @@

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

Функция КлючЗапускаНРег()

Возврат НРег(КлючЗапуска());

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

#КонецОбласти
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 c9d0840

Please sign in to comment.