mirror of
https://github.com/bia-technologies/precommit4onec.git
synced 2024-11-28 08:48:45 +02:00
300424bee0
Тесты и исправленные ошибки по работе с проектами
307 lines
19 KiB
Plaintext
307 lines
19 KiB
Plaintext
#Использовать asserts
|
|
#Использовать logos
|
|
#Использовать tempfiles
|
|
#Использовать "../src"
|
|
|
|
Перем юТест;
|
|
Перем Лог;
|
|
Перем МенеджерВременныхФайлов;
|
|
|
|
// Основная точка входа
|
|
Функция ПолучитьСписокТестов(ЮнитТестирование) Экспорт
|
|
|
|
ПередЗапускомТестов();
|
|
|
|
юТест = ЮнитТестирование;
|
|
|
|
ВсеТесты = Новый Массив;
|
|
|
|
ВсеТесты.Добавить("Тест_ИспользованиеГлобальныхНастроек");
|
|
ВсеТесты.Добавить("Тест_ИспользованиеЛокальныхНастроек");
|
|
ВсеТесты.Добавить("Тест_ОтключенныеНастройки");
|
|
ВсеТесты.Добавить("Тест_ОтключенныеНастройкиИПереопределенныеГлобальныеСценарии");
|
|
|
|
ВсеТесты.Добавить("Тест_НастройкиПроектов");
|
|
ВсеТесты.Добавить("Тест_НастройкиСценариев");
|
|
|
|
Возврат ВсеТесты;
|
|
|
|
КонецФункции
|
|
|
|
Процедура ПередЗапускомТестов()
|
|
|
|
МенеджерПриложения.Инициализировать(ПараметрыПриложения);
|
|
|
|
Попытка
|
|
ВремТестер = Новый Тестер;
|
|
Лог = Логирование.ПолучитьЛог(ВремТестер.ИмяЛога());
|
|
Исключение
|
|
Лог = Логирование.ПолучитьЛог("Test");
|
|
КонецПопытки;
|
|
|
|
КонецПроцедуры
|
|
|
|
Процедура ПередЗапускомТеста() Экспорт
|
|
|
|
ВключитьПоказОтладки();
|
|
|
|
МенеджерВременныхФайлов = Новый МенеджерВременныхФайлов;
|
|
|
|
КонецПроцедуры
|
|
|
|
Процедура ПослеЗапускаТеста() Экспорт
|
|
|
|
МенеджерВременныхФайлов.Удалить();
|
|
МенеджерВременныхФайлов = Неопределено;
|
|
|
|
КонецПроцедуры
|
|
|
|
Процедура Тест_ИспользованиеГлобальныхНастроек() Экспорт
|
|
|
|
НастройкиПрекоммит = ЗагрузитьНастройкиИзФикстуры("v8configБезНастроекПрекоммит.json");
|
|
|
|
Ожидаем.Что(НастройкиПрекоммит, "Не удалось загрузить настройки").Заполнено();
|
|
|
|
КонецПроцедуры
|
|
|
|
Процедура Тест_ИспользованиеЛокальныхНастроек() Экспорт
|
|
|
|
НастройкиПрекоммит = ЗагрузитьНастройкиИзФикстуры("v8config.json");
|
|
|
|
Ожидаем.Что(НастройкиПрекоммит, "Не удалось загрузить настройки").Заполнено();
|
|
|
|
ОжидаемыеСценарии = Новый Массив();
|
|
ОжидаемыеСценарии.Добавить("УдалениеДублейМетаданных.os");
|
|
ОжидаемыеСценарии.Добавить("УдалениеЛишнихКонцевыхПробелов.os");
|
|
ОжидаемыеСценарии.Добавить("УдалениеЛишнихПустыхСтрок.os");
|
|
|
|
ПроверитьОжидаемыеСценарии(НастройкиПрекоммит["ГлобальныеСценарии"], ОжидаемыеСценарии);
|
|
|
|
КонецПроцедуры
|
|
|
|
Процедура Тест_ОтключенныеНастройки() Экспорт
|
|
|
|
НастройкиПрекоммит = ЗагрузитьНастройкиИзФикстуры("v8configОтключенныеСценарии.json");
|
|
|
|
Ожидаем.Что(НастройкиПрекоммит, "Не удалось загрузить настройки").Заполнено();
|
|
|
|
ОжидаемыеСценарии = Новый Массив();
|
|
ОжидаемыеСценарии.Добавить("ДобавлениеПробеловПередКлючевымиСловами.os");
|
|
ОжидаемыеСценарии.Добавить("ЗапретИспользованияПерейти.os");
|
|
ОжидаемыеСценарии.Добавить("ИсправлениеНеКаноническогоНаписания.os");
|
|
ОжидаемыеСценарии.Добавить("КорректировкаXMLФорм.os");
|
|
ОжидаемыеСценарии.Добавить("ОтключениеПолнотекстовогоПоиска.os");
|
|
ОжидаемыеСценарии.Добавить("ПроверкаДублейПроцедурИФункций.os");
|
|
ОжидаемыеСценарии.Добавить("ПроверкаКорректностиОбластей.os");
|
|
ОжидаемыеСценарии.Добавить("РазборОбычныхФормНаИсходники.os");
|
|
ОжидаемыеСценарии.Добавить("РазборОтчетовОбработокРасширений.os");
|
|
ОжидаемыеСценарии.Добавить("СинхронизацияОбъектовМетаданныхИФайлов.os");
|
|
ОжидаемыеСценарии.Добавить("СортировкаДереваМетаданных.os");
|
|
|
|
ИменаЗагружаемыхСценариев = МенеджерНастроек.ИменаЗагружаемыхСценариев();
|
|
|
|
ПроверитьОжидаемыеСценарии(ИменаЗагружаемыхСценариев, ОжидаемыеСценарии);
|
|
|
|
ИменаЗагружаемыхСценариев = МенеджерНастроек.ИменаЗагружаемыхСценариев("Несуществующий проект");
|
|
|
|
ПроверитьОжидаемыеСценарии(ИменаЗагружаемыхСценариев, ОжидаемыеСценарии);
|
|
|
|
КонецПроцедуры
|
|
|
|
Процедура Тест_ОтключенныеНастройкиИПереопределенныеГлобальныеСценарии() Экспорт
|
|
|
|
НастройкиПрекоммит = ЗагрузитьНастройкиИзФикстуры("v8configОтключенныеСценарииПереопреденыГлобальные.json");
|
|
|
|
Ожидаем.Что(НастройкиПрекоммит, "Не удалось загрузить настройки").Заполнено();
|
|
|
|
ОжидаемыеСценарии = Новый Массив();
|
|
ОжидаемыеСценарии.Добавить("РазборОбычныхФормНаИсходники.os");
|
|
ОжидаемыеСценарии.Добавить("РазборОтчетовОбработокРасширений.os");
|
|
ОжидаемыеСценарии.Добавить("СинхронизацияОбъектовМетаданныхИФайлов.os");
|
|
ОжидаемыеСценарии.Добавить("СортировкаДереваМетаданных.os");
|
|
|
|
ИменаЗагружаемыхСценариев = МенеджерНастроек.ИменаЗагружаемыхСценариев();
|
|
|
|
ПроверитьОжидаемыеСценарии(ИменаЗагружаемыхСценариев, ОжидаемыеСценарии);
|
|
|
|
ИменаЗагружаемыхСценариев = МенеджерНастроек.ИменаЗагружаемыхСценариев("Несуществующий проект");
|
|
|
|
ПроверитьОжидаемыеСценарии(ИменаЗагружаемыхСценариев, ОжидаемыеСценарии);
|
|
|
|
КонецПроцедуры
|
|
|
|
Процедура Тест_НастройкиПроектов() Экспорт
|
|
|
|
ВсеСценарии = МенеджерНастроек.ПолучитьИменаСценариевКаталога(МенеджерПриложения.КаталогСценариев());
|
|
|
|
Каталог = СоздатьТестовыйКаталог("v8configПроекты.json");
|
|
|
|
Настройки = МенеджерНастроек.НастройкиРепозитория(Каталог);
|
|
НастройкиПрекоммит = Настройки.НастройкиПриложения(МенеджерНастроек.КлючНастройкиPrecommit());
|
|
|
|
Ожидаем.Что(МенеджерНастроек.ПроектыКонфигурации(), "Не найден проект настроек").Содержит("configuration\");
|
|
Ожидаем.Что(МенеджерНастроек.ПроектыКонфигурации(), "Не найден проект настроек").Содержит("ext\extension1\");
|
|
|
|
ПроверитьЗначение("ИспользоватьСценарииРепозитория", "configuration\", Ложь);
|
|
ПроверитьЗначение("ИспользоватьСценарииРепозитория", "ext\extension1\", Истина);
|
|
ПроверитьЗначение("ИспользоватьСценарииРепозитория", "ext\extension2\", Истина, "Несуществующий проект");
|
|
|
|
ПроверитьЗначение("КаталогЛокальныхСценариев", "ext\extension1\", "localscenario");
|
|
ПроверитьЗначение("КаталогЛокальныхСценариев", "ext\extension2\", "", "Несуществующий проект");
|
|
|
|
Сценарии = МенеджерНастроек.ИменаЗагружаемыхСценариев("configuration\");
|
|
Ожидаем.Что(Сценарии.Количество(), "Сценарии проекта 'configuration'").Равно(0);
|
|
|
|
Сценарии = МенеджерНастроек.ИменаЗагружаемыхСценариев("ext\extension1\");
|
|
Ожидаем.Что(Сценарии.Количество(), "Сценарии проекта 'ext\extension1'").Равно(ВсеСценарии.Количество());
|
|
|
|
Сценарии = МенеджерНастроек.ИменаЗагружаемыхСценариев("ext\extension2\");
|
|
Ожидаем.Что(Сценарии.Количество(), "Сценарии проекта 'ext\extension2' несуществующий проект").Равно(ВсеСценарии.Количество() - 1);
|
|
|
|
НастройкаConfiguration = МенеджерНастроек.НастройкиПроекта("configuration\");
|
|
Ожидаем.Что(НастройкаConfiguration,
|
|
"Не корректные настройки проекта")
|
|
.Не_().Равно(НастройкиПрекоммит);
|
|
|
|
НастройкаExtension1 = МенеджерНастроек.НастройкиПроекта("ext\extension1\");
|
|
Ожидаем.Что(НастройкаExtension1,
|
|
"Не корректные настройки проекта")
|
|
.Не_().Равно(НастройкиПрекоммит);
|
|
Ожидаем.Что(МенеджерНастроек.НастройкиПроекта("configuration2"),
|
|
"Не корректные настройки проекта. Для отсутствующего проекта должны возвращаться общие настройки")
|
|
.Равно(НастройкиПрекоммит);
|
|
|
|
ВариантыПроверки = Новый ТаблицаЗначений();
|
|
ВариантыПроверки.Колонки.Добавить("ИмяФайла");
|
|
ВариантыПроверки.Колонки.Добавить("Настройка");
|
|
ДобавитьВариантНастройки(ВариантыПроверки, "configuration\module.bsl", НастройкаConfiguration);
|
|
ДобавитьВариантНастройки(ВариантыПроверки, "ext\extension1\module.bsl", НастройкаExtension1);
|
|
ДобавитьВариантНастройки(ВариантыПроверки, "\confiGuration\module.bsl", НастройкаConfiguration);
|
|
ДобавитьВариантНастройки(ВариантыПроверки, "test\module.bsl", НастройкиПрекоммит);
|
|
ДобавитьВариантНастройки(ВариантыПроверки, "module.bsl", НастройкиПрекоммит);
|
|
ДобавитьВариантНастройки(ВариантыПроверки, "", НастройкиПрекоммит);
|
|
|
|
Для каждого Вариант Из ВариантыПроверки Цикл
|
|
|
|
Ожидаем.Что(МенеджерНастроек.НастройкаДляФайла(Вариант.ИмяФайла),
|
|
СтрШаблон("Не верно определена настройка для файла '%1'", Вариант.ИмяФайла))
|
|
.Равно(Вариант.Настройка);
|
|
|
|
КонецЦикла;
|
|
|
|
КонецПроцедуры
|
|
|
|
Процедура Тест_НастройкиСценариев() Экспорт
|
|
|
|
НастройкиПрекоммит = ЗагрузитьНастройкиИзФикстуры("v8configПроекты.json");
|
|
|
|
ВариантыПроверки = Новый ТаблицаЗначений();
|
|
ВариантыПроверки.Колонки.Добавить("ИмяФайла");
|
|
ВариантыПроверки.Колонки.Добавить("ИмяСценария");
|
|
ВариантыПроверки.Колонки.Добавить("ИмяНастройки");
|
|
ВариантыПроверки.Колонки.Добавить("ЗначениеНастройки");
|
|
|
|
ДобавитьВариантНастройки(ВариантыПроверки, "ext\extension1\module.bsl", "ОтключениеПолнотекстовогоПоиска", "МетаданныеДляИсключения", "src\Документ2.mdo");
|
|
ДобавитьВариантНастройки(ВариантыПроверки, "configuration\module.bsl", "ОтключениеПолнотекстовогоПоиска", "МетаданныеДляИсключения", Неопределено);
|
|
ДобавитьВариантНастройки(ВариантыПроверки, "tests\module.bsl", "ОтключениеПолнотекстовогоПоиска", "МетаданныеДляИсключения", "src\Документ1.mdo");
|
|
|
|
Для Каждого Вариант Из ВариантыПроверки Цикл
|
|
|
|
Настройка = МенеджерНастроек.НастройкаДляФайла(Вариант.ИмяФайла);
|
|
|
|
КлючНастройки = СтрШаблон("НастройкиСценариев.%1.%2", Вариант.ИмяСценария, Вариант.ИмяНастройки);
|
|
ЗначениеНастройки = МенеджерНастроек.ЗначениеПоКлючу(Настройка, КлючНастройки);
|
|
|
|
Если НЕ ЗначениеЗаполнено(Вариант.ЗначениеНастройки) Тогда
|
|
|
|
Ожидаем.Что(ЗначениеНастройки,
|
|
СтрШаблон("Не верно определена настройка сценария '%2' для файла '%1'", Вариант.ИмяФайла, Вариант.ИмяСценария))
|
|
.Равно(Неопределено);
|
|
Иначе
|
|
|
|
Ожидаем.Что(ЗначениеНастройки[Вариант.ЗначениеНастройки],
|
|
СтрШаблон("Не верно определена настройка сценария '%2' для файла '%1'", Вариант.ИмяФайла, Вариант.ИмяСценария))
|
|
.НЕ_().Равно(Неопределено);
|
|
|
|
КонецЕсли;
|
|
|
|
КонецЦикла;
|
|
|
|
КонецПроцедуры
|
|
|
|
Процедура ПроверитьЗначение(Ключ, Проект, ОжидаемоеЗначение, Дополнение = "")
|
|
|
|
Ожидаем.Что(МенеджерНастроек.ЗначениеНастройки(Ключ, Проект),
|
|
СтрШаблон("Не верное значение настройки '%1.%2' %3", Проект, Ключ, Дополнение))
|
|
.Равно(ОжидаемоеЗначение);
|
|
|
|
КонецПроцедуры
|
|
|
|
#Область Служебные
|
|
|
|
Процедура ПроверитьОжидаемыеСценарии(ГлобальныеСценарии, ОжидаемыеСценарии)
|
|
|
|
Ожидаем.Что(ГлобальныеСценарии, "Нет глобальных сценариев").Заполнено();
|
|
|
|
Ожидаем.Что(ГлобальныеСценарии.Количество(), "Не корректный список сценариев").Равно(ОжидаемыеСценарии.Количество());
|
|
|
|
Для каждого ИмяСценария Из ОжидаемыеСценарии Цикл
|
|
|
|
Ожидаем.Что(ГлобальныеСценарии, "Не содержит нужные сценарии").Содержит(ИмяСценария)
|
|
|
|
КонецЦикла;
|
|
|
|
КонецПроцедуры
|
|
|
|
Процедура ВключитьПоказОтладки()
|
|
Лог.УстановитьУровень(УровниЛога.Отладка);
|
|
КонецПроцедуры
|
|
|
|
Процедура ВыключитьПоказОтладки()
|
|
Лог.УстановитьУровень(УровниЛога.Информация);
|
|
КонецПроцедуры
|
|
|
|
Функция ЗагрузитьНастройкиИзФикстуры(ИмяФикстуры)
|
|
|
|
КаталогРепозитория = СоздатьТестовыйКаталог(ИмяФикстуры);
|
|
|
|
Настройки = МенеджерНастроек.НастройкиРепозитория(КаталогРепозитория);
|
|
|
|
Возврат Настройки.НастройкиПриложения(МенеджерНастроек.КлючНастройкиPrecommit());
|
|
|
|
КонецФункции
|
|
|
|
Функция СоздатьТестовыйКаталог(ИмяФикстуры)
|
|
|
|
Каталог = МенеджерВременныхФайлов.СоздатьКаталог();
|
|
|
|
КаталогФикстур = ОбъединитьПути(ТекущийСценарий().Каталог, "fixtures", "Настройки");
|
|
Фикстура = ОбъединитьПути(КаталогФикстур, ИмяФикстуры);
|
|
|
|
КопироватьФайл(Фикстура, ОбъединитьПути(Каталог, "v8config.json"));
|
|
|
|
СоздатьКаталог(ОбъединитьПути(Каталог, "configuration"));
|
|
СоздатьКаталог(ОбъединитьПути(Каталог, "ext"));
|
|
СоздатьКаталог(ОбъединитьПути(Каталог, "ext", "extension1"));
|
|
СоздатьКаталог(ОбъединитьПути(Каталог, "ext", "extension2"));
|
|
|
|
Возврат Каталог;
|
|
|
|
КонецФункции
|
|
|
|
Процедура ДобавитьВариантНастройки(Варианты, Значение1 = Неопределено, Значение2 = Неопределено, Значение3 = Неопределено, Значение4 = Неопределено)
|
|
|
|
Строка = Варианты.Добавить();
|
|
|
|
Для Инд = 1 По 4 Цикл
|
|
|
|
Значение = Вычислить(СтрШаблон("Значение%1", Инд));
|
|
|
|
Если Значение <> Неопределено Тогда
|
|
Строка[Инд - 1] = Значение;
|
|
КонецЕсли;
|
|
КонецЦикла;
|
|
|
|
КонецПроцедуры
|
|
|
|
#КонецОбласти |