-
Notifications
You must be signed in to change notification settings - Fork 31
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
10 changed files
with
184 additions
and
18 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,92 @@ | ||
// Реализация шагов BDD-фич/сценариев c помощью фреймворка https://github.com/artbear/1bdd | ||
#Использовать asserts | ||
|
||
#Использовать "../../src" | ||
|
||
Перем БДД; //контекст фреймворка 1bdd | ||
|
||
// Метод выдает список шагов, реализованных в данном файле-шагов | ||
Функция ПолучитьСписокШагов(КонтекстФреймворкаBDD) Экспорт | ||
БДД = КонтекстФреймворкаBDD; | ||
|
||
ВсеШаги = Новый Массив; | ||
|
||
ВсеШаги.Добавить("ЯЧитаюНастройкиИзФайла"); | ||
ВсеШаги.Добавить("ЗначениеНастройкиРавно"); | ||
|
||
Возврат ВсеШаги; | ||
КонецФункции | ||
|
||
// Реализация шагов | ||
|
||
// Процедура выполняется перед запуском каждого сценария | ||
Процедура ПередЗапускомСценария(Знач Узел) Экспорт | ||
|
||
КонецПроцедуры | ||
|
||
// Процедура выполняется после завершения каждого сценария | ||
Процедура ПослеЗапускаСценария(Знач Узел) Экспорт | ||
|
||
КонецПроцедуры | ||
|
||
//я читаю настройки из файла "opm.cfg" | ||
Процедура ЯЧитаюНастройкиИзФайла(Знач ПутьФайла) Экспорт | ||
Файл = Новый Файл(ОбъединитьПути(ТекущийКаталог(), ПутьФайла)); | ||
Ожидаем.Что(Файл.Существует(), СтрШаблон("Ожидали, что файл <%1> существует, а это не так!", Файл.ПолноеИмя)).ЭтоИстина(); | ||
|
||
НастройкиПриложения.УстановитьФайлНастроек(Файл.ПолноеИмя); | ||
|
||
Настройки = НастройкиПриложения.Получить(); | ||
БДД.СохранитьВКонтекст(КлючКонтекста(), Настройки); | ||
КонецПроцедуры | ||
|
||
//значение настройки "СоздаватьShСкриптЗапуска" равно "false" | ||
Процедура ЗначениеНастройкиРавно(Знач КлючНастройки, Знач ЗначениеНастройки) Экспорт | ||
Настройки = БДД.ПолучитьИзКонтекста(КлючКонтекста()); | ||
|
||
Ожидаем.Что(КлючНастройки, "Ключ настройки не заполнен").Заполнено(); | ||
|
||
Значение = ЗначениеНастройки(Настройки, КлючНастройки); | ||
|
||
ЗначениеНастройки = КонвертироватьЗначениеПриНеобходимости(ЗначениеНастройки); | ||
|
||
Ожидаем.Что(Значение, СтрШаблон("Не совпадает значение настройки с именем <%1>", КлючНастройки)).Равно(ЗначениеНастройки); | ||
КонецПроцедуры | ||
|
||
// учитываются простые (СоздаватьShСкриптЗапуска) и иерархические ключи (Прокси.ИспользоватьПрокси) | ||
Функция ЗначениеНастройки(Знач Настройки, Знач КлючНастройки) | ||
МассивИерархии = СтрРазделить(КлючНастройки, ".", Ложь); | ||
ПутьКлюча = ""; | ||
ТекущиеНастройки = настройки; | ||
Для Счетчик = 0 По МассивИерархии.ВГраница() Цикл | ||
ТекущийКлюч = МассивИерархии[Счетчик]; | ||
Если ПустаяСтрока(ПутьКлюча) Тогда | ||
ПутьКлюча = ТекущийКлюч; | ||
Иначе | ||
ПутьКлюча = СтрШаблон("%1.%2", ПутьКлюча, ТекущийКлюч); | ||
КонецЕсли; | ||
|
||
Значение = Неопределено; | ||
ЕстьНастройка = ТекущиеНастройки.Свойство(ТекущийКлюч, Значение); | ||
Ожидаем.Что(ЕстьНастройка, СтрШаблон("Не удалось получить настройку с именем <%1>", ПутьКлюча)).ЭтоИстина(); | ||
ТекущиеНастройки = Значение; | ||
КонецЦикла; | ||
|
||
Возврат Значение; | ||
КонецФункции | ||
|
||
Функция КонвертироватьЗначениеПриНеобходимости(Знач ЗначениеНастройки) | ||
ЗначениеНастройки = НРег(ЗначениеНастройки); | ||
Если ЗначениеНастройки = "false" или ЗначениеНастройки = "ложь" Тогда | ||
ЗначениеНастройки = Ложь; | ||
ИначеЕсли ЗначениеНастройки = "true" или ЗначениеНастройки = "истина" Тогда | ||
ЗначениеНастройки = Истина; | ||
ИначеЕсли ЗначениеНастройки = "неопределено" Тогда | ||
ЗначениеНастройки = Неопределено; | ||
КонецЕсли; | ||
Возврат ЗначениеНастройки; | ||
КонецФункции | ||
|
||
Функция КлючКонтекста() | ||
Возврат "ТестовыеНастройкиПриложенияОМП"; | ||
КонецФункции // КлючКонтекста() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
# language: ru | ||
|
||
Функциональность: Настройки продукта | ||
|
||
Как разработчик | ||
Я хочу иметь возможность настраивать параметры продукта из внешнего файла | ||
Чтобы управлять поведением продукта, например, если есть прокси | ||
|
||
Контекст: файл настроек | ||
Допустим Я создаю временный каталог и сохраняю его в контекст | ||
И Я устанавливаю временный каталог как рабочий каталог | ||
|
||
И Я установил рабочий каталог как текущий каталог | ||
|
||
# И Я показываю рабочий каталог | ||
|
||
Сценарий: Получение настроек | ||
Допустим Я копирую файл "opm.cfg" из каталога "tests/fixtures" проекта в рабочий каталог | ||
Когда я читаю настройки из файла "opm.cfg" | ||
Тогда значение настройки "СоздаватьShСкриптЗапуска" равно "false" | ||
И значение настройки "Прокси.ИспользоватьПрокси" равно "false" | ||
И значение настройки "Прокси.ПроксиПоУмолчанию" равно "false" | ||
И значение настройки "Прокси.Сервер" равно "" | ||
И значение настройки "Прокси.Порт" равно "" | ||
И значение настройки "Прокси.Пользователь" равно "" | ||
И значение настройки "Прокси.Пароль" равно "" | ||
И значение настройки "Прокси.ИспользоватьАутентификациюОС" равно "false" | ||
|
||
Сценарий: Получение значения по умолчанию, если настройка не задана в файле настроек | ||
Допустим Я копирую файл "opm-incomplete.cfg" из каталога "tests/fixtures" проекта в рабочий каталог | ||
Когда я читаю настройки из файла "opm-incomplete.cfg" | ||
Тогда значение настройки "СоздаватьShСкриптЗапуска" равно "false" | ||
И значение настройки "Прокси.ИспользоватьПрокси" равно "false" | ||
И значение настройки "Прокси.ПроксиПоУмолчанию" равно "Истина" | ||
И значение настройки "Прокси.Сервер" равно "Неопределено" | ||
И значение настройки "Прокси.Порт" равно "Неопределено" | ||
И значение настройки "Прокси.Пользователь" равно "Неопределено" | ||
И значение настройки "Прокси.Пароль" равно "Неопределено" | ||
И значение настройки "Прокси.ИспользоватьАутентификациюОС" равно "false" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
{ | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
{ | ||
"Прокси": { | ||
"ИспользоватьПрокси": false, | ||
"ПроксиПоУмолчанию": false, | ||
"Сервер": "", | ||
"Порт": "", | ||
"Пользователь": "", | ||
"Пароль": "", | ||
"ИспользоватьАутентификациюОС": false | ||
}, | ||
"СоздаватьShСкриптЗапуска": false | ||
} |