Skip to content

Commit 17cf0f2

Browse files
committed
Новый экспортный метод Получить(ИмяПараметра, ЗначениеПоУмолчанию)
1 parent d8cc06b commit 17cf0f2

File tree

2 files changed

+98
-2
lines changed

2 files changed

+98
-2
lines changed

Tests/ЧтениеПараметров_test.os

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,10 @@
2929
СписокТестов.Добавить("ТестДолжен_ПроверитьНаличиеКомментарияВКавычках");
3030

3131
СписокТестов.Добавить("ТестДолжен_ПрочитатьПеременныеСреды");
32+
СписокТестов.Добавить("ТестДолжен_ПолучитьПараметрЧерезМетод");
33+
СписокТестов.Добавить("ТестДолжен_ПолучитьОтсутствующийПараметрЧерезМетод");
34+
35+
СписокТестов.Добавить("Тест_ПрочитатьФайлыПараметровЧерезСсылкиВПеременныхСреды");
3236

3337
Возврат СписокТестов;
3438

@@ -176,6 +180,31 @@
176180

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

183+
Процедура Тест_ПрочитатьФайлыПараметровЧерезСсылкиВПеременныхСреды() Экспорт
184+
185+
файлПараметров = ОбъединитьПути( ВременныйКаталог, "testParam1.json");
186+
187+
СИ = Новый СистемнаяИнформация;
188+
СИ.УстановитьПеременнуюСреды( "ReadFile_testParam", файлПараметров );
189+
190+
записьТекста = Новый ЗаписьТекста(файлПараметров);
191+
ЗаписьТекста.ЗаписатьСтроку( "{""парам.Число"": 1, ""парам.Строка"": ""1"", ""парам.Булево"": true}" );
192+
ЗаписьТекста.Закрыть();
193+
194+
ошибкиЧтения = Неопределено;
195+
196+
прочитанныеПараметры = ЧтениеПараметров.Прочитать( , ошибкиЧтения, Истина );
197+
198+
Утверждения.ПроверитьРавенство( ошибкиЧтения.Количество(), 0, "Ошибок чтения быть не должно");
199+
200+
Утверждения.ПроверитьРавенство( прочитанныеПараметры["парам.Число"], 1);
201+
Утверждения.ПроверитьРавенство( прочитанныеПараметры["парам.Строка"], "1");
202+
Утверждения.ПроверитьРавенство( прочитанныеПараметры["парам.Булево"], Истина);
203+
204+
Утверждения.ПроверитьРавенство( прочитанныеПараметры["ReadFile_testParam"], файлПараметров);
205+
206+
КонецПроцедуры
207+
179208
Процедура Тест_ПрочитатьФайлыПараметровЧерезОтносительныеСсылки() Экспорт
180209

181210
файлПараметров1 = ОбъединитьПути( ВременныйКаталог, "testParam1.json");
@@ -392,3 +421,51 @@
392421
Утверждения.ПроверитьРавенство( прочитанныеПараметры["testReadParam"], Строка( текДата ) );
393422

394423
КонецПроцедуры
424+
425+
Процедура ТестДолжен_ПолучитьПараметрЧерезМетод() Экспорт
426+
427+
файлПараметров = ОбъединитьПути( ВременныйКаталог, "testParam.json");
428+
429+
записьТекста = Новый ЗаписьТекста(файлПараметров);
430+
ЗаписьТекста.ЗаписатьСтроку( "{""парам.Число"": 100, ""парам.Строка"": ""100"", ""парам.Булево"": true}" );
431+
ЗаписьТекста.Закрыть();
432+
433+
ошибкиЧтения = Неопределено;
434+
435+
прочитанныеПараметры = ЧтениеПараметров.Прочитать( файлПараметров, ошибкиЧтения );
436+
437+
Утверждения.ПроверитьРавенство( ТипЗнч(прочитанныеПараметры), Тип("Соответствие"), "Прочитанные параметры должны быть с типом Соответствие");
438+
Утверждения.ПроверитьРавенство( прочитанныеПараметры.Количество(), 3, "Прочитанных параметров должно быть 3");
439+
440+
Утверждения.ПроверитьРавенство( ТипЗнч(ошибкиЧтения), Тип("Соответствие"), "Ошибки чтения должны быть с типом Соответствие");
441+
Утверждения.ПроверитьРавенство( ошибкиЧтения.Количество(), 0, "Ошибок чтения быть не должно");
442+
443+
Утверждения.ПроверитьРавенство( ЧтениеПараметров.Получить("парам.Число"), 100, "Должно быть парам.Число = 100");
444+
Утверждения.ПроверитьРавенство( ЧтениеПараметров.Получить("парам.Строка"), "100", "Должно быть парам.Строка = ""100""");
445+
Утверждения.ПроверитьРавенство( ЧтениеПараметров.Получить("парам.Булево"), Истина, "Должно быть парам.Булево = Истина");
446+
447+
КонецПроцедуры
448+
449+
Процедура ТестДолжен_ПолучитьОтсутствующийПараметрЧерезМетод() Экспорт
450+
451+
файлПараметров = ОбъединитьПути( ВременныйКаталог, "testParam.json");
452+
453+
записьТекста = Новый ЗаписьТекста(файлПараметров);
454+
ЗаписьТекста.ЗаписатьСтроку( "{""парам.Число"": 100, ""парам.Строка"": ""100"", ""парам.Булево"": true}" );
455+
ЗаписьТекста.Закрыть();
456+
457+
ошибкиЧтения = Неопределено;
458+
459+
прочитанныеПараметры = ЧтениеПараметров.Прочитать( файлПараметров, ошибкиЧтения );
460+
461+
Утверждения.ПроверитьРавенство( ТипЗнч(прочитанныеПараметры), Тип("Соответствие"), "Прочитанные параметры должны быть с типом Соответствие");
462+
Утверждения.ПроверитьРавенство( прочитанныеПараметры.Количество(), 3, "Прочитанных параметров должно быть 3");
463+
464+
Утверждения.ПроверитьРавенство( ТипЗнч(ошибкиЧтения), Тип("Соответствие"), "Ошибки чтения должны быть с типом Соответствие");
465+
Утверждения.ПроверитьРавенство( ошибкиЧтения.Количество(), 0, "Ошибок чтения быть не должно");
466+
467+
Утверждения.ПроверитьРавенство( ЧтениеПараметров.Получить("ОтсутствующийПараметр", 200), 200, "Должно быть ОтсутствующийПараметр = 200");
468+
Утверждения.ПроверитьРавенство( ЧтениеПараметров.Получить("ОтсутствующийПараметр2"), Неопределено, "Должно быть ОтсутствующийПараметр2 = Неопределено");
469+
470+
КонецПроцедуры
471+

Модули/ЧтениеПараметров.os

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,27 @@
4949

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

52+
// Получает значение параметра
53+
//
54+
// Параметры:
55+
// пИмяПараметра - Строка - имя параметра, который нужно прочитать
56+
// пЗначениеПоУмолчанию - Произвольный - если значение параметра не найдено (или = Неопределено), то будет возвращено
57+
// это значение по умолчанию
58+
// Возвращаемое значение:
59+
// Произвольный - Значение параметра
60+
//
61+
Функция Получить( Знач пИмяПараметра, Знач пЗначениеПоУмолчанию = Неопределено ) Экспорт
62+
63+
значениеПараметра = мПрочитанныеПараметры[пИмяПараметра];
64+
65+
Если значениеПараметра = Неопределено Тогда
66+
значениеПараметра = пЗначениеПоУмолчанию;
67+
КонецЕсли;
68+
69+
Возврат значениеПараметра;
70+
71+
КонецФункции
72+
5273
Процедура ПрочитатьОбъектСФайламиРекурсивно( Знач пОбъектЧтения, пМассивПрочитанныхЗначений )
5374

5475
Если ТипЗнч( пОбъектЧтения ) = Тип("Строка") Тогда
@@ -160,8 +181,6 @@
160181

161182
мПрочитанныеПараметры.Вставить( цПеременнаяСреды.Ключ, цПеременнаяСреды.Значение );
162183
ПрочитатьФайлИзЗначенияПараметра( цПеременнаяСреды.Ключ, цПеременнаяСреды.Значение );
163-
164-
Сообщить(цПеременнаяСреды.Ключ + " = " + цПеременнаяСреды.Значение);
165184

166185
КонецЦикла;
167186

0 commit comments

Comments
 (0)