From 236d0055b78b43221596924ec2f9feb704ddf546 Mon Sep 17 00:00:00 2001 From: Medvedev Dmitriy Date: Mon, 18 Mar 2019 17:38:53 +0300 Subject: [PATCH] #ONECID-20 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Поправил анг с. Добавил unit тесты. обновил packagedef для unit тестов. Добавил сценарий в конфиг. --- features/ВыполнениеПрекоммита.feature | 74 +++++++++------ packagedef | 1 + tests/ПроверкаСцераниевОбработки.os | 127 ++++++++++++++++++++++++++ v8config.json | 1 + 4 files changed, 174 insertions(+), 29 deletions(-) create mode 100644 tests/ПроверкаСцераниевОбработки.os diff --git a/features/ВыполнениеПрекоммита.feature b/features/ВыполнениеПрекоммита.feature index 2e8a036..9039338 100644 --- a/features/ВыполнениеПрекоммита.feature +++ b/features/ВыполнениеПрекоммита.feature @@ -10,33 +10,49 @@ И я включаю отладку лога с именем "oscript.app.precommit4onec" И я создаю временный каталог и запоминаю его как "КаталогРепозиториев" И я переключаюсь во временный каталог "КаталогРепозиториев" - И я создаю новый репозиторий "rep1" в каталоге "КаталогРепозиториев" и запоминаю его как "Репозиторий1" - И я выполняю команду "oscript" c параметрами "<КаталогПроекта>/src/main.os install rep1" + И я создаю новый репозиторий "rep1" в каталоге "КаталогРепозиториев" и запоминаю его как "РабочийКаталог" + И я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os install rep1" -Сценарий: Фиксация изменений - Когда Я копирую файл "features/demo/DemoОбработка.epf" в каталог репозитория "Репозиторий1" - И я копирую файл "features/demo/DemoОтчет.erf" в каталог репозитория "Репозиторий1" - И я копирую файл "features/demo/DemoРасширение.cfe" в каталог репозитория "Репозиторий1" - И я фиксирую изменения в репозитории "Репозиторий1" с комментарием "demo коммит" - Тогда В каталоге "src" репозитория "Репозиторий1" есть файл "erf\DemoОтчет\DemoОтчет\Forms\ОсновнаяОФ\Ext\Form\Module.bsl" - И В каталоге "src" репозитория "Репозиторий1" есть файл "erf\DemoОтчет\DemoОтчет\Forms\ОсновнаяОФ\Ext\Form\form" - И В каталоге "src" репозитория "Репозиторий1" есть файл "erf\DemoОтчет\DemoОтчет.xml" - И В каталоге "src" репозитория "Репозиторий1" есть файл "erf\DemoОтчет\DemoОтчет\Templates\ОсновнаяСхемаКомпоновкиДанных.xml" - И В каталоге "src" репозитория "Репозиторий1" есть файл "erf\DemoОтчет\DemoОтчет\Templates\ОсновнаяСхемаКомпоновкиДанных\Ext\Template.xml" - И В каталоге "src" репозитория "Репозиторий1" есть файл "erf\DemoОтчет\DemoОтчет\Forms\ОсновнаяОФ.xml" - И В каталоге "src" репозитория "Репозиторий1" есть файл "erf\DemoОтчет\DemoОтчет\Forms\ОсновнаяОФ\Ext\Form.bin" - И В каталоге "src" репозитория "Репозиторий1" есть файл "erf\DemoОтчет\DemoОтчет\Forms\ОсновнаяУФ.xml" - И В каталоге "src" репозитория "Репозиторий1" есть файл "erf\DemoОтчет\DemoОтчет\Forms\ОсновнаяУФ\Ext\Form.xml" - И В каталоге "src" репозитория "Репозиторий1" есть файл "epf\DemoОбработка\DemoОбработка.xml" - И В каталоге "src" репозитория "Репозиторий1" есть файл "epf\DemoОбработка\DemoОбработка\Forms\ОсновнаяОФ.xml" - И В каталоге "src" репозитория "Репозиторий1" есть файл "epf\DemoОбработка\DemoОбработка\Forms\ОсновнаяОФ\Ext\Form.bin" - И В каталоге "src" репозитория "Репозиторий1" есть файл "epf\DemoОбработка\DemoОбработка\Forms\ОсновнаяУФ.xml" - И В каталоге "src" репозитория "Репозиторий1" есть файл "epf\DemoОбработка\DemoОбработка\Forms\ОсновнаяУФ\Ext\Form.xml" - И В каталоге "src" репозитория "Репозиторий1" есть файл "epf\DemoОбработка\DemoОбработка\Forms\ОсновнаяОФ\Ext\Form\Module.bsl" - И В каталоге "src" репозитория "Репозиторий1" есть файл "epf\DemoОбработка\DemoОбработка\Forms\ОсновнаяОФ\Ext\Form\form" - И В каталоге "src" репозитория "Репозиторий1" есть файл "cfe\DemoРасширение\ConfigDumpInfo.xml" - И В каталоге "src" репозитория "Репозиторий1" есть файл "cfe\DemoРасширение\Configuration.xml" - И В каталоге "src" репозитория "Репозиторий1" есть файл "cfe\DemoРасширение\CommonModules\DemoРасш_Demo.xml" - И В каталоге "src" репозитория "Репозиторий1" есть файл "cfe\DemoРасширение\CommonModules\DemoРасш_Demo\Ext\Module.bsl" - И В каталоге "src" репозитория "Репозиторий1" есть файл "cfe\DemoРасширение\Subsystems\DemoРасш_Demo.xml" - И В каталоге "src" репозитория "Репозиторий1" есть файл "cfe\DemoРасширение\Languages\Русский.xml" +Сценарий: Разбор отчетов, обработок, конфигурации на исходники. + Когда Я копирую файл "fixtures/demo/DemoОбработка.epf" в каталог репозитория "РабочийКаталог" + И я копирую файл "fixtures/demo/DemoОтчет.erf" в каталог репозитория "РабочийКаталог" + И я копирую файл "fixtures/demo/DemoРасширение.cfe" в каталог репозитория "РабочийКаталог" + И я фиксирую изменения в репозитории "РабочийКаталог" с комментарием "demo коммит" + Тогда В каталоге "src" репозитория "РабочийКаталог" есть файл "erf\DemoОтчет\DemoОтчет\Forms\ОсновнаяОФ\Ext\Form\Module.bsl" + И В каталоге "src" репозитория "РабочийКаталог" есть файл "erf\DemoОтчет\DemoОтчет\Forms\ОсновнаяОФ\Ext\Form\form" + И В каталоге "src" репозитория "РабочийКаталог" есть файл "erf\DemoОтчет\DemoОтчет.xml" + И В каталоге "src" репозитория "РабочийКаталог" есть файл "erf\DemoОтчет\DemoОтчет\Templates\ОсновнаяСхемаКомпоновкиДанных.xml" + И В каталоге "src" репозитория "РабочийКаталог" есть файл "erf\DemoОтчет\DemoОтчет\Templates\ОсновнаяСхемаКомпоновкиДанных\Ext\Template.xml" + И В каталоге "src" репозитория "РабочийКаталог" есть файл "erf\DemoОтчет\DemoОтчет\Forms\ОсновнаяОФ.xml" + И В каталоге "src" репозитория "РабочийКаталог" есть файл "erf\DemoОтчет\DemoОтчет\Forms\ОсновнаяОФ\Ext\Form.bin" + И В каталоге "src" репозитория "РабочийКаталог" есть файл "erf\DemoОтчет\DemoОтчет\Forms\ОсновнаяУФ.xml" + И В каталоге "src" репозитория "РабочийКаталог" есть файл "erf\DemoОтчет\DemoОтчет\Forms\ОсновнаяУФ\Ext\Form.xml" + И В каталоге "src" репозитория "РабочийКаталог" есть файл "epf\DemoОбработка\DemoОбработка.xml" + И В каталоге "src" репозитория "РабочийКаталог" есть файл "epf\DemoОбработка\DemoОбработка\Forms\ОсновнаяОФ.xml" + И В каталоге "src" репозитория "РабочийКаталог" есть файл "epf\DemoОбработка\DemoОбработка\Forms\ОсновнаяОФ\Ext\Form.bin" + И В каталоге "src" репозитория "РабочийКаталог" есть файл "epf\DemoОбработка\DemoОбработка\Forms\ОсновнаяУФ.xml" + И В каталоге "src" репозитория "РабочийКаталог" есть файл "epf\DemoОбработка\DemoОбработка\Forms\ОсновнаяУФ\Ext\Form.xml" + И В каталоге "src" репозитория "РабочийКаталог" есть файл "epf\DemoОбработка\DemoОбработка\Forms\ОсновнаяОФ\Ext\Form\Module.bsl" + И В каталоге "src" репозитория "РабочийКаталог" есть файл "epf\DemoОбработка\DemoОбработка\Forms\ОсновнаяОФ\Ext\Form\form" + И В каталоге "src" репозитория "РабочийКаталог" есть файл "cfe\DemoРасширение\ConfigDumpInfo.xml" + И В каталоге "src" репозитория "РабочийКаталог" есть файл "cfe\DemoРасширение\Configuration.xml" + И В каталоге "src" репозитория "РабочийКаталог" есть файл "cfe\DemoРасширение\CommonModules\DemoРасш_Demo.xml" + И В каталоге "src" репозитория "РабочийКаталог" есть файл "cfe\DemoРасширение\CommonModules\DemoРасш_Demo\Ext\Module.bsl" + И В каталоге "src" репозитория "РабочийКаталог" есть файл "cfe\DemoРасширение\Subsystems\DemoРасш_Demo.xml" + И В каталоге "src" репозитория "РабочийКаталог" есть файл "cfe\DemoРасширение\Languages\Русский.xml" + +Сценарий: Успешный коммит в репозиторий + Когда Я копирую файл "fixtures\ПроверкаДублейПроцедурПоложительныйТест.bsl" в каталог репозитория "РабочийКаталог" + И Я очищаю параметры команды "git" в контексте + И Я установил рабочий каталог как текущий каталог + И Я выполняю команду "git" с параметрами "add --all" + И Я выполняю команду "git" с параметрами "commit -m addProcedure" + Тогда Вывод команды "git" не содержит "обнаружены неуникальные имена методов" + +Сценарий: Прекоммит заблокировал коммит в репозиторий + Когда Я копирую файл "fixtures\ПроверкаДублейПроцедурНегативныйТест.bsl" в каталог репозитория "РабочийКаталог" + И Я очищаю параметры команды "git" в контексте + И Я установил рабочий каталог как текущий каталог + И Я выполняю команду "git" с параметрами "add --all" + И Я выполняю команду "git" с параметрами "commit -m addProcedure" + Тогда Вывод команды "git" содержит "обнаружены неуникальные имена методов" \ No newline at end of file diff --git a/packagedef b/packagedef index 1ab85a6..3eb6fea 100644 --- a/packagedef +++ b/packagedef @@ -14,6 +14,7 @@ .ЗависитОт("v8unpack", "1.0.1") .ВключитьФайл("src") .ВключитьФайл("fixtures") + .ВключитьФайл("tests") .ВключитьФайл("features") .ВключитьФайл("tasks") .ВключитьФайл("v8config.json") diff --git a/tests/ПроверкаСцераниевОбработки.os b/tests/ПроверкаСцераниевОбработки.os new file mode 100644 index 0000000..6a7b38d --- /dev/null +++ b/tests/ПроверкаСцераниевОбработки.os @@ -0,0 +1,127 @@ +#Использовать asserts +#Использовать logos +#Использовать tempfiles + +Перем юТест; +Перем Лог; +Перем МенеджерВременныхФайлов; + +// Основная точка входа +Функция ПолучитьСписокТестов(ЮнитТестирование) Экспорт + + юТест = ЮнитТестирование; + + ВсеТесты = Новый Массив; + + ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийПроверкиДублейПроцедурВызываетИсключение"); + ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийПроверкиДублейПроцедурОбработетФайл"); + ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийПроверкиДублейПроцедурНеОбработетНесуществующийФайл"); + ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийПроверкиДублейПроцедурНеОбработетНеИсходник"); + + Возврат ВсеТесты; + +КонецФункции + +Процедура ПередЗапускомТеста() Экспорт + + ВремТестер = Новый Тестер; + Лог = Логирование.ПолучитьЛог(ВремТестер.ИмяЛога()); + + ВключитьПоказОтладки(); + + МенеджерВременныхФайлов = Новый МенеджерВременныхФайлов; + +КонецПроцедуры + +Процедура ПослеЗапускаТеста() Экспорт + + МенеджерВременныхФайлов.Удалить(); + МенеджерВременныхФайлов = Неопределено; + +КонецПроцедуры + +Процедура ТестДолжен_ПроверитьЧтоСценарийПроверкиДублейПроцедурВызываетИсключение() Экспорт + + ОбъектСценария = ПолучитьСценарийОбработкиПроверкаДублейПроцедурИФункций(); + Файл = Новый Файл(ОбъединитьПути(КаталогТестовыхФикстур(), "ПроверкаДублейПроцедурНегативныйТест.bsl")); + + ТестДолжен_ПроверитьЧтоВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, "обнаружены неуникальные имена методов"); + +КонецПроцедуры + +Процедура ТестДолжен_ПроверитьЧтоВызываетсяИсключениеСТекстом(ОбъектСценария, Файл, ТекстИсключения) Экспорт + + ДополнительныеНастройки = ПолучитьДополнительныеНастройки(); + ПараметрыМетода = Новый Массив; + + ПараметрыМетода.Добавить(Файл); + ПараметрыМетода.Добавить(Файл.Путь); + ПараметрыМетода.Добавить(ДополнительныеНастройки); + + Ожидаем.Что(ОбъектСценария).Метод("ОбработатьФайл", ПараметрыМетода).ВыбрасываетИсключение(ТекстИсключения); + +КонецПроцедуры + +Процедура ТестДолжен_ПроверитьЧтоСценарийПроверкиДублейПроцедурОбработетФайл() Экспорт + + Файл = Новый Файл(ОбъединитьПути(КаталогТестовыхФикстур(), "ПроверкаДублейПроцедурПоложительныйТест.bsl")); + ОбъектСценария = ПолучитьСценарийОбработкиПроверкаДублейПроцедурИФункций(); + Результат = ОбъектСценария.ОбработатьФайл(Файл, Файл.Путь, ПолучитьДополнительныеНастройки()); + + Ожидаем.Что(Результат, Истина).ЭтоИстина(); + +КонецПроцедуры + +Процедура ТестДолжен_ПроверитьЧтоСценарийПроверкиДублейПроцедурНеОбработетНесуществующийФайл() Экспорт + + Файл = Новый Файл(ПолучитьИмяВременногоФайла("bsl")); + ОбъектСценария = ПолучитьСценарийОбработкиПроверкаДублейПроцедурИФункций(); + Результат = ОбъектСценария.ОбработатьФайл(Файл, Файл.Путь, ПолучитьДополнительныеНастройки()); + + Ожидаем.Что(Результат, Истина).ЭтоЛожь(); + +КонецПроцедуры + +Процедура ТестДолжен_ПроверитьЧтоСценарийПроверкиДублейПроцедурНеОбработетНеИсходник() Экспорт + + Файл = Новый Файл(МенеджерВременныхФайлов.СоздатьФайл("xml")); + ОбъектСценария = ПолучитьСценарийОбработкиПроверкаДублейПроцедурИФункций(); + Результат = ОбъектСценария.ОбработатьФайл(Файл, Файл.Путь, ПолучитьДополнительныеНастройки()); + + Ожидаем.Что(Результат, Истина).ЭтоЛожь(); + +КонецПроцедуры + +Функция ПолучитьСценарийОбработкиПроверкаДублейПроцедурИФункций() + + Сценарий = ОбъединитьПути(КаталогИсходников(), "src", "СценарииОбработки", "ПроверкаДублейПроцедурИФункций.os"); + ОбъектСценария = ЗагрузитьСценарий(Сценарий); + + Возврат ОбъектСценария; +КонецФункции + +Процедура ВключитьПоказОтладки() + Лог.УстановитьУровень(УровниЛога.Отладка); +КонецПроцедуры + +Процедура ВыключитьПоказОтладки() + Лог.УстановитьУровень(УровниЛога.Информация); +КонецПроцедуры + +Функция КаталогТестовыхФикстур() + Возврат ОбъединитьПути(КаталогИсходников(), "fixtures"); +КонецФункции + +Функция КаталогИсходников() + Возврат ОбъединитьПути(ТекущийСценарий().Каталог, ".."); +КонецФункции + +Функция ПолучитьДополнительныеНастройки() + + УправлениеНастройками = Новый НастройкиРепозитория(ТекущийКаталог()); + ДополнительныеНастройки = Новый Структура("Лог, УправлениеНастройками", Лог, УправлениеНастройками); + Лог = Лог; + + Возврат ДополнительныеНастройки; + +КонецФункции diff --git a/v8config.json b/v8config.json index 80b6bcf..3d15b2d 100644 --- a/v8config.json +++ b/v8config.json @@ -6,6 +6,7 @@ "ДобавлениеПробеловПередКлючевымиСловами.os", "ЗапретИспользованияПерейти.os", "КорректировкаXMLФорм.os", + "ПроверкаДублейПроцедурИФункций.os", "ПроверкаКорректностиОбластей.os", "РазборОбычныхФормНаИсходники.os", "РазборОтчетовОбработокРасширений.os",