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

Добавление дымового теста на проверку макетов СКД #375

Merged
merged 3 commits into from
Dec 19, 2018
Merged
Show file tree
Hide file tree
Changes from 1 commit
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,28 @@
<?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.5">
<ExternalDataProcessor uuid="fbc9b956-9ee2-47a5-a5c2-fba02953bf69">
<InternalInfo>
<xr:ContainedObject>
<xr:ClassId>c3831ec8-d8d5-4f93-8a22-f9bfae07327f</xr:ClassId>
<xr:ObjectId>5c338ed2-4038-4fb8-b34a-3074bcd8f7af</xr:ObjectId>
</xr:ContainedObject>
<xr:GeneratedType name="ExternalDataProcessorObject.тесты_ПроверкаМакетовСКД" category="Object">
<xr:TypeId>1567cdb3-b5a9-45d6-8830-5d836128e75e</xr:TypeId>
<xr:ValueId>ef68c847-d316-417d-b22f-63222cf79cfb</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/>
<AuxiliaryForm/>
</Properties>
<ChildObjects/>
</ExternalDataProcessor>
</MetaDataObject>
Original file line number Diff line number Diff line change
@@ -0,0 +1,152 @@
Перем КонтекстЯдра;
Перем Утверждения;

#Область Основные_процедуры_теста

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

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

ОписаниеОбъектов = Новый Структура;
ОписаниеОбъектов.Вставить("Справочники", "Справочник");
ОписаниеОбъектов.Вставить("Документы", "Документ");
ОписаниеОбъектов.Вставить("Отчеты", "Отчет");
ОписаниеОбъектов.Вставить("Обработки", "Обработка");

Для Каждого КиЗ ИЗ ОписаниеОбъектов Цикл

мНаборов = Новый Массив;

Для Каждого ТекОбработка ИЗ Метаданные[КиЗ.Ключ] Цикл

Для Каждого ТекДанныеМакета ИЗ ТекОбработка.Макеты Цикл

Если ТекДанныеМакета.ТипМакета <> Метаданные.СвойстваОбъектов.ТипМакета.СхемаКомпоновкиДанных Тогда
Продолжить;
КонецЕсли;

мНаборов.Добавить(
Новый Структура("ИмяПроцедуры, Параметры, Представление",
"ТестДолжен_ПроверитьМакетСКД",
НаборТестов.ПараметрыТеста(КиЗ.Значение, ТекОбработка.Имя, ТекДанныеМакета.Имя),
СтрШаблон("%1: %2", ТекОбработка.Имя, ТекДанныеМакета.Имя)));

КонецЦикла;

КонецЦикла;

Если мНаборов.Количество() > 0 Тогда

НаборТестов.НачатьГруппу(КиЗ.Ключ, Ложь);

Для Каждого Набор ИЗ мНаборов Цикл

НаборТестов.Добавить(Набор.ИмяПроцедуры, Набор.Параметры, Набор.Представление);

КонецЦикла;

КонецЕсли;

КонецЦикла;

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

#Область События_юнит_тестирования

Процедура ПередЗапускомТеста() Экспорт
НачатьТранзакцию();
КонецПроцедуры

Процедура ПослеЗапускаТеста() Экспорт
Если ТранзакцияАктивна() Тогда
ОтменитьТранзакцию();
КонецЕсли;
КонецПроцедуры

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

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

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

Менеджер = МенеджерОбьектаПоИмени(ИмяМенеджера);

СхемаКомпоновкиДанных = Менеджер[ИмяОбьекта].ПолучитьМакет(СокрЛП(ИмяМакета));

ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;

КомпоновщикНастроекКомпоновкиДанных = Новый КомпоновщикНастроекКомпоновкиДанных;

//Тут проходит синтаксический анализ запроса.
КомпоновщикНастроекКомпоновкиДанных.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));

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

Функция МенеджерОбьектаПоИмени(Знач ИмяМенеджера)

ИмяМенеджера = ВРЕГ(ИмяМенеджера);

Менеджер = Неопределено;

Если ИмяМенеджера = "ПЛАНОБМЕНА" Тогда
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Вот я бы сделал простую структуру
Менеджеры.Вставить("СПРАВОЧНИК", Справочники);
А потом бы просто искал по ключу :)
Возврат Менеджеры[ВРЕГ(ИмяМенеджера)];

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ок, сделаю

Copy link
Contributor Author

@dvakor dvakor Dec 13, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Слушай, а контекст модуля обработки между тестами же теряется, я имею ввиду что постоянно инициализировать структуру с менеджерами перед каждым тестом это долго относительно простыни if`ов :)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Лучше давай я добавлю другие объекты, щас только те, что мне нужны тут, а кто-то может и в задачах \ бизнес процессах хранить макеты, можно конечно и регистры все добавить, но тут щансов мало, что кто-то хранит макеты СКД :)

Еще можно добавить макеты СКД из общих макетов

Менеджер = ПланыОбмена;

ИначеЕсли ИмяМенеджера = "СПРАВОЧНИК" Тогда
Менеджер = Справочники;

ИначеЕсли ИмяМенеджера = "ДОКУМЕНТ" Тогда
Менеджер = Документы;

ИначеЕсли ИмяМенеджера = "ЖУРНАЛДОКУМЕНТОВ" Тогда
Менеджер = ЖурналыДокументов;

ИначеЕсли ИмяМенеджера = "ПЕРЕЧИСЛЕНИЕ" Тогда
Менеджер = Перечисления;

ИначеЕсли ИмяМенеджера = "ОТЧЕТ" Тогда
Менеджер = Отчеты;

ИначеЕсли ИмяМенеджера = "ОБРАБОТКА" Тогда
Менеджер = Обработки;

ИначеЕсли ИмяМенеджера = "ПЛАНВИДОВХАРАКТЕРИСТИК" Тогда
Менеджер = ПланыВидовХарактеристик;

ИначеЕсли ИмяМенеджера = "ПЛАНСЧЕТОВ" Тогда
Менеджер = ПланыСчетов;

ИначеЕсли ИмяМенеджера = "ПЛАНВИДОВРАСЧЕТА" Тогда
Менеджер = ПланыВидовРасчета;

ИначеЕсли ИмяМенеджера = "РЕГИСТРСВЕДЕНИЙ" Тогда
Менеджер = РегистрыСведений;

ИначеЕсли ИмяМенеджера = "РЕГИСТРНАКОПЛЕНИЯ" Тогда
Менеджер = РегистрыНакопления;

ИначеЕсли ИмяМенеджера = "РЕГИСТРБУХГАЛТЕРИИ" Тогда
Менеджер = РегистрыБухгалтерии;

ИначеЕсли ИмяМенеджера = "РЕГИСТРРАСЧЕТА" Тогда
Менеджер = РегистрыРасчета;

ИначеЕсли ИмяМенеджера = "БИЗНЕСПРОЦЕСС" Тогда
Менеджер = БизнесПроцессы;

ИначеЕсли ИмяМенеджера = "ЗАДАЧА" Тогда
Менеджер = Задачи;

ИначеЕсли ИмяМенеджера = "КОНСТАНТА" Тогда
Менеджер = Константы;

ИначеЕсли ИмяМенеджера = "ПОСЛЕДОВАТЕЛЬНОСТЬ" Тогда
Менеджер = Последовательности;
КонецЕсли;

Возврат Менеджер;
КонецФункции