|
19 | 19 | // ИменаТестов.Добавить("ТестДолжен_ПроверитьПолучениеЗначенияАргументаПоИмени");
|
20 | 20 | // ИменаТестов.Добавить("ТестДолжен_ПроверитьПолучениеЗначенияОпцииПоИмени");
|
21 | 21 |
|
22 |
| - // ИменаТестов.Добавить("ТестДолжен_ПроверитьУстановкуЗначенийОпций"); |
| 22 | + ИменаТестов.Добавить("ТестДолжен_ПроверитьУстановкуЗначенийОпций"); |
23 | 23 | // ИменаТестов.Добавить("ТестДолжен_ПроверитьУстановкуМножественныхЗначенийОпций");
|
24 | 24 | // ИменаТестов.Добавить("ТестДолжен_ПроверитьУстановкуЗначенийАргументов");
|
25 | 25 | // ИменаТестов.Добавить("ТестДолжен_ПроверитьУстановкуМножественныхАргументовОпций");
|
|
79 | 79 |
|
80 | 80 |
|
81 | 81 |
|
| 82 | +КонецПроцедуры |
| 83 | + |
| 84 | +Процедура ТестДолжен_ПроверитьУстановкуЗначенийОпций() Экспорт |
| 85 | + |
| 86 | + Спек = ""; |
| 87 | + ИмяПроцедурыОбъекта = "КомандаПростыеОпции"; |
| 88 | + |
| 89 | + ТестовыеСлучаи = Новый Массив; |
| 90 | + |
| 91 | + ТестовыеСлучаи.Добавить(ТестовыйСлучай("--bool", Спек, "Истина;;0")); |
| 92 | + ТестовыеСлучаи.Добавить(ТестовыйСлучай("--string Строка", Спек, "Ложь;Строка;0")); |
| 93 | + ТестовыеСлучаи.Добавить(ТестовыйСлучай("--int 42", Спек, "Ложь;;42")); |
| 94 | + ТестовыеСлучаи.Добавить(ТестовыйСлучай("--string Строка --bool", Спек, "Истина;Строка;0")); |
| 95 | + ТестовыеСлучаи.Добавить(ТестовыйСлучай("--int 42 --bool", Спек, "Истина;;42")); |
| 96 | + |
| 97 | + Для каждого Тест Из ТестовыеСлучаи Цикл |
| 98 | + |
| 99 | + Команда = ВыполнитьКомандаПриложения(Тест.Спек, ИмяПроцедурыОбъекта, Тест.Аргументы); |
| 100 | + |
| 101 | + ЗначениеБулева = Команда.ЗначениеОпции("bool"); |
| 102 | + ЗначениеСтрока = Команда.ЗначениеОпции("string"); |
| 103 | + ЗначениеЧисло = Команда.ЗначениеОпции("int"); |
| 104 | + |
| 105 | + МассивРезультата = СтрРазделить(Тест.Результат, ";", Истина); |
| 106 | + |
| 107 | + Утверждения.ПроверитьРавенство(ЗначениеБулева, Булево(МассивРезультата[0]), "Результаты должны совпадать" + СтрСоединить(Тест.Аргументы)); |
| 108 | + Утверждения.ПроверитьРавенство(ЗначениеСтрока, Строка(МассивРезультата[1]), "Результаты должны совпадать" + СтрСоединить(Тест.Аргументы)); |
| 109 | + Утверждения.ПроверитьРавенство(ЗначениеЧисло, Число(МассивРезультата[2]), "Результаты должны совпадать" + СтрСоединить(Тест.Аргументы)); |
| 110 | + |
| 111 | + КонецЦикла; |
| 112 | + |
82 | 113 | КонецПроцедуры
|
83 | 114 |
|
84 | 115 | Функция АргументыИзСтроки(СтрокаАргументов)
|
|
123 | 154 |
|
124 | 155 | КонецФункции
|
125 | 156 |
|
| 157 | +Функция ВыполнитьКомандаПриложения(Спек, ИмяПроцедурыОбъекта, Аргументы) |
| 158 | + |
| 159 | + Команда = Новый КомандаПриложения("test", "Тестовая команда", ЭтотОбъект); |
| 160 | + |
| 161 | + ПараметрыВыполнения = Новый Массив; |
| 162 | + ПараметрыВыполнения.Добавить(Команда); |
| 163 | + |
| 164 | + ОписаниеКоманды = Делегаты.Создать(ЭтотОбъект, ИмяПроцедурыОбъекта); |
| 165 | + ОписаниеКоманды.Исполнить(ПараметрыВыполнения); |
| 166 | + |
| 167 | + Команда.Спек = Спек; |
| 168 | + |
| 169 | + Команда.НачалоЗапуска(); |
| 170 | + Попытка |
| 171 | + Команда.Запуск(Аргументы); |
| 172 | + Исключение |
| 173 | + Сообщить(ОписаниеОшибки()); |
| 174 | + Возврат Команда; |
| 175 | + КонецПопытки; |
| 176 | + |
| 177 | + Возврат Команда; |
| 178 | + |
| 179 | +КонецФункции |
| 180 | + |
126 | 181 | Процедура КомандаСкоростьРаботуКомандыПриложения(Знач ВыполняемаяКоманда) Экспорт
|
127 | 182 |
|
128 | 183 | login = ВыполняемаяКоманда.Опция("login", "", "Login for credential, e.g. username or email.").ТСтрока();
|
|
150 | 205 |
|
151 | 206 | КонецПроцедуры
|
152 | 207 |
|
| 208 | +Процедура КомандаПростыеОпции(Знач ВыполняемаяКоманда) Экспорт |
| 209 | + |
| 210 | + ВыполняемаяКоманда.Опция("bool", Ложь, "Login for credential, e.g. username or email."); |
| 211 | + ВыполняемаяКоманда.Опция("string", "", "Realm for credential, e.g. website or WiFi AP name."); |
| 212 | + ВыполняемаяКоманда.Опция("int", 0, "Note for credential."); |
| 213 | + |
| 214 | +КонецПроцедуры |
153 | 215 |
|
154 | 216 |
|
155 | 217 | Лог = Логирование.ПолучитьЛог("oscript.lib.cli_command");
|
|
0 commit comments