Skip to content

Commit

Permalink
Merge pull request #33 from sfaqer/bugfix/multiFiles
Browse files Browse the repository at this point in the history
Исправлена ошибка при чтении настроек из нескольких конфигурационных файлов
  • Loading branch information
nixel2007 authored Mar 28, 2024
2 parents b989c03 + 49ec98f commit 32e844a
Show file tree
Hide file tree
Showing 3 changed files with 82 additions and 18 deletions.
5 changes: 4 additions & 1 deletion packagedef
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
//

Описание.Имя("configor")
.Версия("0.8.1")
.Версия("0.8.2")
.Автор("Khorev Aleksey")
.АдресАвтора("[email protected]")
.Описание("Библиотека для работы с конфигурационными файлами в формате json, yaml")
Expand All @@ -20,6 +20,9 @@
.ЗависитОт("notify", "0.2.0")
.ЗависитОт("tempfiles")
.ЗависитОт("reflector", "0.3.1")
.РазработкаЗависитОт("coverage", "0.6.1")
.РазработкаЗависитОт("1testrunner", "1.8.0")
.РазработкаЗависитОт("1bdd", "1.14.0")
.ОпределяетКласс("МенеджерПараметров", "src/Классы/МенеджерПараметров.os")
.ОпределяетКласс("КонструкторПараметров", "src/Классы/КонструкторПараметров.os")
;
Original file line number Diff line number Diff line change
Expand Up @@ -202,9 +202,9 @@

Иначе

ФункцияОбработки = Новый ОписаниеОповещения("ОбработчикВыполненияЧтениеФайловогоПровайдера", ЭтотОбъект);
КоллекцияФайловПараметров.ДляКаждого(
"КаталогПоиска -> ВыполнитьЧтениеФайловогоПровайдера(КаталогПоиска.ИмяФайла());"
"КаталогПоиска -> ВыполнитьЧтениеФайловогоПровайдера(КаталогПоиска.ИмяФайла());",
ЭтотОбъект
);

КонецЕсли;
Expand Down
91 changes: 76 additions & 15 deletions tests/МенеджерЧтенияпараметров_test.os
Original file line number Diff line number Diff line change
Expand Up @@ -4,23 +4,9 @@
#Использовать tempfiles
#Использовать json

Перем юТест;
Перем Лог;

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

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

ИменаТестов = Новый Массив;

ИменаТестов.Добавить("ТестДолжен_ПроверитьПолучениеПараметровИзИндекса");
ИменаТестов.Добавить("ТестДолжен_ПроверитьВыгрузкуПараметровВКласс");
ИменаТестов.Добавить("ТестДолжен_ПроверитьПоискИЧтениеФайлаПараметров");

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

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

&Тест
Процедура ТестДолжен_ПроверитьПолучениеПараметровИзИндекса() Экспорт

ТестовыеСлучаи = Новый Массив;
Expand Down Expand Up @@ -68,6 +54,7 @@

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

&Тест
Процедура ТестДолжен_ПроверитьВыгрузкуПараметровВКласс() Экспорт

МенеджерПараметров = Новый МенеджерПараметров();
Expand Down Expand Up @@ -106,6 +93,7 @@

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

&Тест
Процедура ТестДолжен_ПроверитьПоискИЧтениеФайлаПараметров() Экспорт

МенеджерПараметров = Новый МенеджерПараметров();
Expand Down Expand Up @@ -148,6 +136,79 @@

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

&Тест
Процедура ТестДолжен_ПроверитьПоискИЧтениеНесколькихФайловПараметров() Экспорт

ПарсерJSON = Новый ПарсерJSON;

МенеджерПараметров = Новый МенеджерПараметров();

ВременныйКаталог = ВременныеФайлы.СоздатьКаталог();

СтруктураПараметров = Новый Структура("version, ПараметрСтрока, ПараметрЧисло, ПараметрМассив, ПараметрСтруктура, ПараметрСоответствие",
"1.0",
"ПростоСтрока",
10,
ПолучитьНовыйМассив("Элемент1, Элемент2"),
Новый Структура("Строка, Число, Массив, Структура, Соответствие",
"ПростоСтрока",
10,
ПолучитьНовыйМассив("Элемент1, Элемент2"),
Новый Структура("Строка, Строка2", "ЗначениеСтруктуры", "ЗначениеСтруктуры2"),
ПолучитьСоответствие("КлючВнутри1, КлючВнутри2", "Значение1, Значение2")
),
ПолучитьСоответствие("Ключ1, Ключ2", "Значение1, Значение2")
);

ТекстФайлаПроверки = ПарсерJSON.ЗаписатьJSON(СтруктураПараметров);

ТестовыйФайл = ПодготовитьТестовыйФайл(ТекстФайлаПроверки);

ТестовоеИмя = "config";
ТестовоеРасширение = ".json";

КопироватьФайл(ТестовыйФайл, ОбъединитьПути(ВременныйКаталог, ТестовоеИмя + ТестовоеРасширение));

МенеджерПараметров.АвтоНастройка(ТестовоеИмя);

СтруктураПараметров = Новый Структура("version, ПараметрСтрока, ПараметрЧисло, ПараметрМассив, ПараметрСтруктура, ПараметрСоответствие",
"1.0",
"ПростоСтрока",
10,
ПолучитьНовыйМассив("Элемент3"),
Новый Структура("Строка, Число, Массив, Структура, Соответствие",
"ПростоСтрока",
10,
ПолучитьНовыйМассив("Элемент3"),
Новый Структура("Строка, Строка2", "ЗначениеСтруктуры", "ЗначениеСтруктуры2"),
ПолучитьСоответствие("КлючВнутри1, КлючВнутри2", "Значение1, Значение2")
),
ПолучитьСоответствие("Ключ1, Ключ2", "Значение1, Значение2")
);

ТекстФайлаПроверки = ПарсерJSON.ЗаписатьJSON(СтруктураПараметров);

ТестовыйФайл = ПодготовитьТестовыйФайл(ТекстФайлаПроверки);

ТестовоеИмя = "config2";
ТестовоеРасширение = ".json";

КопироватьФайл(ТестовыйФайл, ОбъединитьПути(ВременныйКаталог, ТестовоеИмя + ТестовоеРасширение));

МенеджерПараметров.АвтоНастройка(ТестовоеИмя);

НастройкаПоискаФайла = МенеджерПараметров.НастройкаПоискаФайла();
НастройкаПоискаФайла.ДобавитьКаталогПоиска(ВременныйКаталог);
МенеджерПараметров.Прочитать();

Утверждения.ПроверитьРавенство(СтруктураПараметров.ПараметрМассив[0], МенеджерПараметров.Параметр("ПараметрМассив.0"), "Результат должен совпадать с ожиданиями.");
Утверждения.ПроверитьРавенство(СтруктураПараметров.ПараметрСтруктура.Массив[0], МенеджерПараметров.Параметр("ПараметрСтруктура.Массив.0"), "Результат должен совпадать с ожиданиями.");
Утверждения.ПроверитьРавенство(СтруктураПараметров.ПараметрСтруктура.Соответствие["КлючВнутри1"], МенеджерПараметров.Параметр("ПараметрСтруктура.Соответствие.КлючВнутри1"), "Результат должен совпадать с ожиданиями.");

ВременныеФайлы.Удалить();

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

Функция ПолучитьНовыйМассив(ЗначенияМассив)

Массив = Новый Массив();
Expand Down

0 comments on commit 32e844a

Please sign in to comment.