Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP add Новые дымовые тесты 2 #807

Merged
merged 1 commit into from
Nov 7, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4">
<ExternalDataProcessor uuid="7abb4e0d-97e0-45ee-affc-11fa9d3be324">
<InternalInfo>
<xr:ContainedObject>
<xr:ClassId>c3831ec8-d8d5-4f93-8a22-f9bfae07327f</xr:ClassId>
<xr:ObjectId>0c32756f-68ca-4b55-9a9f-f3b415ad0b72</xr:ObjectId>
</xr:ContainedObject>
<xr:GeneratedType name="ExternalDataProcessorObject.Тесты_ПроверкаАвтоРегистрацииПлановОбмена" category="Object">
<xr:TypeId>374454b4-1df5-4b67-9e85-800ed93937ff</xr:TypeId>
<xr:ValueId>95383c60-00b2-4dc5-af00-0832ae567804</xr:ValueId>
</xr:GeneratedType>
</InternalInfo>
<Properties>
<Name>Тесты_ПроверкаАвтоРегистрацииПлановОбмена</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Тесты "Проверка авто регистрации планов обмена"</v8:content>
</v8:item>
</Synonym>
<Comment/>
<DefaultForm>ExternalDataProcessor.Тесты_ПроверкаАвтоРегистрацииПлановОбмена.Form.Форма</DefaultForm>
<AuxiliaryForm/>
</Properties>
<ChildObjects>
<Attribute uuid="4cbb1eb0-0bd1-44d1-9ff7-c92b90cd091c">
<Properties>
<Name>Настройки</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Настройки</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Type/>
<PasswordMode>false</PasswordMode>
<Format/>
<EditFormat/>
<ToolTip/>
<MarkNegatives>false</MarkNegatives>
<Mask/>
<MultiLine>false</MultiLine>
<ExtendedEdit>false</ExtendedEdit>
<MinValue xsi:nil="true"/>
<MaxValue xsi:nil="true"/>
<FillChecking>DontCheck</FillChecking>
<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
<ChoiceParameterLinks/>
<ChoiceParameters/>
<QuickChoice>Auto</QuickChoice>
<CreateOnInput>Auto</CreateOnInput>
<ChoiceForm/>
<LinkByType/>
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
</Properties>
</Attribute>
<Form>Форма</Form>
</ChildObjects>
</ExternalDataProcessor>
</MetaDataObject>
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4">
<Form uuid="c9a04ab9-402f-4b06-afc5-8bb84fba3f69">
<Properties>
<Name>Форма</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Форма</v8:content>
</v8:item>
</Synonym>
<Comment/>
<FormType>Managed</FormType>
<IncludeHelpInContents>false</IncludeHelpInContents>
<UsePurposes>
<v8:Value xsi:type="app:ApplicationUsePurpose">PersonalComputer</v8:Value>
<v8:Value xsi:type="app:ApplicationUsePurpose">MobileDevice</v8:Value>
</UsePurposes>
<ExtendedPresentation/>
</Properties>
</Form>
</MetaDataObject>
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<Form xmlns="http://v8.1c.ru/8.3/xcf/logform" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4">
<AutoCommandBar name="ФормаКоманднаяПанель" id="-1"/>
<Attributes>
<Attribute name="Объект" id="1">
<Type>
<v8:Type>cfg:ExternalDataProcessorObject.Тесты_ПроверкаАвтоРегистрацииПлановОбмена</v8:Type>
</Type>
<MainAttribute>true</MainAttribute>
</Attribute>
</Attributes>
</Form>
Original file line number Diff line number Diff line change
@@ -0,0 +1,272 @@
#Область ОписаниеПеременных

&НаКлиенте
Перем КонтекстЯдра;
&НаКлиенте
Перем Утверждения;
&НаКлиенте
Перем СтроковыеУтилиты;
&НаКлиенте
Перем ПрефиксОбъектов;
&НаКлиенте
Перем ОтборПоПрефиксу;
&НаКлиенте
Перем ВыводитьИсключения;
&НаКлиенте
Перем ИсключенияИзПроверок;

#КонецОбласти

#Область ИнтерфейсТестирования

&НаКлиенте
Процедура Инициализация(КонтекстЯдраПараметр) Экспорт

КонтекстЯдра = КонтекстЯдраПараметр;
Утверждения = КонтекстЯдра.Плагин("БазовыеУтверждения");
СтроковыеУтилиты = КонтекстЯдра.Плагин("СтроковыеУтилиты");

ПутьНастройки = ИмяТеста();
Настройки(КонтекстЯдра, ПутьНастройки);

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

&НаКлиенте
Процедура ЗаполнитьНаборТестов(НаборТестов, КонтекстЯдра) Экспорт

Если Не ВыполнятьТест(КонтекстЯдра) Тогда
Возврат;
КонецЕсли;

мПланыОбмена = ПланыОбмена(ПрефиксОбъектов, ОтборПоПрефиксу);

Для Каждого ПланОбмена Из мПланыОбмена Цикл
Если Не ВыводитьИсключения Тогда
МассивТестов = УбратьИсключения(ПланОбмена.Ключ, ПланОбмена.Значение);
Иначе
МассивТестов = ПланОбмена.Значение;
КонецЕсли;
Если МассивТестов.Количество() = 0 Тогда
Продолжить;
КонецЕсли;
НаборТестов.НачатьГруппу(ПланОбмена.Ключ, Ложь);
Для Каждого Элемент Из МассивТестов Цикл
НаборТестов.Добавить(
"ТестДолжен_ПроверитьАвтоРегистрацииПланаОбмена",
НаборТестов.ПараметрыТеста(ПланОбмена.Ключ, Элемент.ПолноеИмя, Элемент.АвтоРегистрация),
КонтекстЯдра.СтрШаблон_("%1 [%2]", Элемент.Имя, НСтр("ru = 'Проверка авторегистрации планов обмена'")));
КонецЦикла;
КонецЦикла;

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

#КонецОбласти

#Область РаботаСНастройками

&НаКлиенте
Процедура Настройки(КонтекстЯдра, Знач ПутьНастройки)

Если ЗначениеЗаполнено(Объект.Настройки) Тогда
Возврат;
КонецЕсли;

ВыводитьИсключения = Истина;
ОтборПоПрефиксу = Ложь;
ПрефиксОбъектов = "";
ИсключенияИзПроверок = Новый Соответствие;
ПлагинНастроек = КонтекстЯдра.Плагин("Настройки");
Объект.Настройки = ПлагинНастроек.ПолучитьНастройку(ПутьНастройки);
Настройки = Объект.Настройки;

Если Не ЗначениеЗаполнено(Настройки) Тогда
Объект.Настройки = Новый Структура(ПутьНастройки, Неопределено);
Возврат;
КонецЕсли;

Если Настройки.Свойство("Префикс") Тогда
ПрефиксОбъектов = ВРег(Настройки.Префикс);
КонецЕсли;

Если Настройки.Свойство("ОтборПоПрефиксу") Тогда
ОтборПоПрефиксу = Настройки.ОтборПоПрефиксу;
КонецЕсли;

Если Настройки.Свойство("ВыводитьИсключения") Тогда
ВыводитьИсключения = Настройки.ВыводитьИсключения;
КонецЕсли;

Если Настройки.Свойство("ИсключенияИзпроверок") Тогда
ИсключенияИзПроверок(Настройки);
КонецЕсли;

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

&НаКлиенте
Процедура ИсключенияИзПроверок(Настройки)

Для Каждого ИсключенияИзПроверокПоОбъектам Из Настройки.ИсключенияИзпроверок Цикл
Для Каждого ИсключениеИзПроверок Из ИсключенияИзПроверокПоОбъектам.Значение Цикл
ИсключенияИзПроверок.Вставить(ВРег(ИсключенияИзПроверокПоОбъектам.Ключ + "." + ИсключениеИзПроверок), Истина);
КонецЦикла;
КонецЦикла;

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

#КонецОбласти

#Область Тесты

&НаКлиенте
Процедура ТестДолжен_ПроверитьАвтоРегистрацииПланаОбмена(ПланОбмена, ПолноеИмяМетаданных, АвтоРегистрация) Экспорт

ПропускатьТест = ПропускатьТест(ПланОбмена, ПолноеИмяМетаданных);
Результат = (АвтоРегистрация = "Запретить");

Если Не Результат И ПропускатьТест.Пропустить Тогда
Утверждения.ПропуститьТест(ПропускатьТест.ТекстСообщения);
Иначе
Утверждения.Проверить(Результат = Истина, ТекстСообщения(ПланОбмена, ПолноеИмяМетаданных));
КонецЕсли;

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

#КонецОбласти

#Область СлужебныеПроцедурыИФункции

&НаКлиенте
Функция ПропускатьТест(ПланОбмена, ПолноеИмяМетаданных)

Результат = Новый Структура;
Результат.Вставить("ТекстСообщения", "");
Результат.Вставить("Пропустить", Ложь);

Если ИсключенИзПроверок(ПланОбмена, ПолноеИмяМетаданных) Тогда
ШаблонСообшения = НСтр("ru = 'Объект ""%1"" исключен из проверки'");
Результат.ТекстСообщения = СтроковыеУтилиты.ПодставитьПараметрыВСтроку(ШаблонСообшения, ПолноеИмяМетаданных);
Результат.Пропустить = Истина;
Возврат Результат;
КонецЕсли;

Возврат Результат;

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

&НаКлиенте
Функция ИсключенИзПроверок(ПланОбмена, ПолноеИмяМетаданных)

Результат = Ложь;
МассивСтрокИмени = СтроковыеУтилиты.РазложитьСтрокуВМассивПодстрок(ПланОбмена, ".");
ИмяТеста = СтроковыеУтилиты.ПодставитьПараметрыВСтроку("%1.%2", МассивСтрокИмени[1], ПолноеИмяМетаданных);
ИслючениеВсехОбъектов = СтроковыеУтилиты.ПодставитьПараметрыВСтроку("%1.*", МассивСтрокИмени[0]);

Если ИсключенияИзПроверок.Получить(ВРег(ИмяТеста)) <> Неопределено
Или ИсключенияИзПроверок.Получить(ВРег(ИслючениеВсехОбъектов)) <> Неопределено Тогда
Результат = Истина;
КонецЕсли;

Возврат Результат;

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

&НаКлиенте
Функция УбратьИсключения(ПланОбмена, МассивТестов)

Исключения = Новый Соответствие;
Результат = Новый Массив;

Для Каждого Тест Из МассивТестов Цикл
Если ИсключенИзПроверок(ПланОбмена, Тест.ПолноеИмя) Тогда
Исключения.Вставить(Тест, Истина);
КонецЕсли;
КонецЦикла;

Для Каждого Тест Из МассивТестов Цикл
Если Исключения.Получить(Тест) = Истина Тогда
Продолжить;
КонецЕсли;
Результат.Добавить(Тест);
КонецЦикла;

Возврат Результат;

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

&НаКлиенте
Функция ТекстСообщения(ПланОбмена, ПолноеИмяМетаданных)

ШаблонСообщения = НСтр("ru = 'Для объекта ""%1"" в плане обмена %2 включена авторегистрация.'");
ТекстСообщения = СтроковыеУтилиты.ПодставитьПараметрыВСтроку(
ШаблонСообщения, ПолноеИмяМетаданных, ПланОбмена);

Возврат ТекстСообщения;

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

&НаСервереБезКонтекста
Функция ПланыОбмена(ПрефиксОбъектов, ОтборПоПрефиксу)

СтроковыеУтилиты = СтроковыеУтилиты();
мПланыОбмена = Новый Соответствие;

Для Каждого ПланОбмена Из Метаданные.ПланыОбмена Цикл
мПланыОбмена.Вставить(ПланОбмена.ПолноеИмя(), Новый Массив);
КонецЦикла;

Для Каждого ПланОбмена Из мПланыОбмена Цикл

ПланОбменаМетаданные = Метаданные.НайтиПоПолномуИмени(ПланОбмена.Ключ);
Если ОтборПоПрефиксу И СтрНайти(ВРег(ПланОбмена.Ключ), ПрефиксОбъектов) = 0 Тогда
Продолжить;
КонецЕсли;

Для Каждого ЭлементСостава Из ПланОбменаМетаданные.Состав Цикл
СтруктураЭлемента = Новый Структура;
СтруктураЭлемента.Вставить("ПолноеИмя", ЭлементСостава.Метаданные.ПолноеИмя());
ИмяТеста = СтроковыеУтилиты.ПодставитьПараметрыВСтроку(
"%1.%2",
ПланОбменаМетаданные.Имя,
ЭлементСостава.Метаданные.ПолноеИмя());
СтруктураЭлемента.Вставить("Имя", ИмяТеста);
СтруктураЭлемента.Вставить("АвтоРегистрация", Строка(ЭлементСостава.АвтоРегистрация));
ПланОбмена.Значение.Добавить(СтруктураЭлемента);
КонецЦикла;

КонецЦикла;

Возврат мПланыОбмена;

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

&НаСервереБезКонтекста
Функция СтроковыеУтилиты()
Возврат ВнешниеОбработки.Создать("СтроковыеУтилиты");
КонецФункции

&НаСервере
Функция ИмяТеста()
Возврат РеквизитФормыВЗначение("Объект").Метаданные().Имя;
КонецФункции

&НаКлиенте
Функция ВыполнятьТест(КонтекстЯдра)

ВыполнятьТест = Истина;
ПутьНастройки = ИмяТеста();
Настройки(КонтекстЯдра, ПутьНастройки);
Настройки = Объект.Настройки;

Если Не ЗначениеЗаполнено(Настройки) Тогда
Возврат ВыполнятьТест;
КонецЕсли;

Если ТипЗнч(Настройки) = Тип("Структура") И Настройки.Свойство("Используется") Тогда
ВыполнятьТест = Настройки.Используется;
КонецЕсли;

Возврат ВыполнятьТест;

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

#КонецОбласти
Loading