forked from EvilBeaver/OneScript
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Тесты для ПрочитатьJSON к EvilBeaver#1373
- Loading branch information
Showing
1 changed file
with
183 additions
and
0 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,183 @@ | ||
Перем юТест; | ||
|
||
Функция ПолучитьСписокТестов(Тестирование) Экспорт | ||
|
||
юТест = Тестирование; | ||
|
||
СписокТестов = Новый Массив; | ||
|
||
СписокТестов.Добавить("Тест_ДолженПроверить_ПолучениеМассива"); | ||
СписокТестов.Добавить("Тест_ДолженПроверить_ПолучениеСтруктуры"); | ||
СписокТестов.Добавить("Тест_ДолженПроверить_ПолучениеСоответствия"); | ||
СписокТестов.Добавить("Тест_ДолженПроверить_ПолучениеЧисла"); | ||
СписокТестов.Добавить("Тест_ДолженПроверить_ПолучениеСтроки"); | ||
СписокТестов.Добавить("Тест_ДолженПроверить_ПолучениеПустогоМассива"); | ||
СписокТестов.Добавить("Тест_ДолженПроверить_ПолучениеПустойСтруктуры"); | ||
СписокТестов.Добавить("Тест_ДолженПроверить_ПолучениеПустогоСоответствия"); | ||
СписокТестов.Добавить("Тест_ДолженПроверить_ПолучениеВложенныхМассивов"); | ||
|
||
// issue #1373 | ||
СписокТестов.Добавить("Тест_ДолженПроверить_ОднострочныйКомментарийВКонцеМассива"); | ||
СписокТестов.Добавить("Тест_ДолженПроверить_ОднострочныйКомментарийВнутриСтуктуры"); | ||
СписокТестов.Добавить("Тест_ДолженПроверить_ОднострочныйКомментарийВНачалеМассива"); | ||
СписокТестов.Добавить("Тест_ДолженПроверить_МногострочныйКомментарийВнутриСтуктуры"); | ||
СписокТестов.Добавить("Тест_ДолженПроверить_МногострочныйКомментарийВнутриМассива"); | ||
|
||
Возврат СписокТестов; | ||
|
||
КонецФункции | ||
|
||
Функция ПрочитатьJSONИзСтроки(Стр, Знач ВСоответствие=Ложь) | ||
Чтение = Новый ЧтениеJSON(); | ||
Чтение.УстановитьСтроку(Стр); | ||
Результат = ПрочитатьJSON(Чтение, ВСоответствие); | ||
Чтение.Закрыть(); | ||
Возврат Результат; | ||
КонецФункции | ||
|
||
Процедура Тест_ДолженПроверить_ПолучениеМассива() Экспорт | ||
Текст = "[123,456,789]"; | ||
Результат = ПрочитатьJSONИзСтроки(Текст); | ||
|
||
юТест.ПроверитьРавенство(Тип("Массив"), ТипЗнч(Результат)); | ||
юТест.ПроверитьРавенство(3, Результат.Количество()); | ||
юТест.ПроверитьРавенство(456, Результат[1]); | ||
КонецПроцедуры | ||
|
||
Процедура Тест_ДолженПроверить_ПолучениеСтруктуры() Экспорт | ||
Текст = "{""Поле1"":123,""Поле2"":456}"; | ||
Результат = ПрочитатьJSONИзСтроки(Текст); | ||
|
||
юТест.ПроверитьРавенство(Тип("Структура"), ТипЗнч(Результат) ); | ||
юТест.ПроверитьРавенство(2, Результат.Количество()); | ||
юТест.ПроверитьРавенство(456, Результат.Поле2); | ||
КонецПроцедуры | ||
|
||
Процедура Тест_ДолженПроверить_ПолучениеСоответствия() Экспорт | ||
Текст = "{""Поле1"":123,""Поле2"":456}"; | ||
Результат = ПрочитатьJSONИзСтроки(Текст,Истина); | ||
|
||
юТест.ПроверитьРавенство(Тип("Соответствие"), ТипЗнч(Результат)); | ||
юТест.ПроверитьРавенство(2, Результат.Количество()); | ||
юТест.ПроверитьРавенство(456, Результат["Поле2"]); | ||
КонецПроцедуры | ||
|
||
Процедура Тест_ДолженПроверить_ПолучениеЧисла() Экспорт | ||
Текст = "321"; | ||
Результат = ПрочитатьJSONИзСтроки(Текст); | ||
|
||
юТест.ПроверитьРавенство(Тип("Число"), ТипЗнч(Результат)); | ||
юТест.ПроверитьРавенство(321, Результат); | ||
КонецПроцедуры | ||
|
||
Процедура Тест_ДолженПроверить_ПолучениеСтроки() Экспорт | ||
Текст = """абв"""; | ||
Результат = ПрочитатьJSONИзСтроки(Текст); | ||
|
||
юТест.ПроверитьРавенство(ТипЗнч(Результат), Тип("Строка")); | ||
юТест.ПроверитьРавенство(Результат, "абв"); | ||
КонецПроцедуры | ||
|
||
Процедура Тест_ДолженПроверить_ПолучениеПустогоМассива() Экспорт | ||
Текст = "[]"; | ||
Результат = ПрочитатьJSONИзСтроки(Текст); | ||
|
||
юТест.ПроверитьРавенство(Тип("Массив"), ТипЗнч(Результат) ); | ||
юТест.ПроверитьРавенство(0, Результат.Количество()); | ||
КонецПроцедуры | ||
|
||
Процедура Тест_ДолженПроверить_ПолучениеПустойСтруктуры() Экспорт | ||
Текст = "{}"; | ||
Результат = ПрочитатьJSONИзСтроки(Текст); | ||
|
||
юТест.ПроверитьРавенство(Тип("Структура"), ТипЗнч(Результат)); | ||
юТест.ПроверитьРавенство(Результат.Количество(), 0); | ||
КонецПроцедуры | ||
|
||
Процедура Тест_ДолженПроверить_ПолучениеПустогоСоответствия() Экспорт | ||
Текст = "{}"; | ||
Результат = ПрочитатьJSONИзСтроки(Текст,Истина); | ||
|
||
юТест.ПроверитьРавенство(Тип("Соответствие"), ТипЗнч(Результат)); | ||
юТест.ПроверитьРавенство(Результат.Количество(), 0); | ||
КонецПроцедуры | ||
|
||
Процедура Тест_ДолженПроверить_ПолучениеВложенныхМассивов() Экспорт | ||
Текст = "[[123,456],789,[-3,-2,""-0""],{""Ф"":[""Ы"",222]}]"; | ||
Результат = ПрочитатьJSONИзСтроки(Текст); | ||
|
||
юТест.ПроверитьРавенство(Тип("Массив"), ТипЗнч(Результат)); | ||
юТест.ПроверитьРавенство(4, Результат.Количество()); | ||
юТест.ПроверитьРавенство(Тип("Число"), ТипЗнч(Результат[1])); | ||
юТест.ПроверитьРавенство(789, Результат[1]); | ||
юТест.ПроверитьРавенство(Тип("Массив"), ТипЗнч(Результат[2])); | ||
юТест.ПроверитьРавенство(3, Результат[2].Количество()); | ||
юТест.ПроверитьРавенство("-0", Результат[2][2]); | ||
юТест.ПроверитьРавенство(Тип("Структура"), ТипЗнч(Результат[3])); | ||
КонецПроцедуры | ||
|
||
Процедура Тест_ДолженПроверить_ОднострочныйКомментарийВКонцеМассива() Экспорт | ||
Текст = "[ | ||
|{ | ||
| ""NAME"": ""n1"", | ||
| ""Method"": ""m1"", | ||
| ""PATH"": ""p1"" | ||
|}, | ||
|{ | ||
| ""NAME"": ""n2"", | ||
| //""Method"": ""m2"", | ||
| ""PATH"": ""p2"" | ||
|} | ||
|//}, | ||
|//{ | ||
|// ""NAME"": """", | ||
|]"; | ||
Результат = ПрочитатьJSONИзСтроки(Текст); | ||
|
||
юТест.ПроверитьРавенство(2, Результат.Количество(), 2); | ||
юТест.ПроверитьРавенство("p2", Результат[1].PATH); | ||
КонецПроцедуры | ||
|
||
Процедура Тест_ДолженПроверить_ОднострочныйКомментарийВнутриСтуктуры() Экспорт | ||
Текст = " | ||
|{ | ||
| ""test"": //fail | ||
| ""pass"" | ||
|}"; | ||
Результат = ПрочитатьJSONИзСтроки(Текст); | ||
|
||
юТест.ПроверитьРавенство("pass", Результат.test); | ||
КонецПроцедуры | ||
|
||
Процедура Тест_ДолженПроверить_ОднострочныйКомментарийВНачалеМассива() Экспорт | ||
Текст = " | ||
|[// !!! | ||
|""fail"",""pass""] | ||
|"; | ||
Результат = ПрочитатьJSONИзСтроки(Текст); | ||
|
||
юТест.ПроверитьРавенство("pass", Результат[1]); | ||
КонецПроцедуры | ||
|
||
Процедура Тест_ДолженПроверить_МногострочныйКомментарийВнутриСтуктуры() Экспорт | ||
Текст = " | ||
|{ | ||
| ""test"": /*fail | ||
| ""??""*/ ""ok"" | ||
|}"; | ||
Результат = ПрочитатьJSONИзСтроки(Текст); | ||
|
||
юТест.ПроверитьРавенство("ok", Результат.test); | ||
КонецПроцедуры | ||
|
||
Процедура Тест_ДолженПроверить_МногострочныйКомментарийВнутриМассива() Экспорт | ||
Текст = " | ||
|[ | ||
| ""test"", /*fail | ||
| ""??""]*/ ""ok"" | ||
|]"; | ||
Результат = ПрочитатьJSONИзСтроки(Текст); | ||
|
||
юТест.ПроверитьРавенство("ok", Результат[1]); | ||
КонецПроцедуры | ||
|