/
EvilBeaver
/
OneScript
Обзор
Документация
Войти
/
EvilBeaver
/
OneScript
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
develop
tests/xmlread.os
635 строк
49 KB
Michael Rybakin
Совместимость при изменении свойства ИгнорироватьПробелы +расширены тесты
02 июн 2022, 15:03
02 июн 2022, 15:03
b3d78ff
Код
Авторство
О чём код?
/////////////////////////////////////////////////////////////////////// // // Приемочные тесты объекта ЧтениеXML // /////////////////////////////////////////////////////////////////////// Перем юТест; //////////////////////////////////////////////////////////////////// // Программный интерфейс Функция Версия() Экспорт Возврат "0.3"; КонецФункции Функция ПолучитьСписокТестов(ЮнитТестирование) Экспорт юТест = ЮнитТестирование; ВсеТесты = Новый Массив; ВсеТесты.Добавить("ТестДолжен_СоздатьПараметрыЧтенияПоУмолчанию"); ВсеТесты.Добавить("ТестДолжен_СоздатьПараметрыЧтения"); ВсеТесты.Добавить("ТестДолжен_ПолучитьПараметрыЧтенияНеинициализированного"); ВсеТесты.Добавить("ТестДолжен_ПолучитьПараметрыЧтенияИнициализированного"); ВсеТесты.Добавить("ТестДолжен_ПрочитатьЭлементыИзСтроки"); ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтениеПустыхЭлементов"); ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтениеПустыхЭлементовСАтрибутами"); ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтениеНепустыхЭлементовСАтрибутами"); ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтениеПустыхЭлементовCЗаголовкомXML"); ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоПропускПереходитНаКонецЭлемента"); ВсеТесты.Добавить("ТестДолжен_ПроверитьРаботуКонтекстаПространствИмен"); ВсеТесты.Добавить("ТестДолжен_ПроверитьСозданиеСПараметрами_Комментарий"); ВсеТесты.Добавить("ТестДолжен_ПроверитьСозданиеСПараметрами_ПробельныеСимволы1"); ВсеТесты.Добавить("ТестДолжен_ПроверитьСозданиеСПараметрами_ПробельныеСимволы2"); ВсеТесты.Добавить("ТестДолжен_ПроверитьСозданиеСПараметрами_ПробельныеСимволы3"); ВсеТесты.Добавить("ТестДолжен_ПроверитьПереключениеПробельныхСимволов"); ВсеТесты.Добавить("ТестДолжен_ПроверитьПереключениеПробельныхСимволов2"); ВсеТесты.Добавить("ТестДолжен_ПроверитьПереключениеПробельныхСимволов3"); ВсеТесты.Добавить("ТестДолжен_ПроверитьЗначенияСвойствНеинициализированного"); ВсеТесты.Добавить("ТестДолжен_ПроверитьЗначенияСвойствИнициализированного"); ВсеТесты.Добавить("ТестДолжен_ПроверитьЗначенияСвойствАтрибута"); Возврат ВсеТесты; КонецФункции Процедура ТестДолжен_СоздатьПараметрыЧтенияПоУмолчанию() Экспорт ПараметрыЧтения = Новый ПараметрыЧтенияXML(); юТест.ПроверитьРавенство(ПараметрыЧтения.Версия,"1.0","Версия"); юТест.ПроверитьРавенство(ПараметрыЧтения.Язык,"","Язык"); юТест.ПроверитьРавенство(ПараметрыЧтения.ПробельныеСимволы,ПробельныеСимволыXML.ПоУмолчанию,"ПробельныеСимволы"); юТест.ПроверитьРавенство(ПараметрыЧтения.ТипПроверкиПравильности,ТипПроверкиXML.НетПроверки,"ТипПроверкиПравильности"); юТест.ПроверитьРавенство(ПараметрыЧтения.ИгнорироватьОбъявлениеXML,Истина,"ИгнорироватьОбъявлениеXML"); юТест.ПроверитьРавенство(ПараметрыЧтения.ИгнорироватьТипДокумента,Истина,"ИгнорироватьТипДокумента"); юТест.ПроверитьРавенство(ПараметрыЧтения.ИгнорироватьИнструкцииОбработки,Ложь,"ИгнорироватьИнструкцииОбработки"); юТест.ПроверитьРавенство(ПараметрыЧтения.ИгнорироватьКомментарии,Ложь,"ИгнорироватьКомментарии"); юТест.ПроверитьРавенство(ПараметрыЧтения.ИгнорироватьПробельныеСимволы,Истина,"ИгнорироватьПробельныеСимволы"); юТест.ПроверитьРавенство(ПараметрыЧтения.СекцииCDATAКакТекст,Ложь,"СекцииCDATAКакТекст"); юТест.ПроверитьРавенство(ПараметрыЧтения.ИспользоватьИгнорируемыеПробельныеСимволы,Ложь,"ИспользоватьИгнорируемыеПробельныеСимволы"); КонецПроцедуры Процедура ТестДолжен_СоздатьПараметрыЧтения() Экспорт ПараметрыЧтения = Новый ПараметрыЧтенияXML( "1.1", "ru", ПробельныеСимволыXML.Сохранять, ТипПроверкиXML.СхемаXML, Ложь, Ложь, Истина, Истина, Ложь, Истина, Истина ); юТест.ПроверитьРавенство(ПараметрыЧтения.Версия,"1.1","Версия"); юТест.ПроверитьРавенство(ПараметрыЧтения.Язык,"ru","Язык"); юТест.ПроверитьРавенство(ПараметрыЧтения.ПробельныеСимволы,ПробельныеСимволыXML.Сохранять,"ПробельныеСимволы"); юТест.ПроверитьРавенство(ПараметрыЧтения.ТипПроверкиПравильности,ТипПроверкиXML.СхемаXML,"ТипПроверкиПравильности"); юТест.ПроверитьРавенство(ПараметрыЧтения.ИгнорироватьОбъявлениеXML,Ложь,"ИгнорироватьОбъявлениеXML"); юТест.ПроверитьРавенство(ПараметрыЧтения.ИгнорироватьТипДокумента,Ложь,"ИгнорироватьТипДокумента"); юТест.ПроверитьРавенство(ПараметрыЧтения.ИгнорироватьИнструкцииОбработки,Истина,"ИгнорироватьИнструкцииОбработки"); юТест.ПроверитьРавенство(ПараметрыЧтения.ИгнорироватьКомментарии,Истина,"ИгнорироватьКомментарии"); юТест.ПроверитьРавенство(ПараметрыЧтения.ИгнорироватьПробельныеСимволы,Ложь,"ИгнорироватьПробельныеСимволы"); юТест.ПроверитьРавенство(ПараметрыЧтения.СекцииCDATAКакТекст,Истина,"СекцииCDATAКакТекст"); юТест.ПроверитьРавенство(ПараметрыЧтения.ИспользоватьИгнорируемыеПробельныеСимволы,Истина,"ИспользоватьИгнорируемыеПробельныеСимволы"); КонецПроцедуры Процедура ТестДолжен_ПолучитьПараметрыЧтенияНеинициализированного() Экспорт ЧтениеXML = Новый ЧтениеXML; ПараметрыЧтения = ЧтениеXML.Параметры; юТест.ПроверитьРавенство(ПараметрыЧтения.Версия,"1.0","Версия"); юТест.ПроверитьРавенство(ПараметрыЧтения.Язык,"","Язык"); юТест.ПроверитьРавенство(ПараметрыЧтения.ПробельныеСимволы,ПробельныеСимволыXML.ПоУмолчанию,"ПробельныеСимволы"); юТест.ПроверитьРавенство(ПараметрыЧтения.ТипПроверкиПравильности,ТипПроверкиXML.НетПроверки,"ТипПроверкиПравильности"); юТест.ПроверитьРавенство(ПараметрыЧтения.ИгнорироватьОбъявлениеXML,Истина,"ИгнорироватьОбъявлениеXML"); юТест.ПроверитьРавенство(ПараметрыЧтения.ИгнорироватьТипДокумента,Истина,"ИгнорироватьТипДокумента"); юТест.ПроверитьРавенство(ПараметрыЧтения.ИгнорироватьИнструкцииОбработки,Ложь,"ИгнорироватьИнструкцииОбработки"); юТест.ПроверитьРавенство(ПараметрыЧтения.ИгнорироватьКомментарии,Ложь,"ИгнорироватьКомментарии"); юТест.ПроверитьРавенство(ПараметрыЧтения.ИгнорироватьПробельныеСимволы,Истина,"ИгнорироватьПробельныеСимволы"); юТест.ПроверитьРавенство(ПараметрыЧтения.СекцииCDATAКакТекст,Ложь,"СекцииCDATAКакТекст"); юТест.ПроверитьРавенство(ПараметрыЧтения.ИспользоватьИгнорируемыеПробельныеСимволы,Ложь,"ИспользоватьИгнорируемыеПробельныеСимволы"); КонецПроцедуры Процедура ТестДолжен_ПолучитьПараметрыЧтенияИнициализированного() Экспорт ЧтениеXML = Новый ЧтениеXML; ЧтениеXML.УстановитьСтроку(СтрокаXML()); ПараметрыЧтения = ЧтениеXML.Параметры; юТест.ПроверитьРавенство(ПараметрыЧтения.Версия,"1.0","Версия"); юТест.ПроверитьРавенство(ПараметрыЧтения.Язык,"","Язык"); юТест.ПроверитьРавенство(ПараметрыЧтения.ПробельныеСимволы,ПробельныеСимволыXML.ПоУмолчанию,"ПробельныеСимволы"); юТест.ПроверитьРавенство(ПараметрыЧтения.ТипПроверкиПравильности,ТипПроверкиXML.НетПроверки,"ТипПроверкиПравильности"); юТест.ПроверитьРавенство(ПараметрыЧтения.ИгнорироватьОбъявлениеXML,Истина,"ИгнорироватьОбъявлениеXML"); юТест.ПроверитьРавенство(ПараметрыЧтения.ИгнорироватьТипДокумента,Истина,"ИгнорироватьТипДокумента"); юТест.ПроверитьРавенство(ПараметрыЧтения.ИгнорироватьИнструкцииОбработки,Ложь,"ИгнорироватьИнструкцииОбработки"); юТест.ПроверитьРавенство(ПараметрыЧтения.ИгнорироватьКомментарии,Истина,"ИгнорироватьКомментарии"); юТест.ПроверитьРавенство(ПараметрыЧтения.ИгнорироватьПробельныеСимволы,Истина,"ИгнорироватьПробельныеСимволы"); юТест.ПроверитьРавенство(ПараметрыЧтения.СекцииCDATAКакТекст,Истина,"СекцииCDATAКакТекст"); юТест.ПроверитьРавенство(ПараметрыЧтения.ИспользоватьИгнорируемыеПробельныеСимволы,Ложь,"ИспользоватьИгнорируемыеПробельныеСимволы"); КонецПроцедуры Процедура ТестДолжен_ПрочитатьЭлементыИзСтроки() Экспорт ЧтениеXML = Новый ЧтениеXML; ЧтениеXML.УстановитьСтроку(СтрокаXML()); юТест.ПроверитьИстину(ЧтениеXML.Прочитать(),"Данные XML пусты"); юТест.ПроверитьРавенство(ЧтениеXML.Имя, "xml"); юТест.ПроверитьРавенство(ЧтениеXML.ТипУзла, ТипУзлаXML.НачалоЭлемента); ЧтениеXML.Прочитать(); юТест.ПроверитьРавенство(ЧтениеXML.ТипУзла, ТипУзлаXML.НачалоЭлемента, "тест типа узла: НачалоЭлемента data"); ЧтениеXML.Прочитать(); юТест.ПроверитьРавенство(ЧтениеXML.Значение, "hello"); ЧтениеXML.Прочитать(); юТест.ПроверитьРавенство(ЧтениеXML.ТипУзла, ТипУзлаXML.КонецЭлемента, "тест типа узла: КонецЭлемента data"); ЧтениеXML.Прочитать(); юТест.ПроверитьРавенство(ЧтениеXML.ТипУзла, ТипУзлаXML.КонецЭлемента, "тест типа узла: Текст КонецЭлемента xml"); ЧтениеXML.Закрыть(); КонецПроцедуры Процедура ТестДолжен_ПроверитьЧтениеПустыхЭлементов() Экспорт Ч = Новый ЧтениеXml(); Ч.УстановитьСтроку("<Data />"); ТипыУзлов = Новый Массив; Пока Ч.Прочитать() Цикл ТипыУзлов.Добавить(Ч.ТипУзла); Пока Ч.ПрочитатьАтрибут() Цикл ТипыУзлов.Добавить(Ч.ТипУзла); КонецЦикла КонецЦикла; юТест.ПроверитьРавенство(ТипыУзлов.Количество(), 2); юТест.ПроверитьРавенство(ТипыУзлов[0], ТипУзлаXML.НачалоЭлемента); юТест.ПроверитьРавенство(ТипыУзлов[1], ТипУзлаXML.КонецЭлемента); КонецПроцедуры Процедура ТестДолжен_ПроверитьЧтениеПустыхЭлементовСАтрибутами() Экспорт Ч = Новый ЧтениеXml(); Ч.УстановитьСтроку("<Data f=""123"" d=""222"" b="">""/>"); ТипыУзлов = Новый Массив; Пока Ч.Прочитать() Цикл ТипыУзлов.Добавить(Ч.ТипУзла); Пока Ч.ПрочитатьАтрибут() Цикл ТипыУзлов.Добавить(Ч.ТипУзла); КонецЦикла КонецЦикла; юТест.ПроверитьРавенство(ТипыУзлов.Количество(),8); юТест.ПроверитьРавенство(ТипыУзлов[0], ТипУзлаXML.НачалоЭлемента,"0"); юТест.ПроверитьРавенство(ТипыУзлов[1], ТипУзлаXML.Атрибут,"1"); юТест.ПроверитьРавенство(ТипыУзлов[2], ТипУзлаXML.Атрибут,"2"); юТест.ПроверитьРавенство(ТипыУзлов[3], ТипУзлаXML.Атрибут,"3"); юТест.ПроверитьРавенство(ТипыУзлов[4], ТипУзлаXML.КонецЭлемента,"4"); юТест.ПроверитьРавенство(ТипыУзлов[5], ТипУзлаXML.КонецЭлемента,"5"); юТест.ПроверитьРавенство(ТипыУзлов[6], ТипУзлаXML.КонецЭлемента,"6"); юТест.ПроверитьРавенство(ТипыУзлов[7], ТипУзлаXML.КонецЭлемента,"7"); КонецПроцедуры Процедура ТестДолжен_ПроверитьЧтениеНепустыхЭлементовСАтрибутами() Экспорт Ч = Новый ЧтениеXml(); Ч.УстановитьСтроку("<Data f=""123"" d=""222"" b="">""></Data>"); ТипыУзлов = Новый Массив; Пока Ч.Прочитать() Цикл ТипыУзлов.Добавить(Ч.ТипУзла); Пока Ч.ПрочитатьАтрибут() Цикл ТипыУзлов.Добавить(Ч.ТипУзла); КонецЦикла КонецЦикла; юТест.ПроверитьРавенство(ТипыУзлов.Количество(),5); юТест.ПроверитьРавенство(ТипыУзлов[0], ТипУзлаXML.НачалоЭлемента,"0"); юТест.ПроверитьРавенство(ТипыУзлов[1], ТипУзлаXML.Атрибут,"1"); юТест.ПроверитьРавенство(ТипыУзлов[2], ТипУзлаXML.Атрибут,"2"); юТест.ПроверитьРавенство(ТипыУзлов[3], ТипУзлаXML.Атрибут,"3"); юТест.ПроверитьРавенство(ТипыУзлов[4], ТипУзлаXML.КонецЭлемента,"4"); // EvilBeaver // 1C переходит к атрибутам даже в конце элемента // В документации сказано про то, что метод ПрочитатьАтрибут работает при НачалеЭлемента // Вообще востребованность такого поведения сомнительна и не думаю, что стоит его эмулировать. // Если раскомментировать строки ниже, то тест будет соответствовать поведению 1С. // юТест.ПроверитьРавенство(ТипыУзлов[5], ТипУзлаXML.Атрибут,"5"); // юТест.ПроверитьРавенство(ТипыУзлов[6], ТипУзлаXML.Атрибут,"6"); // юТест.ПроверитьРавенство(ТипыУзлов[7], ТипУзлаXML.Атрибут,"7"); КонецПроцедуры Процедура ТестДолжен_ПроверитьЧтениеПустыхЭлементовCЗаголовкомXML() Экспорт Ч = Новый ЧтениеXml(); Ч.УстановитьСтроку("<?xml version=""1.0"" encoding=""UTF-8"" standalone=""yes""?><Data />"); ТипыУзлов = Новый Массив; Ч.ПерейтиКСодержимому(); юТест.ПроверитьРавенство(ТипУзлаXML.НачалоЭлемента, Ч.ТипУзла); Пока Ч.Прочитать() Цикл ТипыУзлов.Добавить(Ч.ТипУзла); КонецЦикла; юТест.ПроверитьРавенство(ТипыУзлов.Количество(),1); юТест.ПроверитьРавенство(ТипыУзлов[0], ТипУзлаXML.КонецЭлемента); КонецПроцедуры Процедура ТестДолжен_ПроверитьЧтоПропускПереходитНаКонецЭлемента() Экспорт Строка = "<build> | <statusText>Step 5/6</statusText> | <buildType id=""123123123""/> | <tags/> | <running-info percentageComplete=""97"" elapsedSeconds=""102"" estimatedTotalSeconds=""58"" currentStageText=""Step 5/6: Process exited with code 0"" outdated=""false"" probablyHanging=""false""/> | <queuedDate>20141218T110711+0400</queuedDate> | <startDate>20141218T110712+0400</startDate> | <artifact-dependencies/> |</build>"; ЧтениеXML = Новый ЧтениеXML(); ЧтениеXML.УстановитьСтроку(Строка); ЧтениеXML.ПерейтиКСодержимому(); Если ЧтениеXML.Прочитать() Тогда юТест.ПроверитьРавенство(ТипУзлаXML.НачалоЭлемента, ЧтениеXML.ТипУзла, "Проверка узла " + ЧтениеXML.ЛокальноеИмя); Пока ЧтениеXML.Прочитать() и ЧтениеXML.ЛокальноеИмя <> "artifact-dependencies" Цикл ЧтениеXML.Пропустить(); юТест.ПроверитьРавенство(ТипУзлаXML.КонецЭлемента, ЧтениеXML.ТипУзла, "Проверка узла " + ЧтениеXML.ЛокальноеИмя); КонецЦикла; КонецЕсли; КонецПроцедуры Функция СтрокаXML() Текст = "<xml> | <data>hello</data> |</xml>"; Возврат Текст; КонецФункции Процедура ТестДолжен_ПроверитьРаботуКонтекстаПространствИмен() Экспорт СтрокаСПространствами = "<m:root xmlns:m='ns1'> | <d2p1:child xmlns:d2p1='ns2'> | <d3p1:child xmlns:d3p1='ns3' /> | <d3p1:child xmlns:d3p1='ns4' /> | </d2p1:child> |</m:root>"; Чтение = Новый ЧтениеXML; Чтение.УстановитьСтроку(СтрокаСПространствами); Чтение.Прочитать(); юТест.ПроверитьРавенство(Чтение.КонтекстПространствИмен.Глубина, 1, "root:start"); юТест.ПроверитьНеРавенство(Чтение.КонтекстПространствИмен.URIПространствИмен().Найти("ns1"), Неопределено, "Пространства в root"); юТест.ПроверитьРавенство(Чтение.КонтекстПространствИмен.URIПространствИмен().Найти("ns2"), Неопределено, "Пространства в root"); Чтение.Прочитать(); юТест.ПроверитьРавенство(Чтение.КонтекстПространствИмен.Глубина, 2, "child2:start"); юТест.ПроверитьНеРавенство(Чтение.КонтекстПространствИмен.URIПространствИмен().Найти("ns1"), Неопределено, "Пространства в child2:start"); юТест.ПроверитьНеРавенство(Чтение.КонтекстПространствИмен.URIПространствИмен().Найти("ns2"), Неопределено, "Пространства в child2:start"); Чтение.Прочитать(); юТест.ПроверитьРавенство(Чтение.КонтекстПространствИмен.Глубина, 3, "child3:start"); юТест.ПроверитьНеРавенство(Чтение.КонтекстПространствИмен.URIПространствИмен().Найти("ns1"), Неопределено, "Пространства в child3:start"); юТест.ПроверитьНеРавенство(Чтение.КонтекстПространствИмен.URIПространствИмен().Найти("ns2"), Неопределено, "Пространства в child3:start"); юТест.ПроверитьНеРавенство(Чтение.КонтекстПространствИмен.URIПространствИмен().Найти("ns3"), Неопределено, "Пространства в child3:start"); Чтение.Прочитать(); юТест.ПроверитьРавенство(Чтение.КонтекстПространствИмен.Глубина, 2, "child3:end"); юТест.ПроверитьНеРавенство(Чтение.КонтекстПространствИмен.URIПространствИмен().Найти("ns1"), Неопределено, "Пространства в child3:end"); юТест.ПроверитьНеРавенство(Чтение.КонтекстПространствИмен.URIПространствИмен().Найти("ns2"), Неопределено, "Пространства в child3:end"); // TODO: Несовместимость поведения чтения XML в .NET (*1) // юТест.ПроверитьРавенство(Чтение.КонтекстПространствИмен.URIПространствИмен().Найти("ns3"), Неопределено, "Пространства в child3:end"); Чтение.Прочитать(); юТест.ПроверитьРавенство(Чтение.КонтекстПространствИмен.Глубина, 3, "child4:start"); юТест.ПроверитьНеРавенство(Чтение.КонтекстПространствИмен.URIПространствИмен().Найти("ns1"), Неопределено); юТест.ПроверитьНеРавенство(Чтение.КонтекстПространствИмен.URIПространствИмен().Найти("ns2"), Неопределено); юТест.ПроверитьРавенство(Чтение.КонтекстПространствИмен.URIПространствИмен().Найти("ns3"), Неопределено); юТест.ПроверитьНеРавенство(Чтение.КонтекстПространствИмен.URIПространствИмен().Найти("ns4"), Неопределено); юТест.ПроверитьРавенство(Чтение.КонтекстПространствИмен.НайтиURIПространстваИмен("d2p1"), "ns2"); юТест.ПроверитьРавенство(Чтение.КонтекстПространствИмен.НайтиURIПространстваИмен("nsx"), Неопределено); Чтение.Прочитать(); юТест.ПроверитьРавенство(Чтение.КонтекстПространствИмен.Глубина, 2, "child4:end"); юТест.ПроверитьНеРавенство(Чтение.КонтекстПространствИмен.URIПространствИмен().Найти("ns1"), Неопределено); юТест.ПроверитьНеРавенство(Чтение.КонтекстПространствИмен.URIПространствИмен().Найти("ns2"), Неопределено); юТест.ПроверитьРавенство(Чтение.КонтекстПространствИмен.URIПространствИмен().Найти("ns3"), Неопределено); // TODO: Несовместимость поведения чтения XML в .NET (*1) // юТест.ПроверитьРавенство(Чтение.КонтекстПространствИмен.URIПространствИмен().Найти("ns4"), Неопределено); Чтение.Прочитать(); юТест.ПроверитьРавенство(Чтение.КонтекстПространствИмен.Глубина, 1, "child2:end"); Чтение.Прочитать(); юТест.ПроверитьРавенство(Чтение.КонтекстПространствИмен.Глубина, 0, "root:end"); // *1) При чтении пустого элемента на конце элемента Чтение должно забыть все пространства имён, //установленные в начале элемента. КонецПроцедуры Функция СтрокаXMLСКомментарием() Возврат "<xml> | |<!-- Комментарий --> | |<Data>Текст1</Data> | <Data2> Текст2 </Data2> </xml>"; КонецФункции Процедура ТестДолжен_ПроверитьСозданиеСПараметрами_Комментарий() Экспорт ПараметрыЧтения = Новый ПараметрыЧтенияXML(,,,,,,,Ложь); // не игнорировать комментарии Ч = Новый ЧтениеXml(); Ч.УстановитьСтроку(СтрокаXMLСКомментарием(), ПараметрыЧтения); ТипыУзлов = Новый Массив; Пока Ч.Прочитать() Цикл ТипыУзлов.Добавить(Ч.ТипУзла); КонецЦикла; юТест.ПроверитьРавенство(ТипыУзлов.Количество(),9); юТест.ПроверитьРавенство(ТипыУзлов[0], ТипУзлаXML.НачалоЭлемента); юТест.ПроверитьРавенство(ТипыУзлов[1], ТипУзлаXML.Комментарий); юТест.ПроверитьРавенство(ТипыУзлов[2], ТипУзлаXML.НачалоЭлемента); юТест.ПроверитьРавенство(ТипыУзлов[3], ТипУзлаXML.Текст); юТест.ПроверитьРавенство(ТипыУзлов[4], ТипУзлаXML.КонецЭлемента); юТест.ПроверитьРавенство(ТипыУзлов[5], ТипУзлаXML.НачалоЭлемента); юТест.ПроверитьРавенство(ТипыУзлов[6], ТипУзлаXML.Текст); юТест.ПроверитьРавенство(ТипыУзлов[7], ТипУзлаXML.КонецЭлемента); юТест.ПроверитьРавенство(ТипыУзлов[8], ТипУзлаXML.КонецЭлемента); КонецПроцедуры Процедура ТестДолжен_ПроверитьСозданиеСПараметрами_ПробельныеСимволы1() Экспорт ПараметрыЧтения = Новый ПараметрыЧтенияXML(,,,,,,,,Ложь,,Ложь); // не игнорировать, но не использовать пробельные сиволы Ч = Новый ЧтениеXml(); Ч.УстановитьСтроку(СтрокаXMLСКомментарием(), ПараметрыЧтения); ТипыУзлов = Новый Массив; Пока Ч.Прочитать() Цикл ТипыУзлов.Добавить(Ч.ТипУзла); КонецЦикла; юТест.ПроверитьРавенство(ТипыУзлов.Количество(),13); юТест.ПроверитьРавенство(ТипыУзлов[0], ТипУзлаXML.НачалоЭлемента); юТест.ПроверитьРавенство(ТипыУзлов[1], ТипУзлаXML.Текст); юТест.ПроверитьРавенство(ТипыУзлов[2], ТипУзлаXML.Комментарий); юТест.ПроверитьРавенство(ТипыУзлов[3], ТипУзлаXML.Текст); юТест.ПроверитьРавенство(ТипыУзлов[4], ТипУзлаXML.НачалоЭлемента); юТест.ПроверитьРавенство(ТипыУзлов[5], ТипУзлаXML.Текст); юТест.ПроверитьРавенство(ТипыУзлов[6], ТипУзлаXML.КонецЭлемента); юТест.ПроверитьРавенство(ТипыУзлов[7], ТипУзлаXML.Текст); юТест.ПроверитьРавенство(ТипыУзлов[8], ТипУзлаXML.НачалоЭлемента); юТест.ПроверитьРавенство(ТипыУзлов[9], ТипУзлаXML.Текст); юТест.ПроверитьРавенство(ТипыУзлов[10], ТипУзлаXML.КонецЭлемента); юТест.ПроверитьРавенство(ТипыУзлов[11], ТипУзлаXML.Текст); юТест.ПроверитьРавенство(ТипыУзлов[12], ТипУзлаXML.КонецЭлемента); КонецПроцедуры Процедура ТестДолжен_ПроверитьСозданиеСПараметрами_ПробельныеСимволы2() Экспорт ПараметрыЧтения = Новый ПараметрыЧтенияXML(,,,,,,,,Ложь,,Истина); // не игнорировать и использовать пробельные сиволы Ч = Новый ЧтениеXml(); Ч.УстановитьСтроку(СтрокаXMLСКомментарием(), ПараметрыЧтения); ТипыУзлов = Новый Массив; Пока Ч.Прочитать() Цикл ТипыУзлов.Добавить(Ч.ТипУзла); КонецЦикла; юТест.ПроверитьРавенство(ТипыУзлов.Количество(),13); юТест.ПроверитьРавенство(ТипыУзлов[0], ТипУзлаXML.НачалоЭлемента); юТест.ПроверитьРавенство(ТипыУзлов[1], ТипУзлаXML.ПробельныеСимволы); юТест.ПроверитьРавенство(ТипыУзлов[2], ТипУзлаXML.Комментарий); юТест.ПроверитьРавенство(ТипыУзлов[3], ТипУзлаXML.ПробельныеСимволы); юТест.ПроверитьРавенство(ТипыУзлов[4], ТипУзлаXML.НачалоЭлемента); юТест.ПроверитьРавенство(ТипыУзлов[5], ТипУзлаXML.Текст); юТест.ПроверитьРавенство(ТипыУзлов[6], ТипУзлаXML.КонецЭлемента); юТест.ПроверитьРавенство(ТипыУзлов[7], ТипУзлаXML.ПробельныеСимволы); юТест.ПроверитьРавенство(ТипыУзлов[8], ТипУзлаXML.НачалоЭлемента); юТест.ПроверитьРавенство(ТипыУзлов[9], ТипУзлаXML.Текст); юТест.ПроверитьРавенство(ТипыУзлов[10], ТипУзлаXML.КонецЭлемента); юТест.ПроверитьРавенство(ТипыУзлов[11], ТипУзлаXML.ПробельныеСимволы); юТест.ПроверитьРавенство(ТипыУзлов[12], ТипУзлаXML.КонецЭлемента); КонецПроцедуры Процедура ТестДолжен_ПроверитьСозданиеСПараметрами_ПробельныеСимволы3() Экспорт ПараметрыЧтения = Новый ПараметрыЧтенияXML(,,,,,,,,Истина,,Истина); // игнорировать, но использовать пробельные сиволы Ч = Новый ЧтениеXml(); Ч.УстановитьСтроку(СтрокаXMLСКомментарием(), ПараметрыЧтения); ТипыУзлов = Новый Массив; Пока Ч.Прочитать() Цикл ТипыУзлов.Добавить(Ч.ТипУзла); КонецЦикла; юТест.ПроверитьРавенство(ТипыУзлов.Количество(),13); юТест.ПроверитьРавенство(ТипыУзлов[0], ТипУзлаXML.НачалоЭлемента); юТест.ПроверитьРавенство(ТипыУзлов[1], ТипУзлаXML.ПробельныеСимволы); юТест.ПроверитьРавенство(ТипыУзлов[2], ТипУзлаXML.Комментарий); юТест.ПроверитьРавенство(ТипыУзлов[3], ТипУзлаXML.ПробельныеСимволы); юТест.ПроверитьРавенство(ТипыУзлов[4], ТипУзлаXML.НачалоЭлемента); юТест.ПроверитьРавенство(ТипыУзлов[5], ТипУзлаXML.Текст); юТест.ПроверитьРавенство(ТипыУзлов[6], ТипУзлаXML.КонецЭлемента); юТест.ПроверитьРавенство(ТипыУзлов[7], ТипУзлаXML.ПробельныеСимволы); юТест.ПроверитьРавенство(ТипыУзлов[8], ТипУзлаXML.НачалоЭлемента); юТест.ПроверитьРавенство(ТипыУзлов[9], ТипУзлаXML.Текст); юТест.ПроверитьРавенство(ТипыУзлов[10], ТипУзлаXML.КонецЭлемента); юТест.ПроверитьРавенство(ТипыУзлов[11], ТипУзлаXML.ПробельныеСимволы); юТест.ПроверитьРавенство(ТипыУзлов[12], ТипУзлаXML.КонецЭлемента); КонецПроцедуры Процедура ТестДолжен_ПроверитьПереключениеПробельныхСимволов() Экспорт ПараметрыЧтения = Новый ПараметрыЧтенияXML(,,,,,,,,Ложь,,Ложь); // не игнорировать и не использовать пробельные сиволы Ч = Новый ЧтениеXml(); Ч.УстановитьСтроку(СтрокаXMLСКомментарием(), ПараметрыЧтения); ТипыУзлов = Новый Массив; Счетчик = 0; Пока Ч.Прочитать() Цикл Счетчик = Счетчик+1; ТипыУзлов.Добавить(Ч.ТипУзла); Если Счетчик = 4 Тогда Ч.ИгнорироватьПробелы = Истина; КонецЕсли; КонецЦикла; юТест.ПроверитьРавенство(ТипыУзлов.Количество(),11); юТест.ПроверитьРавенство(ТипыУзлов[0], ТипУзлаXML.НачалоЭлемента); юТест.ПроверитьРавенство(ТипыУзлов[1], ТипУзлаXML.Текст); юТест.ПроверитьРавенство(ТипыУзлов[2], ТипУзлаXML.Комментарий); юТест.ПроверитьРавенство(ТипыУзлов[3], ТипУзлаXML.Текст); юТест.ПроверитьРавенство(ТипыУзлов[4], ТипУзлаXML.НачалоЭлемента); юТест.ПроверитьРавенство(ТипыУзлов[5], ТипУзлаXML.Текст); юТест.ПроверитьРавенство(ТипыУзлов[6], ТипУзлаXML.КонецЭлемента); юТест.ПроверитьРавенство(ТипыУзлов[7], ТипУзлаXML.НачалоЭлемента); юТест.ПроверитьРавенство(ТипыУзлов[8], ТипУзлаXML.Текст); юТест.ПроверитьРавенство(ТипыУзлов[9], ТипУзлаXML.КонецЭлемента); юТест.ПроверитьРавенство(ТипыУзлов[10], ТипУзлаXML.КонецЭлемента); КонецПроцедуры Процедура ТестДолжен_ПроверитьПереключениеПробельныхСимволов2() Экспорт ПараметрыЧтения = Новый ПараметрыЧтенияXML(,,,,,,,,Ложь,,Ложь); // не игнорировать и не использовать пробельные сиволы Ч = Новый ЧтениеXml(); Ч.УстановитьСтроку(СтрокаXMLСКомментарием(), ПараметрыЧтения); ТипыУзлов = Новый Массив; Счетчик = 0; Пока Ч.Прочитать() Цикл Счетчик = Счетчик+1; ТипыУзлов.Добавить(Ч.ТипУзла); Если Счетчик >= 3 Тогда Ч.ИгнорироватьПробелы = Истина; КонецЕсли; КонецЦикла; юТест.ПроверитьРавенство(ТипыУзлов.Количество(),10); юТест.ПроверитьРавенство(ТипыУзлов[0], ТипУзлаXML.НачалоЭлемента); юТест.ПроверитьРавенство(ТипыУзлов[1], ТипУзлаXML.Текст); юТест.ПроверитьРавенство(ТипыУзлов[2], ТипУзлаXML.Комментарий); юТест.ПроверитьРавенство(ТипыУзлов[3], ТипУзлаXML.НачалоЭлемента); юТест.ПроверитьРавенство(ТипыУзлов[4], ТипУзлаXML.Текст); юТест.ПроверитьРавенство(ТипыУзлов[5], ТипУзлаXML.КонецЭлемента); юТест.ПроверитьРавенство(ТипыУзлов[6], ТипУзлаXML.НачалоЭлемента); юТест.ПроверитьРавенство(ТипыУзлов[7], ТипУзлаXML.Текст); юТест.ПроверитьРавенство(ТипыУзлов[8], ТипУзлаXML.КонецЭлемента); юТест.ПроверитьРавенство(ТипыУзлов[9], ТипУзлаXML.КонецЭлемента); КонецПроцедуры Процедура ТестДолжен_ПроверитьПереключениеПробельныхСимволов3() Экспорт ПараметрыЧтения = Новый ПараметрыЧтенияXML(,,,,,,,,Ложь,,Ложь); // не игнорировать и не использовать пробельные сиволы Ч = Новый ЧтениеXml(); Ч.УстановитьСтроку(СтрокаXMLСКомментарием(), ПараметрыЧтения); ТипыУзлов = Новый Массив; Счетчик = 0; Пока Ч.Прочитать() Цикл Счетчик = Счетчик+1; ТипыУзлов.Добавить(Ч.ТипУзла); Если Счетчик >= 3 Тогда Ч.ИгнорироватьПробелы = Не Ч.ИгнорироватьПробелы; КонецЕсли; КонецЦикла; юТест.ПроверитьРавенство(ТипыУзлов.Количество(),12); юТест.ПроверитьРавенство(ТипыУзлов[0], ТипУзлаXML.НачалоЭлемента); юТест.ПроверитьРавенство(ТипыУзлов[1], ТипУзлаXML.Текст); юТест.ПроверитьРавенство(ТипыУзлов[2], ТипУзлаXML.Комментарий); юТест.ПроверитьРавенство(ТипыУзлов[3], ТипУзлаXML.НачалоЭлемента); юТест.ПроверитьРавенство(ТипыУзлов[4], ТипУзлаXML.Текст); юТест.ПроверитьРавенство(ТипыУзлов[5], ТипУзлаXML.КонецЭлемента); юТест.ПроверитьРавенство(ТипыУзлов[6], ТипУзлаXML.Текст); юТест.ПроверитьРавенство(ТипыУзлов[7], ТипУзлаXML.НачалоЭлемента); юТест.ПроверитьРавенство(ТипыУзлов[8], ТипУзлаXML.Текст); юТест.ПроверитьРавенство(ТипыУзлов[9], ТипУзлаXML.КонецЭлемента); юТест.ПроверитьРавенство(ТипыУзлов[10], ТипУзлаXML.Текст); юТест.ПроверитьРавенство(ТипыУзлов[11], ТипУзлаXML.КонецЭлемента); КонецПроцедуры Процедура ТестДолжен_ПроверитьЗначенияСвойствНеинициализированного() Экспорт Ч = Новый ЧтениеXml(); юТест.ПроверитьРавенство(Ч.ВерсияXML,"1.0","ВерсияXML"); юТест.ПроверитьРавенство(Ч.Язык,"","Язык"); юТест.ПроверитьРавенство(Ч.ИгнорироватьПробелы,Истина,"ИгнорироватьПробелы"); юТест.ПроверитьРавенство(Ч.КодировкаXML,"UTF-8","КодировкаXML"); юТест.ПроверитьРавенство(Ч.ТипУзла,ТипУзлаXML.Ничего,"ТипУзла"); юТест.ПроверитьРавенство(Ч.URIПространстваИмен,"","URIПространстваИмен"); юТест.ПроверитьРавенство(Ч.БазовыйURI,"","БазовыйURI"); юТест.ПроверитьРавенство(Ч.ИмеетИмя,Ложь,"ИмеетИмя"); юТест.ПроверитьРавенство(Ч.Имя,"","Имя"); юТест.ПроверитьРавенство(Ч.ЛокальноеИмя,"","ЛокальноеИмя"); юТест.ПроверитьРавенство(Ч.ИмеетЗначение,Ложь,"ИмеетЗначение"); юТест.ПроверитьРавенство(Ч.Значение,"","Значение"); юТест.ПроверитьРавенство(Ч.КонтекстПространствИмен,Неопределено,"КонтекстПространствИмен"); юТест.ПроверитьРавенство(Ч.ЭтоАтрибутПоУмолчанию,Неопределено,"ЭтоАтрибутПоУмолчанию"); юТест.ПроверитьРавенство(Ч.ЭтоСимвольныеДанные,Ложь,"ЭтоСимвольныеДанные"); юТест.ПроверитьРавенство(Ч.ИмяАтрибута(0),"","ИмяАтрибута"); юТест.ПроверитьРавенство(Ч.ЗначениеАтрибута(0),"","ЗначениеАтрибута"); КонецПроцедуры Процедура ТестДолжен_ПроверитьЗначенияСвойствИнициализированного() Экспорт Ч = Новый ЧтениеXml(); Ч.УстановитьСтроку(СтрокаXML()); юТест.ПроверитьРавенство(Ч.ВерсияXML,"1.0","ВерсияXML"); юТест.ПроверитьРавенство(Ч.Язык,"","Язык"); юТест.ПроверитьРавенство(Ч.ИгнорироватьПробелы,Истина,"ИгнорироватьПробелы"); юТест.ПроверитьРавенство(Ч.КодировкаXML,"UTF-8","КодировкаXML"); юТест.ПроверитьРавенство(Ч.ТипУзла,ТипУзлаXML.Ничего,"ТипУзла"); юТест.ПроверитьРавенство(Ч.URIПространстваИмен,"","URIПространстваИмен"); юТест.ПроверитьРавенство(Ч.БазовыйURI,"","БазовыйURI"); юТест.ПроверитьРавенство(Ч.ИмеетИмя,Ложь,"ИмеетИмя"); юТест.ПроверитьРавенство(Ч.Имя,"","Имя"); юТест.ПроверитьРавенство(Ч.ЛокальноеИмя,"","ЛокальноеИмя"); юТест.ПроверитьРавенство(Ч.ИмеетЗначение,Ложь,"ИмеетЗначение"); юТест.ПроверитьРавенство(Ч.Значение,"","Значение"); юТест.ПроверитьРавенство(ТипЗнч(Ч.КонтекстПространствИмен),Тип("КонтекстПространствИменXML"),"КонтекстПространствИмен"); юТест.ПроверитьРавенство(Ч.ЭтоАтрибутПоУмолчанию,Неопределено,"ЭтоАтрибутПоУмолчанию"); юТест.ПроверитьРавенство(Ч.ЭтоСимвольныеДанные,Ложь,"ЭтоСимвольныеДанные"); юТест.ПроверитьРавенство(Ч.ИмяАтрибута(0),"","ИмяАтрибута"); юТест.ПроверитьРавенство(Ч.ЗначениеАтрибута(0),Неопределено,"ЗначениеАтрибута"); КонецПроцедуры Процедура ТестДолжен_ПроверитьЗначенияСвойствАтрибута() Экспорт Ч = Новый ЧтениеXml(); Ч.УстановитьСтроку("<Data attr=""123""></Data>"); Ч.Прочитать(); юТест.ПроверитьРавенство(Ч.КоличествоАтрибутов(), 1,"КоличествоАтрибутов"); Если Ч.ПрочитатьАтрибут() Тогда юТест.ПроверитьРавенство(Ч.ТипУзла, ТипУзлаXML.Атрибут,"ТипУзла"); юТест.ПроверитьРавенство(Ч.ЭтоАтрибутПоУмолчанию,Ложь,"ЭтоАтрибутПоУмолчанию"); юТест.ПроверитьРавенство(Ч.ИмяАтрибута(0),"attr","ИмяАтрибута"); юТест.ПроверитьРавенство(Ч.ЗначениеАтрибута(0),"123","ЗначениеАтрибута"); юТест.ПроверитьРавенство(Ч.ИмяАтрибута(2),"","ИмяАтрибута(2)"); Иначе ВызватьИсключение("Атрибут не прочитан"); КонецЕсли КонецПроцедуры