You've already forked snippet-transform
mirror of
https://github.com/bia-technologies/snippet-transform.git
synced 2025-07-04 20:28:44 +02:00
ONECICD-19 Первая версия
This commit is contained in:
committed by
Maxmov Valery
parent
f99f0558b2
commit
e5d06afe0e
14
tests/fixtures/snippets/ШаблонEDT.xml
vendored
Normal file
14
tests/fixtures/snippets/ШаблонEDT.xml
vendored
Normal file
@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<templates>
|
||||
<template autoinsert="true" context="com._1c.g5.v8.dt.bsl.Bsl.AddHandlerStatement" deleted="false" description="DEPRECATED" enabled="true" name="ЗапретитьИспользование">#Если НЕ ВебКлиент Тогда
|
||||
Выполнить(СервисныйОбщегоНазначенияПовтИсп.ЗапретитьИспользованиеФункционала(
|
||||
"${ЗапрещенныйФункционалМетод}", // Запрещенный функционал, метод
|
||||
"${ФункционалДляЗаменыНеобязательно}", // Функционал для замены
|
||||
"${КомментарийПояснениеНеобязательно}", // Комментарий / пояснение
|
||||
${ДатаЗапретаВТестовойНеобязательноВидДатаГГГГММДД}, // Дата запрета в тестовой
|
||||
${ДатаЗапретаВРабочейНеобязательноВидДатаГГГГММДД}) // Дата запрета в рабочей
|
||||
);
|
||||
#КонецЕсли </template>
|
||||
<template autoinsert="true" context="com._1c.g5.v8.dt.bsl.Bsl.AddHandlerStatement" deleted="false" description="Инкремент" enabled="true" name="++">${Операнд} = ${Операнд} + 1;</template>
|
||||
<template autoinsert="true" context="com._1c.g5.v8.dt.bsl.Bsl.AddHandlerStatement" deleted="false" description="ТекущаяДата" enabled="true" name="ТекущаяДата">ТекущаяДата = '${n1:date(dd.MM.yyyy)}';</template>
|
||||
</templates>
|
85
tests/fixtures/snippets/ШаблонКонфигуратора.st
vendored
Normal file
85
tests/fixtures/snippets/ШаблонКонфигуратора.st
vendored
Normal file
@ -0,0 +1,85 @@
|
||||
{1,
|
||||
{3,
|
||||
{"Тест",1,0,"",""},
|
||||
{0,
|
||||
{"Общий модуль",0,0,"Модуль[Общий]","//⇗ ⇘ ⇙ ⇚ ⇛ ⇜ ⇝ ⇞ ⇟ ⇠ ⇡ ⇢ ⇣ ⇤ ⇥ ⇦ ⇧ ⇨ ⇩ ⇪ ⇫ ⇬ ⇭ ⇮ ⇯ ⇰ ⇱ ⇲ ⇳ ⇴ ⇵ ⇶ ⇷ ⇸ ⇹ ⇺ //
|
||||
//
|
||||
// © ООО ""Моя компания"" (My company). 1234-5678.
|
||||
// Все права защищены.
|
||||
//
|
||||
// Все торговые марки являются собственностью их правообладателей.
|
||||
//
|
||||
// Настоящий результат интеллектуальной деятельности является собственностью
|
||||
// ООО ""Моя компания"" (UID 337c95d2-d846-4822-8cb4-79abc804dd95), и только
|
||||
// ее, а не кого-то иного.
|
||||
//
|
||||
// Любые действия (бездействие, наплевательского отношение, порча имущества),
|
||||
// направленные на использование (неиспользование, отрицание) настоящего
|
||||
// результата интеллектуальной (и не очень) деятельности, включая
|
||||
// (но не ограничиваясь) изучение, исследование, курение, медитацию, поиск кошек
|
||||
// в темной комнате, испытание его функционирования; воспроизводство
|
||||
// и преобразование объектного кода в исходный текст (это так юридически
|
||||
// зовется декомпилирование); смотрение и использование; еще какой-то бред;
|
||||
// результата интеллектуальной деятельности с иным программным обеспечением,
|
||||
// возможны только с предварительного согласия правообладателя (побожиться).
|
||||
//
|
||||
// Нарушение прав ООО ""Моя компания"" на данный результат интеллектуальной
|
||||
// деятельности будет преследоваться и пресекаться правообладателем
|
||||
// в соответствии с законом, а если не получится, то караться в соответствии с
|
||||
// моральными принципами и устоями конкретного безумца.
|
||||
//
|
||||
//ℋ ℌ ℍ ℎ ℏ ℐ ℑ ℒ ℓ ℔ ℕ № ℗ ℘ ℙ ℚ ℛ ℜ ℝ ℞ ℟ ℠ ℡ ™ ℣ ℤ ℥ Ω ℧ ℨ ℩ K Å ℬ ℭ ℮ ℯ ℰ ℱ//
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// <?""Заголовок модуля: краткое описание и условия применения модуля.>"">
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// Экспортные процедуры и функции, предназначенные для использования другими
|
||||
// объектами конфигурации или другими программами
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#Область ПрограммныйИнтерфейс
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// Экспортные процедуры и функции для служебного использования внутри подсистемы
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#Область СлужебныйПрограммныйИнтерфейс
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// Процедуры и функции, составляющие внутреннюю реализацию модуля
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
#КонецОбласти
|
||||
"}
|
||||
},
|
||||
{2,
|
||||
{"Группа",1,0,"",""},
|
||||
{0,
|
||||
{"DEPRECATED",0,0,"Запре[титьИспользование]","#Если НЕ ВебКлиент Тогда
|
||||
Выполнить(СервисныйОбщегоНазначенияПовтИсп.ЗапретитьИспользованиеФункционала(
|
||||
""<?""Запрещенный функционал, метод"">"", // Запрещенный функционал, метод
|
||||
""<?""Функционал для замены (необязательно)"">"", // Функционал для замены
|
||||
""<?""Комментарий / пояснение (необязательно)"">"", // Комментарий / пояснение
|
||||
<?""Дата запрета в тестовой (необязательно, вид Дата(ГГГГ, ММ, ДД))"">, // Дата запрета в тестовой
|
||||
<?""Дата запрета в рабочей (необязательно, вид Дата(ГГГГ, ММ, ДД))"">) // Дата запрета в рабочей
|
||||
);
|
||||
#КонецЕсли "}
|
||||
},
|
||||
{0,
|
||||
{"Инкремент",0,0,"++","<?""Операнд""> = <?""Операнд""> + 1;"}
|
||||
}
|
||||
},
|
||||
{0,
|
||||
{"Пустая группа",1,0,"",""}
|
||||
}
|
||||
}
|
||||
}
|
18
tests/fixtures/snippets/ШаблонКонфигуратораСНеподдерживаемымиТипами.st
vendored
Normal file
18
tests/fixtures/snippets/ШаблонКонфигуратораСНеподдерживаемымиТипами.st
vendored
Normal file
@ -0,0 +1,18 @@
|
||||
{1,
|
||||
{3,
|
||||
{"ЧастичноПоддерживаемыйФункционал",1,0,"",""},
|
||||
{0,
|
||||
{"#Если",0,0,"№Ес[ли]","#Если <?"""", ВыборВарианта, ""Клиент"", ""Клиент"", ""Сервер"", ""Сервер"", ""ВнешнееСоединение"", ""ВнешнееСоединение"" ,""ТолстыйКлиентОбычноеПриложение"", ""ТолстыйКлиентОбычноеПриложение"", ""ТолстыйКлиентУправляемоеПриложение"",""ТолстыйКлиентУправляемоеПриложение"", ""ТонкийКлиент"", ""ТонкийКлиент"", ""ВебКлиент"", ""ВебКлиент""> Тогда
|
||||
|
||||
<?>
|
||||
|
||||
#КонецЕсли"}
|
||||
},
|
||||
{0,
|
||||
{"Формат",0,0,"Формат","Формат(<?>, ""<?, ФорматнаяСтрока>"")"}
|
||||
},
|
||||
{0,
|
||||
{"УстановитьЗначениеКонстанты",0,0,"УстановитьЗнач[ениеКонстанты]","ОбщегоНазначенияСервер.УстановитьЗначениеКонстанты(""<?""Выберите константу"", Константа>"", <?>);"}
|
||||
}
|
||||
}
|
||||
}
|
133
tests/ТестированиеОбработкаШаблоновКонфигуратора.os
Normal file
133
tests/ТестированиеОбработкаШаблоновКонфигуратора.os
Normal file
@ -0,0 +1,133 @@
|
||||
///////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Тестирование основной функциональности пакета
|
||||
// Проверка на соответствие выгрузки эталону
|
||||
//
|
||||
// (с) BIA Technologies, LLC
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////
|
||||
|
||||
#Использовать asserts
|
||||
#Использовать tempfiles
|
||||
#Использовать ".."
|
||||
|
||||
///////////////////////////////////////////////////////////////////
|
||||
|
||||
Перем МенеджерВременныхФайлов;
|
||||
|
||||
///////////////////////////////////////////////////////////////////
|
||||
// Программный интерфейс
|
||||
///////////////////////////////////////////////////////////////////
|
||||
|
||||
Функция ПолучитьСписокТестов(Знач ЮнитТестирование) Экспорт
|
||||
|
||||
МассивТестов = Новый Массив;
|
||||
МассивТестов.Добавить("ТестПрочитатьШаблон");
|
||||
МассивТестов.Добавить("ТестЗаписатьШаблон");
|
||||
МассивТестов.Добавить("ТестПрочитатьИЗаписатьШаблон");
|
||||
|
||||
Возврат МассивТестов;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ПередЗапускомТеста() Экспорт
|
||||
|
||||
МенеджерВременныхФайлов = Новый МенеджерВременныхФайлов;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПослеЗапускаТеста() Экспорт
|
||||
|
||||
МенеджерВременныхФайлов.Удалить();
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
///////////////////////////////////////////////////////////////////
|
||||
// Шаги
|
||||
///////////////////////////////////////////////////////////////////
|
||||
|
||||
Процедура ТестПрочитатьШаблон() Экспорт
|
||||
|
||||
Шаблон = ШаблоныКонфигуратора.ПрочитатьШаблон(ОбъединитьПути(КаталогФикстур(), "snippets", "ШаблонКонфигуратора.st"));
|
||||
|
||||
Утверждения.ПроверитьРавенство(Шаблон.Элементы.Количество(), 3, "Количество элементов шаблона равно 3");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ТестЗаписатьШаблон() Экспорт
|
||||
|
||||
Шаблон = ШаблоныБазовый.КорневойЭлемент();
|
||||
|
||||
Группа = ШаблоныБазовый.Группа();
|
||||
Группа.Наименование = "Группа";
|
||||
Шаблон.Элементы.Добавить(Группа);
|
||||
|
||||
Элемент = ШаблоныБазовый.Элемент();
|
||||
Элемент.Наименование = "Сообщить";
|
||||
Элемент.ТекстЗамены = "Соо[бщить]";
|
||||
Элемент.Шаблон = "Сообщить();";
|
||||
Шаблон.Элементы.Добавить(Элемент);
|
||||
|
||||
Элемент = ШаблоныБазовый.Элемент();
|
||||
Элемент.Наименование = "Сообщить2";
|
||||
Элемент.ТекстЗамены = "Соо[бщить2]";
|
||||
Элемент.Шаблон = "Сообщить(2);";
|
||||
Группа.Элементы.Добавить(Элемент);
|
||||
|
||||
ИмяФайла = МенеджерВременныхФайлов.НовоеИмяФайла("st");
|
||||
ШаблоныКонфигуратора.ЗаписатьШаблон(Шаблон, ИмяФайла);
|
||||
|
||||
ТекстФайла = ПрочитатьФайл(ИмяФайла);
|
||||
|
||||
Эталон =
|
||||
"{1,
|
||||
|{2,
|
||||
|{""Корень"",1,0,"""",""""},
|
||||
|{1,
|
||||
|{""Группа"",1,0,"""",""""},
|
||||
|{0,
|
||||
|{""Сообщить2"",0,0,""Соо[бщить2]"",""Сообщить(2);""}
|
||||
|}
|
||||
|},
|
||||
|{0,
|
||||
|{""Сообщить"",0,0,""Соо[бщить]"",""Сообщить();""}
|
||||
|}
|
||||
|}
|
||||
|}";
|
||||
Утверждения.ПроверитьРавенство(ТекстФайла, Эталон, "Текст шаблона не соответствует ожидаемому");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ТестПрочитатьИЗаписатьШаблон() Экспорт
|
||||
|
||||
ИмяБазовогоШаблона = ОбъединитьПути(КаталогФикстур(), "snippets", "ШаблонКонфигуратора.st");
|
||||
ИмяНовогоШаблона = МенеджерВременныхФайлов.НовоеИмяФайла("st");
|
||||
|
||||
Шаблон = ШаблоныКонфигуратора.ПрочитатьШаблон(ИмяБазовогоШаблона);
|
||||
|
||||
ШаблоныКонфигуратора.ЗаписатьШаблон(Шаблон, ИмяНовогоШаблона);
|
||||
|
||||
Утверждения.ПроверитьРавенство(ПрочитатьФайл(ИмяБазовогоШаблона), ПрочитатьФайл(ИмяНовогоШаблона), "Текст шаблона не должен измениться");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
///////////////////////////////////////////////////////////////////
|
||||
// Служебный функционал
|
||||
///////////////////////////////////////////////////////////////////
|
||||
|
||||
Функция КаталогФикстур()
|
||||
|
||||
Возврат ОбъединитьПути(ТекущийСценарий().Каталог, "..", "tests", "fixtures");
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПрочитатьФайл(Файл)
|
||||
|
||||
Чтение = Новый ЧтениеТекста(Файл, КодировкаТекста.UTF8NoBOM);
|
||||
Текст = Чтение.Прочитать();
|
||||
Чтение.Закрыть();
|
||||
|
||||
Возврат Текст;
|
||||
|
||||
КонецФункции
|
||||
|
Reference in New Issue
Block a user