Skip to content

Commit 49ec98f

Browse files
committed
Исправлена ошибка при чтении настроек из нескольких конфигурационных файлов, добавлен тест
1 parent b989c03 commit 49ec98f

File tree

3 files changed

+82
-18
lines changed

3 files changed

+82
-18
lines changed

packagedef

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
//
55

66
Описание.Имя("configor")
7-
.Версия("0.8.1")
7+
.Версия("0.8.2")
88
.Автор("Khorev Aleksey")
99
.АдресАвтора("Khorevaa@gmail.com")
1010
.Описание("Библиотека для работы с конфигурационными файлами в формате json, yaml")
@@ -20,6 +20,9 @@
2020
.ЗависитОт("notify", "0.2.0")
2121
.ЗависитОт("tempfiles")
2222
.ЗависитОт("reflector", "0.3.1")
23+
.РазработкаЗависитОт("coverage", "0.6.1")
24+
.РазработкаЗависитОт("1testrunner", "1.8.0")
25+
.РазработкаЗависитОт("1bdd", "1.14.0")
2326
.ОпределяетКласс("МенеджерПараметров", "src/Классы/МенеджерПараметров.os")
2427
.ОпределяетКласс("КонструкторПараметров", "src/Классы/КонструкторПараметров.os")
2528
;

src/Классы/internal/Классы/ФайловыйПровайдерПараметров.os

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -202,9 +202,9 @@
202202

203203
Иначе
204204

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

210210
КонецЕсли;

tests/МенеджерЧтенияпараметров_test.os

Lines changed: 76 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4,23 +4,9 @@
44
#Использовать tempfiles
55
#Использовать json
66

7-
Перем юТест;
87
Перем Лог;
98

10-
Функция ПолучитьСписокТестов(Знач Тестирование) Экспорт
11-
12-
юТест = Тестирование;
13-
14-
ИменаТестов = Новый Массив;
15-
16-
ИменаТестов.Добавить("ТестДолжен_ПроверитьПолучениеПараметровИзИндекса");
17-
ИменаТестов.Добавить("ТестДолжен_ПроверитьВыгрузкуПараметровВКласс");
18-
ИменаТестов.Добавить("ТестДолжен_ПроверитьПоискИЧтениеФайлаПараметров");
19-
20-
Возврат ИменаТестов;
21-
22-
КонецФункции
23-
9+
&Тест
2410
Процедура ТестДолжен_ПроверитьПолучениеПараметровИзИндекса() Экспорт
2511

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

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

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

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

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

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

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

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

139+
&Тест
140+
Процедура ТестДолжен_ПроверитьПоискИЧтениеНесколькихФайловПараметров() Экспорт
141+
142+
ПарсерJSON = Новый ПарсерJSON;
143+
144+
МенеджерПараметров = Новый МенеджерПараметров();
145+
146+
ВременныйКаталог = ВременныеФайлы.СоздатьКаталог();
147+
148+
СтруктураПараметров = Новый Структура("version, ПараметрСтрока, ПараметрЧисло, ПараметрМассив, ПараметрСтруктура, ПараметрСоответствие",
149+
"1.0",
150+
"ПростоСтрока",
151+
10,
152+
ПолучитьНовыйМассив("Элемент1, Элемент2"),
153+
Новый Структура("Строка, Число, Массив, Структура, Соответствие",
154+
"ПростоСтрока",
155+
10,
156+
ПолучитьНовыйМассив("Элемент1, Элемент2"),
157+
Новый Структура("Строка, Строка2", "ЗначениеСтруктуры", "ЗначениеСтруктуры2"),
158+
ПолучитьСоответствие("КлючВнутри1, КлючВнутри2", "Значение1, Значение2")
159+
),
160+
ПолучитьСоответствие("Ключ1, Ключ2", "Значение1, Значение2")
161+
);
162+
163+
ТекстФайлаПроверки = ПарсерJSON.ЗаписатьJSON(СтруктураПараметров);
164+
165+
ТестовыйФайл = ПодготовитьТестовыйФайл(ТекстФайлаПроверки);
166+
167+
ТестовоеИмя = "config";
168+
ТестовоеРасширение = ".json";
169+
170+
КопироватьФайл(ТестовыйФайл, ОбъединитьПути(ВременныйКаталог, ТестовоеИмя + ТестовоеРасширение));
171+
172+
МенеджерПараметров.АвтоНастройка(ТестовоеИмя);
173+
174+
СтруктураПараметров = Новый Структура("version, ПараметрСтрока, ПараметрЧисло, ПараметрМассив, ПараметрСтруктура, ПараметрСоответствие",
175+
"1.0",
176+
"ПростоСтрока",
177+
10,
178+
ПолучитьНовыйМассив("Элемент3"),
179+
Новый Структура("Строка, Число, Массив, Структура, Соответствие",
180+
"ПростоСтрока",
181+
10,
182+
ПолучитьНовыйМассив("Элемент3"),
183+
Новый Структура("Строка, Строка2", "ЗначениеСтруктуры", "ЗначениеСтруктуры2"),
184+
ПолучитьСоответствие("КлючВнутри1, КлючВнутри2", "Значение1, Значение2")
185+
),
186+
ПолучитьСоответствие("Ключ1, Ключ2", "Значение1, Значение2")
187+
);
188+
189+
ТекстФайлаПроверки = ПарсерJSON.ЗаписатьJSON(СтруктураПараметров);
190+
191+
ТестовыйФайл = ПодготовитьТестовыйФайл(ТекстФайлаПроверки);
192+
193+
ТестовоеИмя = "config2";
194+
ТестовоеРасширение = ".json";
195+
196+
КопироватьФайл(ТестовыйФайл, ОбъединитьПути(ВременныйКаталог, ТестовоеИмя + ТестовоеРасширение));
197+
198+
МенеджерПараметров.АвтоНастройка(ТестовоеИмя);
199+
200+
НастройкаПоискаФайла = МенеджерПараметров.НастройкаПоискаФайла();
201+
НастройкаПоискаФайла.ДобавитьКаталогПоиска(ВременныйКаталог);
202+
МенеджерПараметров.Прочитать();
203+
204+
Утверждения.ПроверитьРавенство(СтруктураПараметров.ПараметрМассив[0], МенеджерПараметров.Параметр("ПараметрМассив.0"), "Результат должен совпадать с ожиданиями.");
205+
Утверждения.ПроверитьРавенство(СтруктураПараметров.ПараметрСтруктура.Массив[0], МенеджерПараметров.Параметр("ПараметрСтруктура.Массив.0"), "Результат должен совпадать с ожиданиями.");
206+
Утверждения.ПроверитьРавенство(СтруктураПараметров.ПараметрСтруктура.Соответствие["КлючВнутри1"], МенеджерПараметров.Параметр("ПараметрСтруктура.Соответствие.КлючВнутри1"), "Результат должен совпадать с ожиданиями.");
207+
208+
ВременныеФайлы.Удалить();
209+
210+
КонецПроцедуры
211+
151212
Функция ПолучитьНовыйМассив(ЗначенияМассив)
152213

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

0 commit comments

Comments
 (0)