Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions src/cmd/opm.os
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@

Процедура ВыполнитьПриложение()

ПараметрыПриложенияOpm.ПроверитьАргументыКоманднойСтроки(АргументыКоманднойСтроки);

Приложение = Новый КонсольноеПриложение("opm", НСтр("ru='Пакетный менеджер для OneScript';en='Package manager for OneScript'"));
Приложение.Версия("v version", КонстантыOpm.ВерсияПродукта);

Expand Down
10 changes: 10 additions & 0 deletions src/cmd/Модули/ПараметрыПриложенияOpm.os
Original file line number Diff line number Diff line change
@@ -1,6 +1,16 @@

Перем Лог;

Процедура ПроверитьАргументыКоманднойСтроки(Знач АргументыЗапуска) Экспорт

Для Каждого АргументЗапуска Из АргументыЗапуска Цикл
Если АргументЗапуска = "-all" Тогда
ВызватьИсключение "Комбинация опций -all не поддерживается. Используйте либо --all (все пакеты) либо -al (--all --local - все пакеты в локальный каталог).";
КонецЕсли;
КонецЦикла;

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

Функция ИмяЛогаСистемы() Экспорт
Возврат "oscript.app.opm";
КонецФункции
Expand Down
59 changes: 59 additions & 0 deletions tests/cli-args-test.os
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
#Использовать asserts
#Использовать "../src/cmd"

Перем юТест;

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

юТест = Тестирование;

ИменаТестов = Новый Массив;
ИменаТестов.Добавить("ТестДолжен_ЗапретитьОпциюМинусAll");
ИменаТестов.Добавить("ТестДолжен_РазрешитьОпциюДвойнойМинусAll");

Возврат ИменаТестов;

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

Процедура ПередЗапускомТеста() Экспорт
КонецПроцедуры

Процедура ПослеЗапускаТеста() Экспорт
КонецПроцедуры

Процедура ТестДолжен_ЗапретитьОпциюМинусAll() Экспорт

Попытка
ПараметрыПриложенияOpm.ПроверитьАргументыКоманднойСтроки(СоздатьАргументыЗапуска("install", "-all"));
Исключение
ОписаниеОшибки = ИнформацияОбОшибке().Описание;
Если СтрНайти(ОписаниеОшибки, "-all") > 0 И СтрНайти(ОписаниеОшибки, "--all") > 0 Тогда
Возврат;
КонецЕсли;
ВызватьИсключение;
КонецПопытки;

юТест.ПрерватьТест("Ожидали, что для -all будет выброшено исключение");

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

Процедура ТестДолжен_РазрешитьОпциюДвойнойМинусAll() Экспорт

АргументыЗапуска = СоздатьАргументыЗапуска("install", "--all");

ПараметрыПриложенияOpm.ПроверитьАргументыКоманднойСтроки(АргументыЗапуска);

Утверждения.ПроверитьРавенство(2, АргументыЗапуска.Количество());
Утверждения.ПроверитьРавенство("--all", АргументыЗапуска[1]);

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

Функция СоздатьАргументыЗапуска(Знач ПервыйАргумент, Знач ВторойАргумент)

АргументыЗапуска = Новый Массив;
АргументыЗапуска.Добавить(ПервыйАргумент);
АргументыЗапуска.Добавить(ВторойАргумент);

Возврат АргументыЗапуска;

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