Skip to content

Commit

Permalink
Добавлены тесты для команды инициализации окружения
Browse files Browse the repository at this point in the history
  • Loading branch information
yukon39 committed Nov 5, 2023
1 parent 4e120d1 commit ed38adf
Show file tree
Hide file tree
Showing 5 changed files with 225 additions and 0 deletions.
Binary file added tests/fixtures/1Cv8.dt
Binary file not shown.
Binary file added tests/fixtures/1cv8.cf
Binary file not shown.
100 changes: 100 additions & 0 deletions tests/xunits/init-dev.os
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
#Использовать asserts
#Использовать tempfiles
#Использовать "utils"
#Использовать "..\.."

#Область ОписаниеПеременных

Перем НакопленныеВременныеФайлы;

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

#Область СлужебныйПрограммныйИнтерфейс

&Тест
Процедура ТестДолжен_СоздатьПустуюФайловуюБазуIbcmd() Экспорт

// Дано
Исполнитель = Новый Тест_ИсполнительКоманд("init-dev");
Исполнитель.ДобавитьФлаг("--ibcmd");

// Когда
Исполнитель.ВыполнитьКоманду();

// Тогда
Исполнитель.ОжидаемЧтоВыводСодержит("Используется ibcmd");
Исполнитель.ОжидаемЧтоВыводСодержит("Создана пустая база данных.");

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

&Тест
Процедура ТестДолжен_СоздатьФайловуюБазуИзИсходниковIbcmd() Экспорт

// Дано
Исполнитель = Новый Тест_ИсполнительКоманд("init-dev");
КаталогSrc = Исполнитель.ПутьТестовыхДанных("cf");
Исполнитель.ДобавитьПараметр("--src", КаталогSrc);
Исполнитель.ДобавитьФлаг("--ibcmd");

// Когда
Исполнитель.ВыполнитьКоманду();

// Тогда
Исполнитель.ОжидаемЧтоВыводСодержит("Используется ibcmd");
Исполнитель.ОжидаемЧтоВыводСодержит("Создана информационная база из исходников.");

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

&Тест
Процедура ТестДолжен_СоздатьФайловуюБазуИзФайлаВыгрузкиIbcmd() Экспорт

// Дано
Исполнитель = Новый Тест_ИсполнительКоманд("init-dev");
КаталогDt = Исполнитель.ПутьТестовыхДанных("1cv8.dt");
Исполнитель.ДобавитьПараметр("--dt", КаталогDt);
Исполнитель.ДобавитьФлаг("--ibcmd");

// Когда
Исполнитель.ВыполнитьКоманду();

// Тогда
Исполнитель.ОжидаемЧтоВыводСодержит("Используется ibcmd");
Исполнитель.ОжидаемЧтоВыводСодержит("Создана информационная база из файла выгрузки.");

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

&Тест
Процедура ТестДолжен_СоздатьФайловуюБазуИзФайлаКонфигурацииIbcmd() Экспорт

// Дано
Исполнитель = Новый Тест_ИсполнительКоманд("init-dev");
КаталогDt = Исполнитель.ПутьТестовыхДанных("1cv8.cf");
Исполнитель.ДобавитьПараметр("--cf", КаталогDt);
Исполнитель.ДобавитьФлаг("--ibcmd");

// Когда
Исполнитель.ВыполнитьКоманду();

// Тогда
Исполнитель.ОжидаемЧтоВыводСодержит("Используется ibcmd");
Исполнитель.ОжидаемЧтоВыводСодержит("Создана информационная база из файла конфигурации.");

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

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

#Область ОбработчикиСобытий

Процедура ПередЗапускомТеста() Экспорт

НакопленныеВременныеФайлы = ВременныеФайлы.Файлы();

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

Процедура ПослеЗапускаТеста() Экспорт

ВременныеФайлы.УдалитьНакопленныеВременныеФайлы(НакопленныеВременныеФайлы);

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

#КонецОбласти
38 changes: 38 additions & 0 deletions tests/xunits/utils/classes/Тест_ВыводЛога.os
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
#Использовать tempfiles

Перем ТекстовыйДокумент;

#Область ПрограммныйИнтерфейс

Функция ВыводЛога() Экспорт
Возврат ТекстовыйДокумент.ПолучитьТекст();
КонецФункции

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

#Область InterfaceImplementaion

Процедура ВывестиСобытие(Знач СобытиеЛога) Экспорт

Сообщение = СобытиеЛога.ПолучитьФорматированноеСообщение();
ТекстовыйДокумент.ДобавитьСтроку(Сообщение);

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

Процедура Закрыть() Экспорт
КонецПроцедуры

// Устанавливает свойство аппендера, заданное в конфигурационном файле
//
Процедура УстановитьСвойство(Знач ИмяСвойства, Знач Значение) Экспорт
КонецПроцедуры // УстановитьСвойство()

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

#Область ОбработчикиСобытий

Процедура ПриСозданииОбъекта()
ТекстовыйДокумент = Новый ТекстовыйДокумент();
КонецПроцедуры

#КонецОбласти
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
#Использовать "..\..\..\.."
#Использовать cmdline

#Область ОписаниеПеременных

Перем Команда;
Перем Аргументы;
Перем СпособВывода;
Перем КаталогКоманды;

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

#Область СлужебныйПрограммныйИнтерфейс

Процедура ДобавитьПараметр(ИмяПараметра, ЗначениеПараметра) Экспорт
Аргументы.Добавить(ИмяПараметра);
Аргументы.Добавить(ЗначениеПараметра);
КонецПроцедуры

Процедура ДобавитьФлаг(ИмяФлага) Экспорт
Аргументы.Добавить(ИмяФлага);
КонецПроцедуры

Процедура ВыполнитьКоманду() Экспорт

СистемнаяИнформация = Новый СистемнаяИнформация;
ПараметрыСистемы.ЭтоWindows = Найти(ВРег(СистемнаяИнформация.ВерсияОС), "WINDOWS") > 0;

ДобавитьПараметр("--root", КаталогКоманды);
ДобавитьФлаг("--nocacheuse");

МенеджерКомандПриложения.РегистраторКоманд(ПараметрыСистемы);

ДобавитьСпособВывода(МенеджерКомандПриложения);

Парсер = Новый ПарсерАргументовКоманднойСтроки();
МенеджерКомандПриложения.ЗарегистрироватьКоманды(Парсер);
ПараметрыКоманды = Парсер.Разобрать(Аргументы);
МенеджерКомандПриложения.ВыполнитьКоманду(Команда, ПараметрыКоманды.ЗначенияПараметров);

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

Функция ЛогКоманды() Экспорт
Возврат СпособВывода;
КонецФункции

Функция КаталогКоманды() Экспорт
Возврат КаталогКоманды;
КонецФункции

Функция ПутьТестовыхДанных(Путь1, Путь2 = Неопределено, Путь3 = Неопределено) Экспорт

КаталогШаблонов = ОбъединитьПути(ТекущийКаталог(), "tests", "fixtures");
Возврат ОбъединитьПути(КаталогШаблонов, Путь1, Путь2, Путь3);

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

Процедура ОжидаемЧтоВыводСодержит(Строка) Экспорт
Ожидаем.Что(СпособВывода.ВыводЛога()).Содержит(Строка);
КонецПроцедуры

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

#Область ОбработчикиСобытий

Процедура ПриСозданииОбъекта(КомандаПриложения)

Команда = КомандаПриложения;
Аргументы = Новый Массив;
Аргументы.Добавить(Команда);

КаталогКоманды = ВременныеФайлы.СоздатьКаталог();

СпособВывода = Новый Тест_ВыводЛога();

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

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

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

Процедура ДобавитьСпособВывода(МенеджерКомандПриложения)
Лог = МенеджерКомандПриложения.Лог();
Лог.ДобавитьСпособВывода(СпособВывода);
КонецПроцедуры

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

0 comments on commit ed38adf

Please sign in to comment.