/
EvilBeaver
/
OneScript
Обзор
Документация
Войти
/
EvilBeaver
/
OneScript
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
develop
tests/XDTO/test-XDTOSerializer.os
413 строк
22 KB
yukon39
Сериализатор теперь работает.
16 апр 2019, 18:30
16 апр 2019, 18:30
5d5311b
Код
Авторство
О чём код?
Перем ЮнитТест; #Область ОбработчикиСобытийМодуля Функция ПолучитьСписокТестов(МенеджерТестирования) Экспорт ЮнитТест = МенеджерТестирования; СписокТестов = Новый Массив; СписокТестов.Добавить("ТестКонструктор"); СписокТестов.Добавить("TestConstructor"); СписокТестов.Добавить("ТестСтрока"); СписокТестов.Добавить("ТестЧисло"); СписокТестов.Добавить("ТестБулево"); СписокТестов.Добавить("ТестДата"); СписокТестов.Добавить("ТестНеопределено"); СписокТестов.Добавить("ТестНазначениеИмениФорма"); //TODO: СписокТестов.Добавить("ТестЗаписьСИменем"); Возврат СписокТестов; КонецФункции #КонецОбласти #Область ОбработчикиТестирования Процедура ТестКонструктор() Экспорт Сериализатор = Новый СериализаторXDTO; ЮнитТест.ПроверитьРавенство(ТипЗнч(Сериализатор), Тип("СериализаторXDTO")); КонецПроцедуры Procedure TestConstructor() Export Serializer = New XDTOSerializer; ЮнитТест.ПроверитьРавенство(TypeOf(Serializer), Type("XDTOSerializer")); EndProcedure Процедура ТестСтрока() Экспорт СериализаторXDTO = Новый СериализаторXDTO; ЗаписьXML = Новый ЗаписьXML; ЗаписьXML.УстановитьСтроку(); ЗаписьXML.ЗаписатьНачалоЭлемента("test"); ЗаписьXML.ЗаписатьСоответствиеПространстваИмен("", "http://www.w3.org/2001/XMLSchema"); ЗаписьXML.ЗаписатьСоответствиеПространстваИмен("xsi", "http://www.w3.org/2001/XMLSchema-instance"); ЗаписьXML.ЗаписатьНачалоЭлемента("testImplicit"); СериализаторXDTO.ЗаписатьXML(ЗаписьXML, "testImplicit"); ЗаписьXML.ЗаписатьКонецЭлемента(); ЗаписьXML.ЗаписатьНачалоЭлемента("testExplicit"); СериализаторXDTO.ЗаписатьXML(ЗаписьXML, "testExplicit", НазначениеТипаXML.Явное); ЗаписьXML.ЗаписатьКонецЭлемента(); ЗаписьXML.ЗаписатьКонецЭлемента(); ТекстXML = ЗаписьXML.Закрыть(); ЧтениеXML = Новый ЧтениеXML; ЧтениеXML.УстановитьСтроку(ТекстXML); ЧтениеXML.Прочитать(); // "test" ЧтениеXML.Прочитать(); // "testImplicit" ЧтениеXML.Прочитать(); // "string" ЮнитТест.ПроверитьРавенство(ЧтениеXML.Имя, "string"); Строка = СериализаторXDTO.ПрочитатьXML(ЧтениеXML, Тип("Строка")); ЮнитТест.ПроверитьРавенство(ТипЗнч(Строка), Тип("Строка")); ЮнитТест.ПроверитьРавенство(Строка, "testImplicit"); ЧтениеXML.Прочитать(); // "testExplicit" ЧтениеXML.Прочитать(); // "string" ЮнитТест.ПроверитьРавенство(ЧтениеXML.Имя, "string"); Строка = СериализаторXDTO.ПрочитатьXML(ЧтениеXML); ЮнитТест.ПроверитьРавенство(ТипЗнч(Строка), Тип("Строка")); ЮнитТест.ПроверитьРавенство(Строка, "testExplicit"); КонецПроцедуры Процедура ТестЧисло() Экспорт СериализаторXDTO = Новый СериализаторXDTO; ЗаписьXML = Новый ЗаписьXML; ЗаписьXML.УстановитьСтроку(); ЗаписьXML.ЗаписатьНачалоЭлемента("test"); ЗаписьXML.ЗаписатьСоответствиеПространстваИмен("", "http://www.w3.org/2001/XMLSchema"); ЗаписьXML.ЗаписатьСоответствиеПространстваИмен("xsi", "http://www.w3.org/2001/XMLSchema-instance"); ЗаписьXML.ЗаписатьНачалоЭлемента("testImplicit"); СериализаторXDTO.ЗаписатьXML(ЗаписьXML, 100500); ЗаписьXML.ЗаписатьКонецЭлемента(); ЗаписьXML.ЗаписатьНачалоЭлемента("testExplicit"); СериализаторXDTO.ЗаписатьXML(ЗаписьXML, 100500, НазначениеТипаXML.Явное); ЗаписьXML.ЗаписатьКонецЭлемента(); ЗаписьXML.ЗаписатьКонецЭлемента(); ТекстXML = ЗаписьXML.Закрыть(); ЧтениеXML = Новый ЧтениеXML; ЧтениеXML.УстановитьСтроку(ТекстXML); ЧтениеXML.Прочитать(); // "test" ЧтениеXML.Прочитать(); // "testImplicit" ЧтениеXML.Прочитать(); // "decimal" ЮнитТест.ПроверитьРавенство(ЧтениеXML.Имя, "decimal"); Число = СериализаторXDTO.ПрочитатьXML(ЧтениеXML, Тип("Число")); ЮнитТест.ПроверитьРавенство(ТипЗнч(Число), Тип("Число")); ЮнитТест.ПроверитьРавенство(Число, 100500); ЧтениеXML.Прочитать(); // "testExplicit" ЧтениеXML.Прочитать(); // "decimal" ЮнитТест.ПроверитьРавенство(ЧтениеXML.Имя, "decimal"); Число = СериализаторXDTO.ПрочитатьXML(ЧтениеXML); ЮнитТест.ПроверитьРавенство(ТипЗнч(Число), Тип("Число")); ЮнитТест.ПроверитьРавенство(Число, 100500); КонецПроцедуры Процедура ТестБулево() Экспорт СериализаторXDTO = Новый СериализаторXDTO; ЗаписьXML = Новый ЗаписьXML; ЗаписьXML.УстановитьСтроку(); ЗаписьXML.ЗаписатьНачалоЭлемента("test"); ЗаписьXML.ЗаписатьСоответствиеПространстваИмен("", "http://www.w3.org/2001/XMLSchema"); ЗаписьXML.ЗаписатьСоответствиеПространстваИмен("xsi", "http://www.w3.org/2001/XMLSchema-instance"); ЗаписьXML.ЗаписатьНачалоЭлемента("testImplicit"); СериализаторXDTO.ЗаписатьXML(ЗаписьXML, Истина); ЗаписьXML.ЗаписатьКонецЭлемента(); ЗаписьXML.ЗаписатьНачалоЭлемента("testExplicit"); СериализаторXDTO.ЗаписатьXML(ЗаписьXML, Ложь, НазначениеТипаXML.Явное); ЗаписьXML.ЗаписатьКонецЭлемента(); ЗаписьXML.ЗаписатьКонецЭлемента(); ТекстXML = ЗаписьXML.Закрыть(); ЧтениеXML = Новый ЧтениеXML; ЧтениеXML.УстановитьСтроку(ТекстXML); ЧтениеXML.Прочитать(); // "test" ЧтениеXML.Прочитать(); // "testImplicit" ЧтениеXML.Прочитать(); // "boolean" ЮнитТест.ПроверитьРавенство(ЧтениеXML.Имя, "boolean"); Булево = СериализаторXDTO.ПрочитатьXML(ЧтениеXML, Тип("Булево")); ЮнитТест.ПроверитьРавенство(ТипЗнч(Булево), Тип("Булево")); ЮнитТест.ПроверитьИстину(Булево); ЧтениеXML.Прочитать(); // "testExplicit" ЧтениеXML.Прочитать(); // "boolean" ЮнитТест.ПроверитьРавенство(ЧтениеXML.Имя, "boolean"); Булево = СериализаторXDTO.ПрочитатьXML(ЧтениеXML); ЮнитТест.ПроверитьРавенство(ТипЗнч(Булево), Тип("Булево")); ЮнитТест.ПроверитьЛожь(Булево); КонецПроцедуры Процедура ТестДата() Экспорт ТестоваяДата = ТекущаяДата(); СериализаторXDTO = Новый СериализаторXDTO; ЗаписьXML = Новый ЗаписьXML; ЗаписьXML.УстановитьСтроку(); ЗаписьXML.ЗаписатьНачалоЭлемента("test"); ЗаписьXML.ЗаписатьСоответствиеПространстваИмен("", "http://www.w3.org/2001/XMLSchema"); ЗаписьXML.ЗаписатьСоответствиеПространстваИмен("xsi", "http://www.w3.org/2001/XMLSchema-instance"); ЗаписьXML.ЗаписатьНачалоЭлемента("testImplicit"); СериализаторXDTO.ЗаписатьXML(ЗаписьXML, ТестоваяДата); ЗаписьXML.ЗаписатьКонецЭлемента(); ЗаписьXML.ЗаписатьНачалоЭлемента("testExplicit"); СериализаторXDTO.ЗаписатьXML(ЗаписьXML, ТестоваяДата, НазначениеТипаXML.Явное); ЗаписьXML.ЗаписатьКонецЭлемента(); ЗаписьXML.ЗаписатьКонецЭлемента(); ТекстXML = ЗаписьXML.Закрыть(); ЧтениеXML = Новый ЧтениеXML; ЧтениеXML.УстановитьСтроку(ТекстXML); ЧтениеXML.Прочитать(); // "test" ЧтениеXML.Прочитать(); // "testImplicit" ЧтениеXML.Прочитать(); // "dateTime" ЮнитТест.ПроверитьРавенство(ЧтениеXML.Имя, "dateTime"); Дата = СериализаторXDTO.ПрочитатьXML(ЧтениеXML, Тип("Дата")); ЮнитТест.ПроверитьРавенство(ТипЗнч(Дата), Тип("Дата")); ЮнитТест.ПроверитьРавенство(Дата, ТестоваяДата); ЧтениеXML.Прочитать(); // "testExplicit" ЧтениеXML.Прочитать(); // "dateTime" ЮнитТест.ПроверитьРавенство(ЧтениеXML.Имя, "dateTime"); Дата = СериализаторXDTO.ПрочитатьXML(ЧтениеXML); ЮнитТест.ПроверитьРавенство(ТипЗнч(Дата), Тип("Дата")); ЮнитТест.ПроверитьРавенство(Дата, ТестоваяДата); КонецПроцедуры Процедура ТестНеопределено() Экспорт СериализаторXDTO = Новый СериализаторXDTO; ЗаписьXML = Новый ЗаписьXML; ЗаписьXML.УстановитьСтроку(); ЗаписьXML.ЗаписатьНачалоЭлемента("test"); ЗаписьXML.ЗаписатьСоответствиеПространстваИмен("", "http://www.w3.org/2001/XMLSchema"); ЗаписьXML.ЗаписатьСоответствиеПространстваИмен("xsi", "http://www.w3.org/2001/XMLSchema-instance"); ЗаписьXML.ЗаписатьНачалоЭлемента("testImplicit"); СериализаторXDTO.ЗаписатьXML(ЗаписьXML, Неопределено); ЗаписьXML.ЗаписатьКонецЭлемента(); ЗаписьXML.ЗаписатьНачалоЭлемента("testExplicit"); СериализаторXDTO.ЗаписатьXML(ЗаписьXML, Неопределено, НазначениеТипаXML.Явное); ЗаписьXML.ЗаписатьКонецЭлемента(); ЗаписьXML.ЗаписатьКонецЭлемента(); ТекстXML = ЗаписьXML.Закрыть(); ЧтениеXML = Новый ЧтениеXML; ЧтениеXML.УстановитьСтроку(ТекстXML); ЧтениеXML.Прочитать(); // "test" ЧтениеXML.Прочитать(); // "testImplicit" ЧтениеXML.Прочитать(); // "Undefined " ЮнитТест.ПроверитьРавенство(ЧтениеXML.Имя, "Undefined"); ЗначениеНеопределено = СериализаторXDTO.ПрочитатьXML(ЧтениеXML, Тип("Неопределено")); ЮнитТест.ПроверитьРавенство(ТипЗнч(ЗначениеНеопределено), Тип("Неопределено")); ЮнитТест.ПроверитьРавенство(ЗначениеНеопределено, Неопределено); ЧтениеXML.Прочитать(); // "testExplicit" ЧтениеXML.Прочитать(); // "Undefined " ЮнитТест.ПроверитьРавенство(ЧтениеXML.Имя, "Undefined"); ЗначениеНеопределено = СериализаторXDTO.ПрочитатьXML(ЧтениеXML); ЮнитТест.ПроверитьРавенство(ТипЗнч(ЗначениеНеопределено), Тип("Неопределено")); ЮнитТест.ПроверитьРавенство(ЗначениеНеопределено, Неопределено); КонецПроцедуры Процедура ТестНазначениеИмениФорма() Экспорт СериализаторXDTO = Новый СериализаторXDTO; ЗаписьXML = Новый ЗаписьXML; ЗаписьXML.УстановитьСтроку(); ЗаписьXML.ЗаписатьНачалоЭлемента("test"); ЗаписьXML.ЗаписатьСоответствиеПространстваИмен("", "http://www.w3.org/2001/XMLSchema"); ЗаписьXML.ЗаписатьСоответствиеПространстваИмен("xsi", "http://www.w3.org/2001/XMLSchema-instance"); ЗаписьXML.ЗаписатьНачалоЭлемента("test11"); СериализаторXDTO.ЗаписатьXML(ЗаписьXML, "test11", НазначениеТипаXML.Неявное, ФормаXML.Элемент); ЗаписьXML.ЗаписатьКонецЭлемента(); ЗаписьXML.ЗаписатьНачалоЭлемента("test12"); СериализаторXDTO.ЗаписатьXML(ЗаписьXML, "test12", НазначениеТипаXML.Явное, ФормаXML.Элемент); ЗаписьXML.ЗаписатьКонецЭлемента(); ЗаписьXML.ЗаписатьНачалоЭлемента("test21"); СериализаторXDTO.ЗаписатьXML(ЗаписьXML, "test21", НазначениеТипаXML.Неявное, ФормаXML.Атрибут); ЗаписьXML.ЗаписатьКонецЭлемента(); ЗаписьXML.ЗаписатьНачалоЭлемента("test22"); СериализаторXDTO.ЗаписатьXML(ЗаписьXML, "test22", НазначениеТипаXML.Явное, ФормаXML.Атрибут); ЗаписьXML.ЗаписатьКонецЭлемента(); ЗаписьXML.ЗаписатьНачалоЭлемента("test31"); СериализаторXDTO.ЗаписатьXML(ЗаписьXML, "test31", НазначениеТипаXML.Неявное, ФормаXML.Текст); ЗаписьXML.ЗаписатьКонецЭлемента(); ЗаписьXML.ЗаписатьНачалоЭлемента("test32"); СериализаторXDTO.ЗаписатьXML(ЗаписьXML, "test32", НазначениеТипаXML.Явное, ФормаXML.Текст); ЗаписьXML.ЗаписатьКонецЭлемента(); ЗаписьXML.ЗаписатьНачалоЭлемента("test41"); СериализаторXDTO.ЗаписатьXML(ЗаписьXML, "test41"); ЗаписьXML.ЗаписатьКонецЭлемента(); ЗаписьXML.ЗаписатьНачалоЭлемента("test42"); СериализаторXDTO.ЗаписатьXML(ЗаписьXML, "test42", НазначениеТипаXML.Явное); ЗаписьXML.ЗаписатьКонецЭлемента(); ЗаписьXML.ЗаписатьКонецЭлемента(); ТекстXML = ЗаписьXML.Закрыть(); ЧтениеXML = Новый ЧтениеXML; ЧтениеXML.УстановитьСтроку(ТекстXML); ЧтениеXML.Прочитать(); // "test" ЧтениеXML.Прочитать(); // "test11" ЧтениеXML.Прочитать(); // "string" ЮнитТест.ПроверитьРавенство(ЧтениеXML.Имя, "string"); ЧтениеXML.Прочитать(); //##text ЮнитТест.ПроверитьРавенство(ЧтениеXML.Значение, "test11"); ЧтениеXML.Прочитать(); // "/string" ЧтениеXML.Прочитать(); // "/test11" ЧтениеXML.Прочитать(); // "test12" ЧтениеXML.Прочитать(); // "string" ЮнитТест.ПроверитьРавенство(ЧтениеXML.Имя, "string"); Атрибут = ЧтениеXML.ЗначениеАтрибута("type", "http://www.w3.org/2001/XMLSchema-instance"); ЮнитТест.ПроверитьРавенство(Атрибут, "string"); ЧтениеXML.Прочитать(); //##text ЮнитТест.ПроверитьРавенство(ЧтениеXML.Значение, "test12"); ЧтениеXML.Прочитать(); // "/string" ЧтениеXML.Прочитать(); // "/test12" ЧтениеXML.Прочитать(); // "test21" Атрибут = ЧтениеXML.ЗначениеАтрибута("string"); ЮнитТест.ПроверитьРавенство(Атрибут, "test21"); ЧтениеXML.Прочитать(); // "/test21" ЧтениеXML.Прочитать(); // "test22" Атрибут = ЧтениеXML.ЗначениеАтрибута("string"); ЮнитТест.ПроверитьРавенство(Атрибут, "test22"); ЧтениеXML.Прочитать(); // "/test22" ЧтениеXML.Прочитать(); // "test31" ЧтениеXML.Прочитать(); //##text ЮнитТест.ПроверитьРавенство(ЧтениеXML.Значение, "test31"); ЧтениеXML.Прочитать(); // "/test31" ЧтениеXML.Прочитать(); // "test32" ЧтениеXML.Прочитать(); //##text ЮнитТест.ПроверитьРавенство(ЧтениеXML.Значение, "test32"); ЧтениеXML.Прочитать(); // "/test32" ЧтениеXML.Прочитать(); // "test41" ЧтениеXML.Прочитать(); // "string" Строка = СериализаторXDTO.ПрочитатьXML(ЧтениеXML, Тип("Строка")); ЮнитТест.ПроверитьРавенство(Строка, "test41"); ЧтениеXML.Прочитать(); // "test42" ЧтениеXML.Прочитать(); // "string" Строка = СериализаторXDTO.ПрочитатьXML(ЧтениеXML); ЮнитТест.ПроверитьРавенство(Строка, "test42"); КонецПроцедуры Процедура ТестЗаписьСИменем() Экспорт СериализаторXDTO = Новый СериализаторXDTO; ЗаписьXML = Новый ЗаписьXML; ЗаписьXML.УстановитьСтроку(); ЗаписьXML.ЗаписатьНачалоЭлемента("test"); ЗаписьXML.ЗаписатьСоответствиеПространстваИмен("", "http://www.w3.org/2001/XMLSchema"); ЗаписьXML.ЗаписатьСоответствиеПространстваИмен("xsi", "http://www.w3.org/2001/XMLSchema-instance"); ЗаписьXML.ЗаписатьНачалоЭлемента("testImplicit"); СериализаторXDTO.ЗаписатьXML(ЗаписьXML, "testImplicit", "testElement", НазначениеТипаXML.Неявное, ФормаXML.Элемент); ЗаписьXML.ЗаписатьКонецЭлемента(); ЗаписьXML.ЗаписатьНачалоЭлемента("testExplicit"); СериализаторXDTO.ЗаписатьXML(ЗаписьXML, "testExplicit", "testElement", НазначениеТипаXML.Явное, ФормаXML.Элемент); ЗаписьXML.ЗаписатьКонецЭлемента(); ЗаписьXML.ЗаписатьКонецЭлемента(); ТекстXML = ЗаписьXML.Закрыть(); ЧтениеXML = Новый ЧтениеXML; ЧтениеXML.УстановитьСтроку(ТекстXML); ЧтениеXML.Прочитать(); // "test" ЧтениеXML.Прочитать(); // "testImplicit" ЧтениеXML.Прочитать(); // "testElement" ЮнитТест.ПроверитьРавенство(ЧтениеXML.Имя, "testElement"); Строка = СериализаторXDTO.ПрочитатьXML(ЧтениеXML, Тип("Строка")); ЮнитТест.ПроверитьРавенство(ТипЗнч(Строка), Тип("Строка")); ЮнитТест.ПроверитьРавенство(Строка, "testImplicit"); ЧтениеXML.Прочитать(); // "testExplicit" ЧтениеXML.Прочитать(); // "testElement" ЮнитТест.ПроверитьРавенство(ЧтениеXML.Имя, "testElement"); Строка = СериализаторXDTO.ПрочитатьXML(ЧтениеXML); ЮнитТест.ПроверитьРавенство(ТипЗнч(Строка), Тип("Строка")); ЮнитТест.ПроверитьРавенство(Строка, "testExplicit"); КонецПроцедуры #КонецОбласти Если СтартовыйСценарий().Источник = ТекущийСценарий().Источник Тогда СериализаторXDTO = Новый СериализаторXDTO; ЗаписьXML = Новый ЗаписьXML; ЗаписьXML.УстановитьСтроку(); ТекстXML = ЗаписьXML.Закрыть(); Сообщить(ТекущаяДата()); Сообщить("НачалоПримера"); Сообщить(ТекстXML); Сообщить("КонецПримера"); КонецЕсли;