Skip to content
7 changes: 3 additions & 4 deletions packagedef
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@
//

Описание.Имя("cli")
.Версия("0.10.0")
.Версия("0.10.2")
.Автор("Khorev Aleksey")
.АдресАвтора("khorevaa@gmail.com")
.Описание("Данный пакет облегчает создание консольных приложений на Oscript")
.ВерсияСреды("1.0.20")
.ВерсияСреды("1.8.3")
.ВключитьФайл("src")
.ВключитьФайл("docs")
//.ВключитьФайл("tests")
Expand All @@ -17,13 +17,12 @@
.ЗависитОт("logos", "1.1.1")
.ЗависитОт("delegate", "0.2.0")
.ЗависитОт("reflector", "0.5.1")
.ЗависитОт("fluent", "0.3.1")
.ЗависитОт("fluent", "0.6.0")
.ЗависитОт("datetime", "0.1.0")
//.ЗависитОт("asserts")
//.ЗависитОт("1bdd") // Необходимо установил для тестирования
//.ЗависитОт("1testrunner") // Необходимо установил для тестирования
.ОпределяетКласс("КонсольноеПриложение", "src/core/Классы/КонсольноеПриложение.os")
.ОпределяетКласс("КомандаПриложения", "src/core/Классы/КомандаПриложения.os")
.ОпределяетКласс("ПараметрКоманды", "src/core/Классы/ПараметрКоманды.os")

;
4 changes: 3 additions & 1 deletion src/core/Классы/КомандаПриложения.os
Original file line number Diff line number Diff line change
Expand Up @@ -1048,7 +1048,9 @@
ПроцессорКоллекций = Новый ПроцессорКоллекций;
ПроцессорКоллекций.УстановитьКоллекцию(НаименованияПараметров);
СортированныеНаименования = ПроцессорКоллекций
.Сортировать("Результат = СтрДлина(Элемент1) > СтрДлина(Элемент2)")
.Сортировать("(Первый, Второй) ->
| Возврат ПроцессорыКоллекций.СтандартнаяФункцияСравненияПрямойПорядок()
| .Выполнить(СтрДлина(Первый), СтрДлина(Второй))")
.Получить(Тип("Массив"));

НаименованиеПараметра = СтрСоединить(СортированныеНаименования, ", ");
Expand Down
2 changes: 1 addition & 1 deletion src/core/Классы/ПараметрКоманды.os
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,7 @@

МассивСтрок = СтрРазделить(ВходящееЗначение, РазделительМассива);
Для каждого ЭлементМассива Из МассивСтрок Цикл
Значение = ТипЗначенияПараметра.УстановитьЗначение(ВходящееЗначение, Значение);
Значение = ТипЗначенияПараметра.УстановитьЗначение(ЭлементМассива, Значение);
КонецЦикла;

Иначе
Expand Down
16 changes: 16 additions & 0 deletions tests/fixtures/КомандаСМассивами.os
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@


Перем МассивДат Экспорт;

Процедура ПриСозданииОбъекта()

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

Процедура ОписаниеКоманды(КомандаПриложения) Экспорт
ТекКоманда = КомандаПриложения.Опция("a datearray",,"Массив дат");
ТекКоманда.ТМассивДат("yyyy-MM-dd", ";");
КонецПроцедуры

Процедура ВыполнитьКоманду(КомандаПриложения) Экспорт
МассивДат = КомандаПриложения.ЗначениеОпции("a")
КонецПроцедуры
28 changes: 28 additions & 0 deletions tests/МассивыПараметров.os
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
#использовать "../src/core"
#Использовать asserts

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

// Дано
Команда = ЗагрузитьСценарий("tests/fixtures/КомандаСМассивами.os");

Приложение = Новый КонсольноеПриложение("cp", "");
Приложение.Версия("v version", "1.0");
ПараметрыКоманды = Новый Массив();
ПараметрыКоманды.Добавить("testingarray");
ПараметрыКоманды.Добавить("-a");
ПараметрыКоманды.Добавить("2023-04-13;2023-04-14");

Приложение.ДобавитьКоманду("testingarray", "Тестируем массив", Команда);

// Когда

Приложение.Запустить(ПараметрыКоманды);

// Тогда

Ожидаем.Что(Команда.МассивДат[0], "дата1").Равно(Дата("20230413000000"));
Ожидаем.Что(Команда.МассивДат[1], "дата2").Равно(Дата("20230414000000"));

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