diff --git "a/src/\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\270\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\224\321\203\320\261\320\273\320\265\320\271\320\243\320\275\320\270\320\272\320\260\320\273\321\214\320\275\321\213\321\205\320\230\320\264\320\265\320\275\321\202\320\270\321\204\320\270\320\272\320\260\321\202\320\276\321\200\320\276\320\262.os" "b/src/\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\270\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\224\321\203\320\261\320\273\320\265\320\271\320\243\320\275\320\270\320\272\320\260\320\273\321\214\320\275\321\213\321\205\320\230\320\264\320\265\320\275\321\202\320\270\321\204\320\270\320\272\320\260\321\202\320\276\321\200\320\276\320\262.os" new file mode 100644 index 0000000..81aa9d2 --- /dev/null +++ "b/src/\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\270\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\224\321\203\320\261\320\273\320\265\320\271\320\243\320\275\320\270\320\272\320\260\320\273\321\214\320\275\321\213\321\205\320\230\320\264\320\265\320\275\321\202\320\270\321\204\320\270\320\272\320\260\321\202\320\276\321\200\320\276\320\262.os" @@ -0,0 +1,157 @@ +/////////////////////////////////////////////////////////////////////////////// +// +// Служебный модуль с реализацией сценариев обработки файлов <ПроверкаДублейУникальныхИдентификаторов> +// +/////////////////////////////////////////////////////////////////////////////// + +// Лог - Объект - Текущий лог +Перем Лог; + +// ИмяСценария +// Возвращает имя сценария обработки файлов +// +// Возвращаемое значение: +// Строка - Имя текущего сценария обработки файлов +// +Функция ИмяСценария() Экспорт + + Возврат "ПроверкаДублейУникальныхИдентификаторов"; + +КонецФункции // ИмяСценария() + +// ОбработатьФайл +// Выполняет обработку файла +// +// Параметры: +// АнализируемыйФайл - Файл - Файл из журнала git для анализа +// КаталогИсходныхФайлов - Строка - Каталог расположения исходных файлов относительно каталог репозитория +// ДополнительныеПараметры - Структура - Набор дополнительных параметров, которые можно использовать +// * Лог - Объект - Текущий лог +// * ИзмененныеКаталоги - Массив - Каталоги, которые необходимо добавить в индекс +// * КаталогРепозитория - Строка - Адрес каталога репозитория +// * ФайлыДляПостОбработки - Массив - Файлы, изменившиеся / образовавшиеся в результате работы сценария +// и которые необходимо дообработать +// +// Возвращаемое значение: +// Булево - Признак выполненной обработки файла +// +Функция ОбработатьФайл(АнализируемыйФайл, КаталогИсходныхФайлов, ДополнительныеПараметры) Экспорт + + Лог = ДополнительныеПараметры.Лог; + + Если АнализируемыйФайл.Существует() И ТипыФайлов.ЭтоФайлОписанияМетаданных(АнализируемыйФайл) Тогда + + Лог.Информация("Обработка файла '%1' по сценарию '%2'", АнализируемыйФайл.ПолноеИмя, ИмяСценария()); + + ПроверитьНаличиеДублейУникальныхИдентификаторов(АнализируемыйФайл, КаталогИсходныхФайлов); + Возврат Истина; + + КонецЕсли; + + Возврат Ложь; + +КонецФункции // ОбработатьФайл() + +Процедура ПроверитьНаличиеДублейУникальныхИдентификаторов(АнализируемыйФайл, КаталогКонфигурации) + + Идентификаторы = ИдентификаторыПроверяемогоФайла(АнализируемыйФайл); + Если Идентификаторы.Количество() = 0 Тогда + Возврат; + КонецЕсли; + + ЭтоEDT = ТипыФайлов.ЭтоФайлОписанияМетаданныхEDT(АнализируемыйФайл); + ПроверяемыеФайлы = ФайлыОписанияМетаданных(КаталогКонфигурации, ЭтоEDT); + Если ПроверяемыеФайлы.Количество() = 0 Тогда + Возврат; + КонецЕсли; + + Для каждого ФайлНаПроверку Из ПроверяемыеФайлы Цикл + + Если ФайлНаПроверку.ПолноеИмя = АнализируемыйФайл.ПолноеИмя Тогда + Продолжить; + КонецЕсли; + + УникальныйИдентификатор = НайтиДубликатыУникальногоИдентификатора(ФайлНаПроверку, Идентификаторы); + Если УникальныйИдентификатор = Неопределено Тогда + Продолжить; + КонецЕсли; + + ТекстОшибки = СтрШаблон("В файле '%1' обнаружен uuid %2 из проверяемого файла %3", + ФайлНаПроверку.ПолноеИмя, УникальныйИдентификатор, АнализируемыйФайл.ПолноеИмя); + Лог.Ошибка(ТекстОшибки); + + ВызватьИсключение ТекстОшибки; + + КонецЦикла; + +КонецПроцедуры + +Функция ИдентификаторыПроверяемогоФайла(АнализируемыйФайл) + + Идентификаторы = Новый Массив; + ТекстМодуля = ФайловыеОперации.ПрочитатьТекстФайла(АнализируемыйФайл.ПолноеИмя); + Если ПустаяСтрока(ТекстМодуля) Тогда + Возврат Идентификаторы; + КонецЕсли; + + ТекстРегулярногоВыражения = ТекстРегулярногоВыражения(); + ШаблонПоиска = Новый РегулярноеВыражение(ТекстРегулярногоВыражения); + ШаблонПоиска.Многострочный = Ложь; + ШаблонПоиска.ИгнорироватьРегистр = Истина; + + Совпадения = ШаблонПоиска.НайтиСовпадения(ТекстМодуля); + Если Совпадения.Количество() = 0 Тогда + Возврат Идентификаторы; + КонецЕсли; + + Для каждого Совпадение Из Совпадения Цикл + Если Совпадение.Группы.Количество() < 2 Тогда + Продолжить; + КонецЕсли; + НайденныйУникальныйИдентификатор = Совпадение.Группы[1].Значение; + Идентификаторы.Добавить(НайденныйУникальныйИдентификатор); + КонецЦикла; + + Возврат Идентификаторы; + +КонецФункции + +Функция ФайлыОписанияМетаданных(КаталогКонфигурации, ЭтоEDT) + + ФайлыОписания = Новый Массив; + ФильтрФайлов = ?(ЭтоEDT, "*.mdo", "*.xml"); + ФайлыНаПроверку = НайтиФайлы(КаталогКонфигурации, ФильтрФайлов, Истина); + Для каждого Файл Из ФайлыНаПроверку Цикл + Если Не Файл.Существует() Или + Не ТипыФайлов.ЭтоФайлОписанияМетаданных(Файл) Тогда + Продолжить; + КонецЕсли; + ФайлыОписания.Добавить(Файл); + КонецЦикла; + + Возврат ФайлыОписания; + +КонецФункции + +Функция НайтиДубликатыУникальногоИдентификатора(АнализируемыйФайл, УникальныеИдентификаторы) + + ТекстФайла = ФайловыеОперации.ПрочитатьТекстФайла(АнализируемыйФайл.ПолноеИмя); + Если ПустаяСтрока(ТекстФайла) Тогда + Возврат Неопределено; + КонецЕсли; + + Для каждого УИД Из УникальныеИдентификаторы Цикл + + ТекстУИД = СтрШаблон("uuid=""%1""", УИД); + Если СтрНайти(ТекстФайла, ТекстУИД) > 0 Тогда + Возврат УИД; + КонецЕсли; + КонецЦикла; + + Возврат Неопределено; + +КонецФункции + +Функция ТекстРегулярногоВыражения() + Возврат "uuid=\W([0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12})"; +КонецФункции \ No newline at end of file diff --git "a/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\224\321\203\320\261\320\273\320\265\320\271\320\243\320\275\320\270\320\272\320\260\320\273\321\214\320\275\321\213\321\205\320\230\320\264\320\265\320\275\321\202\320\270\321\204\320\270\320\272\320\260\321\202\320\276\321\200\320\276\320\262/Configurator/Catalogs/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2721/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2721.xml" "b/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\224\321\203\320\261\320\273\320\265\320\271\320\243\320\275\320\270\320\272\320\260\320\273\321\214\320\275\321\213\321\205\320\230\320\264\320\265\320\275\321\202\320\270\321\204\320\270\320\272\320\260\321\202\320\276\321\200\320\276\320\262/Configurator/Catalogs/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2721/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2721.xml" new file mode 100644 index 0000000..5b83c39 --- /dev/null +++ "b/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\224\321\203\320\261\320\273\320\265\320\271\320\243\320\275\320\270\320\272\320\260\320\273\321\214\320\275\321\213\321\205\320\230\320\264\320\265\320\275\321\202\320\270\321\204\320\270\320\272\320\260\321\202\320\276\321\200\320\276\320\262/Configurator/Catalogs/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2721/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2721.xml" @@ -0,0 +1,15 @@ + + + + + Справочник1 + + + ru + Справочник1 + + + + + + diff --git "a/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\224\321\203\320\261\320\273\320\265\320\271\320\243\320\275\320\270\320\272\320\260\320\273\321\214\320\275\321\213\321\205\320\230\320\264\320\265\320\275\321\202\320\270\321\204\320\270\320\272\320\260\321\202\320\276\321\200\320\276\320\262/Configurator/Catalogs/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2722/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2722.xml" "b/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\224\321\203\320\261\320\273\320\265\320\271\320\243\320\275\320\270\320\272\320\260\320\273\321\214\320\275\321\213\321\205\320\230\320\264\320\265\320\275\321\202\320\270\321\204\320\270\320\272\320\260\321\202\320\276\321\200\320\276\320\262/Configurator/Catalogs/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2722/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2722.xml" new file mode 100644 index 0000000..e628aef --- /dev/null +++ "b/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\224\321\203\320\261\320\273\320\265\320\271\320\243\320\275\320\270\320\272\320\260\320\273\321\214\320\275\321\213\321\205\320\230\320\264\320\265\320\275\321\202\320\270\321\204\320\270\320\272\320\260\321\202\320\276\321\200\320\276\320\262/Configurator/Catalogs/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2722/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2722.xml" @@ -0,0 +1,15 @@ + + + + + Справочник2 + + + ru + Справочник2 + + + + + + diff --git "a/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\224\321\203\320\261\320\273\320\265\320\271\320\243\320\275\320\270\320\272\320\260\320\273\321\214\320\275\321\213\321\205\320\230\320\264\320\265\320\275\321\202\320\270\321\204\320\270\320\272\320\260\321\202\320\276\321\200\320\276\320\262/Configurator/Catalogs/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2723/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2723.xml" "b/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\224\321\203\320\261\320\273\320\265\320\271\320\243\320\275\320\270\320\272\320\260\320\273\321\214\320\275\321\213\321\205\320\230\320\264\320\265\320\275\321\202\320\270\321\204\320\270\320\272\320\260\321\202\320\276\321\200\320\276\320\262/Configurator/Catalogs/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2723/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2723.xml" new file mode 100644 index 0000000..4b7b507 --- /dev/null +++ "b/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\224\321\203\320\261\320\273\320\265\320\271\320\243\320\275\320\270\320\272\320\260\320\273\321\214\320\275\321\213\321\205\320\230\320\264\320\265\320\275\321\202\320\270\321\204\320\270\320\272\320\260\321\202\320\276\321\200\320\276\320\262/Configurator/Catalogs/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2723/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2723.xml" @@ -0,0 +1,15 @@ + + + + + Справочник3 + + + ru + Справочник3 + + + + + + diff --git "a/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\224\321\203\320\261\320\273\320\265\320\271\320\243\320\275\320\270\320\272\320\260\320\273\321\214\320\275\321\213\321\205\320\230\320\264\320\265\320\275\321\202\320\270\321\204\320\270\320\272\320\260\321\202\320\276\321\200\320\276\320\262/Configurator/\320\224\321\203\320\261\320\273\320\270/Catalogs/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\241\320\224\321\203\320\261\320\273\320\265\320\274/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\241\320\224\321\203\320\261\320\273\320\265\320\274.xml" "b/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\224\321\203\320\261\320\273\320\265\320\271\320\243\320\275\320\270\320\272\320\260\320\273\321\214\320\275\321\213\321\205\320\230\320\264\320\265\320\275\321\202\320\270\321\204\320\270\320\272\320\260\321\202\320\276\321\200\320\276\320\262/Configurator/\320\224\321\203\320\261\320\273\320\270/Catalogs/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\241\320\224\321\203\320\261\320\273\320\265\320\274/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\241\320\224\321\203\320\261\320\273\320\265\320\274.xml" new file mode 100644 index 0000000..7492be1 --- /dev/null +++ "b/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\224\321\203\320\261\320\273\320\265\320\271\320\243\320\275\320\270\320\272\320\260\320\273\321\214\320\275\321\213\321\205\320\230\320\264\320\265\320\275\321\202\320\270\321\204\320\270\320\272\320\260\321\202\320\276\321\200\320\276\320\262/Configurator/\320\224\321\203\320\261\320\273\320\270/Catalogs/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\241\320\224\321\203\320\261\320\273\320\265\320\274/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\241\320\224\321\203\320\261\320\273\320\265\320\274.xml" @@ -0,0 +1,15 @@ + + + + + СправочникСДублем + + + ru + СправочникСДублем + + + + + + diff --git "a/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\224\321\203\320\261\320\273\320\265\320\271\320\243\320\275\320\270\320\272\320\260\320\273\321\214\320\275\321\213\321\205\320\230\320\264\320\265\320\275\321\202\320\270\321\204\320\270\320\272\320\260\321\202\320\276\321\200\320\276\320\262/Configurator/\320\224\321\203\320\261\320\273\320\270/Catalogs/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\241\320\236\321\200\320\270\320\263\320\270\320\275\320\260\320\273\321\214\320\275\321\213\320\274UUID/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\241\320\236\321\200\320\270\320\263\320\270\320\275\320\260\320\273\321\214\320\275\321\213\320\274UUID.xml" "b/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\224\321\203\320\261\320\273\320\265\320\271\320\243\320\275\320\270\320\272\320\260\320\273\321\214\320\275\321\213\321\205\320\230\320\264\320\265\320\275\321\202\320\270\321\204\320\270\320\272\320\260\321\202\320\276\321\200\320\276\320\262/Configurator/\320\224\321\203\320\261\320\273\320\270/Catalogs/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\241\320\236\321\200\320\270\320\263\320\270\320\275\320\260\320\273\321\214\320\275\321\213\320\274UUID/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\241\320\236\321\200\320\270\320\263\320\270\320\275\320\260\320\273\321\214\320\275\321\213\320\274UUID.xml" new file mode 100644 index 0000000..4355768 --- /dev/null +++ "b/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\224\321\203\320\261\320\273\320\265\320\271\320\243\320\275\320\270\320\272\320\260\320\273\321\214\320\275\321\213\321\205\320\230\320\264\320\265\320\275\321\202\320\270\321\204\320\270\320\272\320\260\321\202\320\276\321\200\320\276\320\262/Configurator/\320\224\321\203\320\261\320\273\320\270/Catalogs/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\241\320\236\321\200\320\270\320\263\320\270\320\275\320\260\320\273\321\214\320\275\321\213\320\274UUID/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\241\320\236\321\200\320\270\320\263\320\270\320\275\320\260\320\273\321\214\320\275\321\213\320\274UUID.xml" @@ -0,0 +1,15 @@ + + + + + СправочникСОригинальнымUUID + + + ru + СправочникСОригинальнымUUID + + + + + + diff --git "a/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\224\321\203\320\261\320\273\320\265\320\271\320\243\320\275\320\270\320\272\320\260\320\273\321\214\320\275\321\213\321\205\320\230\320\264\320\265\320\275\321\202\320\270\321\204\320\270\320\272\320\260\321\202\320\276\321\200\320\276\320\262/Configurator/\320\224\321\203\320\261\320\273\320\270/Catalogs/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\241\320\243\320\275\320\270\320\272\320\260\320\273\321\214\320\275\321\213\320\274UUID/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\241\320\243\320\275\320\270\320\272\320\260\320\273\321\214\320\275\321\213\320\274UUID.xml" "b/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\224\321\203\320\261\320\273\320\265\320\271\320\243\320\275\320\270\320\272\320\260\320\273\321\214\320\275\321\213\321\205\320\230\320\264\320\265\320\275\321\202\320\270\321\204\320\270\320\272\320\260\321\202\320\276\321\200\320\276\320\262/Configurator/\320\224\321\203\320\261\320\273\320\270/Catalogs/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\241\320\243\320\275\320\270\320\272\320\260\320\273\321\214\320\275\321\213\320\274UUID/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\241\320\243\320\275\320\270\320\272\320\260\320\273\321\214\320\275\321\213\320\274UUID.xml" new file mode 100644 index 0000000..8122a42 --- /dev/null +++ "b/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\224\321\203\320\261\320\273\320\265\320\271\320\243\320\275\320\270\320\272\320\260\320\273\321\214\320\275\321\213\321\205\320\230\320\264\320\265\320\275\321\202\320\270\321\204\320\270\320\272\320\260\321\202\320\276\321\200\320\276\320\262/Configurator/\320\224\321\203\320\261\320\273\320\270/Catalogs/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\241\320\243\320\275\320\270\320\272\320\260\320\273\321\214\320\275\321\213\320\274UUID/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\241\320\243\320\275\320\270\320\272\320\260\320\273\321\214\320\275\321\213\320\274UUID.xml" @@ -0,0 +1,15 @@ + + + + + СправочникСУникальнымUUID + + + ru + СправочникСУникальнымUUID + + + + + + diff --git "a/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\224\321\203\320\261\320\273\320\265\320\271\320\243\320\275\320\270\320\272\320\260\320\273\321\214\320\275\321\213\321\205\320\230\320\264\320\265\320\275\321\202\320\270\321\204\320\270\320\272\320\260\321\202\320\276\321\200\320\276\320\262/EDT/Catalogs/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2721/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2721.mdo" "b/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\224\321\203\320\261\320\273\320\265\320\271\320\243\320\275\320\270\320\272\320\260\320\273\321\214\320\275\321\213\321\205\320\230\320\264\320\265\320\275\321\202\320\270\321\204\320\270\320\272\320\260\321\202\320\276\321\200\320\276\320\262/EDT/Catalogs/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2721/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2721.mdo" new file mode 100644 index 0000000..02c84f7 --- /dev/null +++ "b/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\224\321\203\320\261\320\273\320\265\320\271\320\243\320\275\320\270\320\272\320\260\320\273\321\214\320\275\321\213\321\205\320\230\320\264\320\265\320\275\321\202\320\270\321\204\320\270\320\272\320\260\321\202\320\276\321\200\320\276\320\262/EDT/Catalogs/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2721/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2721.mdo" @@ -0,0 +1,9 @@ + + + Справочник1 + + ru + Справочник1 + + + diff --git "a/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\224\321\203\320\261\320\273\320\265\320\271\320\243\320\275\320\270\320\272\320\260\320\273\321\214\320\275\321\213\321\205\320\230\320\264\320\265\320\275\321\202\320\270\321\204\320\270\320\272\320\260\321\202\320\276\321\200\320\276\320\262/EDT/Catalogs/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2722/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2722.mdo" "b/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\224\321\203\320\261\320\273\320\265\320\271\320\243\320\275\320\270\320\272\320\260\320\273\321\214\320\275\321\213\321\205\320\230\320\264\320\265\320\275\321\202\320\270\321\204\320\270\320\272\320\260\321\202\320\276\321\200\320\276\320\262/EDT/Catalogs/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2722/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2722.mdo" new file mode 100644 index 0000000..fa6290c --- /dev/null +++ "b/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\224\321\203\320\261\320\273\320\265\320\271\320\243\320\275\320\270\320\272\320\260\320\273\321\214\320\275\321\213\321\205\320\230\320\264\320\265\320\275\321\202\320\270\321\204\320\270\320\272\320\260\321\202\320\276\321\200\320\276\320\262/EDT/Catalogs/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2722/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2722.mdo" @@ -0,0 +1,9 @@ + + + Справочник2 + + ru + Справочник2 + + + diff --git "a/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\224\321\203\320\261\320\273\320\265\320\271\320\243\320\275\320\270\320\272\320\260\320\273\321\214\320\275\321\213\321\205\320\230\320\264\320\265\320\275\321\202\320\270\321\204\320\270\320\272\320\260\321\202\320\276\321\200\320\276\320\262/EDT/\320\224\321\203\320\261\320\273\320\270/Catalogs/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\241\320\224\321\203\320\261\320\273\320\265\320\274/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\241\320\224\321\203\320\261\320\273\320\265\320\274.mdo" "b/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\224\321\203\320\261\320\273\320\265\320\271\320\243\320\275\320\270\320\272\320\260\320\273\321\214\320\275\321\213\321\205\320\230\320\264\320\265\320\275\321\202\320\270\321\204\320\270\320\272\320\260\321\202\320\276\321\200\320\276\320\262/EDT/\320\224\321\203\320\261\320\273\320\270/Catalogs/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\241\320\224\321\203\320\261\320\273\320\265\320\274/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\241\320\224\321\203\320\261\320\273\320\265\320\274.mdo" new file mode 100644 index 0000000..bc432ec --- /dev/null +++ "b/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\224\321\203\320\261\320\273\320\265\320\271\320\243\320\275\320\270\320\272\320\260\320\273\321\214\320\275\321\213\321\205\320\230\320\264\320\265\320\275\321\202\320\270\321\204\320\270\320\272\320\260\321\202\320\276\321\200\320\276\320\262/EDT/\320\224\321\203\320\261\320\273\320\270/Catalogs/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\241\320\224\321\203\320\261\320\273\320\265\320\274/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\241\320\224\321\203\320\261\320\273\320\265\320\274.mdo" @@ -0,0 +1,9 @@ + + + СправочникСДублем + + ru + СправочникСДублем + + + diff --git "a/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\224\321\203\320\261\320\273\320\265\320\271\320\243\320\275\320\270\320\272\320\260\320\273\321\214\320\275\321\213\321\205\320\230\320\264\320\265\320\275\321\202\320\270\321\204\320\270\320\272\320\260\321\202\320\276\321\200\320\276\320\262/EDT/\320\224\321\203\320\261\320\273\320\270/Catalogs/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\241\320\236\321\200\320\270\320\263\320\270\320\275\320\260\320\273\321\214\320\275\321\213\320\274UUID/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\241\320\236\321\200\320\270\320\263\320\270\320\275\320\260\320\273\321\214\320\275\321\213\320\274UUID.mdo" "b/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\224\321\203\320\261\320\273\320\265\320\271\320\243\320\275\320\270\320\272\320\260\320\273\321\214\320\275\321\213\321\205\320\230\320\264\320\265\320\275\321\202\320\270\321\204\320\270\320\272\320\260\321\202\320\276\321\200\320\276\320\262/EDT/\320\224\321\203\320\261\320\273\320\270/Catalogs/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\241\320\236\321\200\320\270\320\263\320\270\320\275\320\260\320\273\321\214\320\275\321\213\320\274UUID/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\241\320\236\321\200\320\270\320\263\320\270\320\275\320\260\320\273\321\214\320\275\321\213\320\274UUID.mdo" new file mode 100644 index 0000000..bc698ae --- /dev/null +++ "b/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\224\321\203\320\261\320\273\320\265\320\271\320\243\320\275\320\270\320\272\320\260\320\273\321\214\320\275\321\213\321\205\320\230\320\264\320\265\320\275\321\202\320\270\321\204\320\270\320\272\320\260\321\202\320\276\321\200\320\276\320\262/EDT/\320\224\321\203\320\261\320\273\320\270/Catalogs/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\241\320\236\321\200\320\270\320\263\320\270\320\275\320\260\320\273\321\214\320\275\321\213\320\274UUID/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\241\320\236\321\200\320\270\320\263\320\270\320\275\320\260\320\273\321\214\320\275\321\213\320\274UUID.mdo" @@ -0,0 +1,9 @@ + + + СправочникСОригинальнымUUID + + ru + СправочникСОригинальнымUUID + + + diff --git "a/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\224\321\203\320\261\320\273\320\265\320\271\320\243\320\275\320\270\320\272\320\260\320\273\321\214\320\275\321\213\321\205\320\230\320\264\320\265\320\275\321\202\320\270\321\204\320\270\320\272\320\260\321\202\320\276\321\200\320\276\320\262/EDT/\320\224\321\203\320\261\320\273\320\270/Catalogs/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\241\320\243\320\275\320\270\320\272\320\260\320\273\321\214\320\275\321\213\320\274UUID/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\241\320\243\320\275\320\270\320\272\320\260\320\273\321\214\320\275\321\213\320\274UUID.mdo" "b/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\224\321\203\320\261\320\273\320\265\320\271\320\243\320\275\320\270\320\272\320\260\320\273\321\214\320\275\321\213\321\205\320\230\320\264\320\265\320\275\321\202\320\270\321\204\320\270\320\272\320\260\321\202\320\276\321\200\320\276\320\262/EDT/\320\224\321\203\320\261\320\273\320\270/Catalogs/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\241\320\243\320\275\320\270\320\272\320\260\320\273\321\214\320\275\321\213\320\274UUID/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\241\320\243\320\275\320\270\320\272\320\260\320\273\321\214\320\275\321\213\320\274UUID.mdo" new file mode 100644 index 0000000..d4318a3 --- /dev/null +++ "b/tests/fixtures/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\224\321\203\320\261\320\273\320\265\320\271\320\243\320\275\320\270\320\272\320\260\320\273\321\214\320\275\321\213\321\205\320\230\320\264\320\265\320\275\321\202\320\270\321\204\320\270\320\272\320\260\321\202\320\276\321\200\320\276\320\262/EDT/\320\224\321\203\320\261\320\273\320\270/Catalogs/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\241\320\243\320\275\320\270\320\272\320\260\320\273\321\214\320\275\321\213\320\274UUID/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\241\320\243\320\275\320\270\320\272\320\260\320\273\321\214\320\275\321\213\320\274UUID.mdo" @@ -0,0 +1,9 @@ + + + СправочникСУникальнымUUID + + ru + СправочникСУникальнымUUID + + + diff --git "a/tests/\320\242\320\265\321\201\321\202\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\265\320\262\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270.os" "b/tests/\320\242\320\265\321\201\321\202\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\265\320\262\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270.os" index 9198145..dd8cb2a 100644 --- "a/tests/\320\242\320\265\321\201\321\202\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\265\320\262\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270.os" +++ "b/tests/\320\242\320\265\321\201\321\202\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\265\320\262\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270.os" @@ -49,6 +49,10 @@ ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСообщениеКоммитаОбрабатываютФайлыТолькоВУказанномКаталоге"); ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоВыполняютсяПринудительноУказанныеЛокальныеСценарии"); ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоВыполняютсяВсеЛокальныеСценарии"); + ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийПроверкиДублейУникальныхИдентификаторовОбработаетКорректныеФайлы"); + ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийПроверкиДублейУникальныхИдентификаторовВызываетИсключение"); + ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийПроверкиДублейУникальныхИдентификаторовНеОбработаетНесуществующийФайл"); + ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийПроверкиДублейУникальныхИдентификаторовНеОбработаетНеМетаданные"); Возврат ВсеТесты; @@ -343,6 +347,123 @@ #КонецОбласти +#Область ПроверкаДублейУникальныхИдентификаторов + +Процедура ТестДолжен_ПроверитьЧтоСценарийПроверкиДублейУникальныхИдентификаторовОбработаетКорректныеФайлы() Экспорт + + ОбъектСценария = ПолучитьСценарий("ПроверкаДублейУникальныхИдентификаторов.os"); + + ВременныйКаталог = ПолучитьИмяВременногоФайла(); + Фикстура = Фикстура("ПроверкаДублейУникальныхИдентификаторов"); + СоздатьКаталог(ВременныйКаталог); + СкопироватьКаталог(ОбъединитьПути(Фикстура, "Configurator"), ВременныйКаталог); + + ДополнительныеНастройки = ПолучитьДополнительныеНастройки(ВременныйКаталог); + ПутьККаталогуКонфигурации = ОбъединитьПути(ВременныйКаталог, "Catalogs"); + + // Проверка файла с уникальным UUID (формат конфигуратора) + Файл = Новый Файл(ОбъединитьПути(ПутьККаталогуКонфигурации, "Справочник1", "Справочник1.xml")); + Результат = ОбъектСценария.ОбработатьФайл(Файл, ПутьККаталогуКонфигурации, ДополнительныеНастройки); + Ожидаем.Что(Результат, "Справочник1.xml должен быть обработан").ЭтоИстина(); + + // Проверка файла с уникальным UUID (формат конфигуратора) + Файл = Новый Файл(ОбъединитьПути(ПутьККаталогуКонфигурации, "Справочник2", "Справочник2.xml")); + Результат = ОбъектСценария.ОбработатьФайл(Файл, ПутьККаталогуКонфигурации, ДополнительныеНастройки); + Ожидаем.Что(Результат, "Справочник2.xml должен быть обработан").ЭтоИстина(); + + // Проверка файла с уникальным UUID (формат конфигуратора) + Файл = Новый Файл(ОбъединитьПути(ПутьККаталогуКонфигурации, "Справочник3", "Справочник3.xml")); + Результат = ОбъектСценария.ОбработатьФайл(Файл, ПутьККаталогуКонфигурации, ДополнительныеНастройки); + Ожидаем.Что(Результат, "Справочник3.xml должен быть обработан").ЭтоИстина(); + + МенеджерВременныхФайлов.УдалитьФайл(ВременныйКаталог); + + // Проверка файла с уникальным UUID (формат EDT) + ВременныйКаталог = ПолучитьИмяВременногоФайла(); + СоздатьКаталог(ВременныйКаталог); + СкопироватьКаталог(ОбъединитьПути(Фикстура, "EDT"), ВременныйКаталог); + + ДополнительныеНастройки = ПолучитьДополнительныеНастройки(ВременныйКаталог); + ПутьККаталогуКонфигурации = ОбъединитьПути(ВременныйКаталог, "Catalogs"); + + // Проверка файла с уникальным UUID (формат EDT) + Файл = Новый Файл(ОбъединитьПути(ПутьККаталогуКонфигурации, "Справочник1", "Справочник1.mdo")); + Результат = ОбъектСценария.ОбработатьФайл(Файл, ПутьККаталогуКонфигурации, ДополнительныеНастройки); + Ожидаем.Что(Результат, "Справочник1.mdo должен быть обработан").ЭтоИстина(); + + // Проверка файла с уникальным UUID (формат EDT) + Файл = Новый Файл(ОбъединитьПути(ПутьККаталогуКонфигурации, "Справочник2", "Справочник2.mdo")); + Результат = ОбъектСценария.ОбработатьФайл(Файл, ПутьККаталогуКонфигурации, ДополнительныеНастройки); + Ожидаем.Что(Результат, "Справочник2.mdo должен быть обработан").ЭтоИстина(); + + МенеджерВременныхФайлов.УдалитьФайл(ВременныйКаталог); + +КонецПроцедуры + +Процедура ТестДолжен_ПроверитьЧтоСценарийПроверкиДублейУникальныхИдентификаторовВызываетИсключение() Экспорт + + ОбъектСценария = ПолучитьСценарий("ПроверкаДублейУникальныхИдентификаторов.os"); + + ВременныйКаталог = ПолучитьИмяВременногоФайла(); + Фикстура = Фикстура("ПроверкаДублейУникальныхИдентификаторов"); + СоздатьКаталог(ВременныйКаталог); + СкопироватьКаталог(ОбъединитьПути(Фикстура, "Configurator", "Дубли"), ВременныйКаталог); + + ДополнительныеНастройки = ПолучитьДополнительныеНастройки(ВременныйКаталог); + ПутьККаталогуКонфигурации = ОбъединитьПути(ВременныйКаталог, "Catalogs"); + + // Проверка файла с дублем UUID (формат конфигуратора) + Файл = Новый Файл(ОбъединитьПути(ПутьККаталогуКонфигурации, "СправочникСДублем", "СправочникСДублем.xml")); + ПараметрыМетода = Новый Массив; + ПараметрыМетода.Добавить(Файл); + ПараметрыМетода.Добавить(ПутьККаталогуКонфигурации); + ПараметрыМетода.Добавить(ДополнительныеНастройки); + Ожидаем.Что(ОбъектСценария).Метод("ОбработатьФайл", ПараметрыМетода).ВыбрасываетИсключение("обнаружен uuid"); + + МенеджерВременныхФайлов.УдалитьФайл(ВременныйКаталог); + + // Проверка файла с дублем UUID (формат EDT) + ВременныйКаталог = ПолучитьИмяВременногоФайла(); + СоздатьКаталог(ВременныйКаталог); + СкопироватьКаталог(ОбъединитьПути(Фикстура, "EDT", "Дубли"), ВременныйКаталог); + + ДополнительныеНастройки = ПолучитьДополнительныеНастройки(ВременныйКаталог); + ПутьККаталогуКонфигурации = ОбъединитьПути(ВременныйКаталог, "Catalogs"); + + // Проверка файла с дублем UUID (формат EDT) + Файл = Новый Файл(ОбъединитьПути(ПутьККаталогуКонфигурации, "СправочникСДублем", "СправочникСДублем.mdo")); + ПараметрыМетода = Новый Массив; + ПараметрыМетода.Добавить(Файл); + ПараметрыМетода.Добавить(ПутьККаталогуКонфигурации); + ПараметрыМетода.Добавить(ДополнительныеНастройки); + Ожидаем.Что(ОбъектСценария).Метод("ОбработатьФайл", ПараметрыМетода).ВыбрасываетИсключение("обнаружен uuid"); + + МенеджерВременныхФайлов.УдалитьФайл(ВременныйКаталог); + +КонецПроцедуры + +Процедура ТестДолжен_ПроверитьЧтоСценарийПроверкиДублейУникальныхИдентификаторовНеОбработаетНесуществующийФайл() Экспорт + + Файл = Новый Файл(ПолучитьИмяВременногоФайла("xml")); + ОбъектСценария = ПолучитьСценарий("ПроверкаДублейУникальныхИдентификаторов.os"); + Результат = ОбъектСценария.ОбработатьФайл(Файл, Файл.Путь, ПолучитьДополнительныеНастройки()); + + Ожидаем.Что(Результат, Истина).ЭтоЛожь(); + +КонецПроцедуры + +Процедура ТестДолжен_ПроверитьЧтоСценарийПроверкиДублейУникальныхИдентификаторовНеОбработаетНеМетаданные() Экспорт + + Файл = Новый Файл(МенеджерВременныхФайлов.СоздатьФайл("bsl")); + ОбъектСценария = ПолучитьСценарий("ПроверкаДублейУникальныхИдентификаторов.os"); + Результат = ОбъектСценария.ОбработатьФайл(Файл, Файл.Путь, ПолучитьДополнительныеНастройки()); + + Ожидаем.Что(Результат, Истина).ЭтоЛожь(); + +КонецПроцедуры + +#КонецОбласти + #Область СинхронизацияОбъектовМетаданныхИФайлов Процедура ТестДолжен_ПроверитьЧтоСинхронизацияОбъектовМетаданныхВызываетИсключение() Экспорт