Skip to content

Commit aa4dcae

Browse files
committed
Добавлена версия продукта (1.1) #17
1 parent 494ddc0 commit aa4dcae

File tree

4 files changed

+157
-1
lines changed

4 files changed

+157
-1
lines changed

features/step_definitions/gitsync-init.os

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@
126126
ТекстФайла = "";
127127
КодВозврата = ВыполнитьПроцесс(СтрокаКоманды, ТекстФайла);
128128

129-
БДД.СохранитьВКонтекст("ТекстЛогФайлаГитсинк", ТекстФайла);
129+
БДД.СохранитьВКонтекст("ТекстЛогФайлаПродукта", ТекстФайла);
130130

131131
Если КодВозврата <> ОжидаемыйКодВозврата Тогда
132132
ВывестиТекст(ТекстФайла);

features/step_definitions/version.os

Lines changed: 124 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,124 @@
1+
// Реализация шагов BDD-фич/сценариев c помощью фреймворка https://github.com/artbear/1bdd
2+
#Использовать asserts
3+
#Использовать tempfiles
4+
5+
Перем БДД; //контекст фреймворка 1bdd
6+
7+
Перем Лог;
8+
9+
// Метод выдает список шагов, реализованных в данном файле-шагов
10+
Функция ПолучитьСписокШагов(КонтекстФреймворкаBDD) Экспорт
11+
БДД = КонтекстФреймворкаBDD;
12+
13+
ВсеШаги = Новый Массив;
14+
15+
ВсеШаги.Добавить("ВЛог_ФайлеЗапускаПродуктаЕстьСтрока");
16+
ВсеШаги.Добавить("ВЛог_ФайлеЗапускаПродуктаОтсутствуетСтрока");
17+
ВсеШаги.Добавить("ВФайлеЕстьСтрока");
18+
19+
Возврат ВсеШаги;
20+
КонецФункции
21+
22+
23+
// Реализация шагов
24+
25+
// TODO дубль метода ВЛог_ФайлеЗапускаПродуктаЕстьСтрока с методом в 1bdd
26+
// TODO дубль метода ВЛог_ФайлеЗапускаПродуктаОтсутствуетСтрока с методом в 1bdd
27+
// TODO дубль метода ВФайлеЕстьСтрока с методом в 1bdd
28+
//
29+
Функция ИмяЛога() Экспорт
30+
Возврат "bdd.gitsync.feature";
31+
КонецФункции
32+
33+
//в лог-файле запуска продукта есть строка "ЯЗапускаюПадающийШагСПараметром-Первый падающий шаг"
34+
Процедура ВЛог_ФайлеЗапускаПродуктаЕстьСтрока(Знач ПроверяемаяСтрока) Экспорт
35+
ТекстЛогФайла = БДД.ПолучитьИзКонтекста("ТекстЛогФайлаПродукта");
36+
Если СтрЧислоСтрок(ПроверяемаяСтрока) = 1 Тогда
37+
Ожидаем.Что(ТекстЛогФайла).Содержит(ПроверяемаяСтрока);
38+
Иначе
39+
ПроверитьЧтоМногострочнаяСтрокаСодержитПодстрокуБезУчетаНачальныхКонечныхПробеловВПодстроках(ТекстЛогФайла, ПроверяемаяСтрока);
40+
КонецЕсли;
41+
КонецПроцедуры
42+
43+
//в файле "clean.log" есть строка "ыва"
44+
Процедура ВФайлеЕстьСтрока(Знач ПутьФайла, Знач ПроверяемаяСтрока) Экспорт
45+
Файл = Новый Файл(ОбъединитьПути(ТекущийКаталог(), ПутьФайла));
46+
ЕстьПодстрока(ПрочитатьТекстФайла(Файл), ПроверяемаяСтрока);
47+
КонецПроцедуры
48+
49+
Функция ПрочитатьТекстФайла(Знач Файл)
50+
ЧтениеТекста = Новый ЧтениеТекста;
51+
ЧтениеТекста.Открыть(Файл.ПолноеИмя,"UTF-8");
52+
53+
Строка = ЧтениеТекста.Прочитать();
54+
ЧтениеТекста.Закрыть();
55+
Возврат Строка;
56+
КонецФункции // ПрочитатьТекстФайла()
57+
58+
Процедура ЕстьПодстрока(Знач Строка, Знач ПроверяемаяСтрока)
59+
Если СтрЧислоСтрок(ПроверяемаяСтрока) = 1 Тогда
60+
Ожидаем.Что(Строка, "Проверяем одиночную строку").Содержит(ПроверяемаяСтрока);
61+
Иначе
62+
ПроверитьЧтоМногострочнаяСтрокаСодержитПодстрокуБезУчетаНачальныхКонечныхПробеловВПодстроках(Строка, ПроверяемаяСтрока);
63+
КонецЕсли;
64+
КонецПроцедуры
65+
66+
//TODO перенести в ассерты oscript-library
67+
Процедура ПроверитьЧтоМногострочнаяСтрокаСодержитПодстрокуБезУчетаНачальныхКонечныхПробеловВПодстроках(Знач Строка, Знач Подстрока, ДопСообщениеОшибки = "")
68+
СообщениеОшибки = "";
69+
Нашли = МногострочнаяСтрокаСодержитПодстрокуБезУчетаНачальныхКонечныхПробеловВПодстроках(Строка, Подстрока, СообщениеОшибки);
70+
Если Не Нашли Тогда
71+
ВызватьИсключение СтрШаблон("Ожидали, что в строке <
72+
|%1
73+
|>
74+
|найдем подстроку<
75+
|%2
76+
|>
77+
|А это не так.
78+
|Уточнение: %3.
79+
|%4", Строка, Подстрока, СообщениеОшибки, ДопСообщениеОшибки);
80+
КонецЕсли;
81+
КонецПроцедуры
82+
83+
Функция МногострочнаяСтрокаСодержитПодстрокуБезУчетаНачальныхКонечныхПробеловВПодстроках(Знач Строка, Знач Подстрока, СообщениеОшибки = "")
84+
ПерваяСтрока = СокрЛП(СтрПолучитьСтроку(Подстрока, 1));
85+
НашлиПервуюСтроку = Ложь;
86+
Для Счетчик = 1 По СтрЧислоСтрок(Строка) Цикл
87+
ОчереднаяСтрока = СокрЛП(СтрПолучитьСтроку(Строка, Счетчик));
88+
НашлиПервуюСтроку = Найти(ОчереднаяСтрока, ПерваяСтрока) <> 0;
89+
Если НашлиПервуюСтроку Тогда
90+
Прервать;
91+
КонецЕсли;
92+
КонецЦикла;
93+
Если Не НашлиПервуюСтроку Тогда
94+
СообщениеОшибки = СтрШаблон("Не нашли первую же подстроку <%1>", ПерваяСтрока);
95+
Возврат Ложь;
96+
КонецЕсли;
97+
98+
СчетчикЧтоИщем = 2;
99+
Для Счетчик = Счетчик+1 По СтрЧислоСтрок(Строка) Цикл
100+
ОчереднаяСтрока = СокрЛП(СтрПолучитьСтроку(Строка, Счетчик));
101+
ЧтоИщем = СокрЛП(СтрПолучитьСтроку(Подстрока, СчетчикЧтоИщем));
102+
Поз = Найти(ОчереднаяСтрока, ЧтоИщем);
103+
Если Поз = 0 Тогда
104+
СообщениеОшибки = СтрШаблон("Не нашли подстроку № %1 <%2>", СчетчикЧтоИщем, ЧтоИщем);
105+
Возврат Ложь;
106+
Иначе
107+
СчетчикЧтоИщем = СчетчикЧтоИщем + 1;
108+
Если СчетчикЧтоИщем > СтрЧислоСтрок(Подстрока) Тогда
109+
Возврат Истина;
110+
КонецЕсли;
111+
КонецЕсли;
112+
КонецЦикла;
113+
Возврат СчетчикЧтоИщем > СтрЧислоСтрок(Подстрока);
114+
КонецФункции
115+
116+
//в лог-файле запуска продукта отсутствует строка "ДоЭтогоШагаВыполнениеДойтиНеДолжно"
117+
Процедура ВЛог_ФайлеЗапускаПродуктаОтсутствуетСтрока(Знач ПроверяемаяСтрока) Экспорт
118+
ТекстЛогФайла = БДД.ПолучитьИзКонтекста("ТекстЛогФайлаПродукта");
119+
Ожидаем.Что(ТекстЛогФайла).ЭтоНе().Содержит(ПроверяемаяСтрока);
120+
КонецПроцедуры
121+
122+
Лог = Логирование.ПолучитьЛог(ИмяЛога());
123+
//Лог.УстановитьУровень(Логирование.ПолучитьЛог("bdd").Уровень());
124+
// Лог.УстановитьУровень(УровниЛога.Отладка);

features/version.feature

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# language: ru
2+
3+
Функционал: Инициализация каталога исходников конфигурации
4+
Как Пользователь
5+
Я хочу получать версию продукта gitsync
6+
Чтобы понимать актуальность продукта
7+
8+
Контекст: Тестовый каталог
9+
Когда очищаю параметры гитсинк в контексте
10+
11+
Сценарий: Получение версии продукта
12+
Когда я выполняю команду gitsync "-version"
13+
Тогда в лог-файле запуска продукта есть строка "."
14+

src/gitsync.os

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@
1212

1313
///////////////////////////////////////////////////////////////////
1414
// Прикладные процедуры и функции
15+
Функция Версия() Экспорт
16+
Возврат "1.1";
17+
КонецФункции
1518

1619
Функция РазобратьАргументыКоманднойСтроки()
1720

@@ -37,6 +40,7 @@
3740
ДобавитьКомандуSetVersion(Парсер);
3841
ДобавитьКомандуHelp(Парсер);
3942
ДобавитьКомандуExport(Парсер);
43+
ДобавитьКомандуПоказаВерсииПродукта(Парсер);
4044
ДобавитьАргументыПоУмолчанию(Парсер);
4145

4246
Возврат Парсер;
@@ -128,6 +132,14 @@
128132

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

135+
Процедура ДобавитьКомандуПоказаВерсииПродукта(Знач Парсер)
136+
137+
Команда = Парсер.ОписаниеКоманды("-version", "Показать версию продукта");
138+
139+
Парсер.ДобавитьКоманду(Команда);
140+
141+
КонецПроцедуры
142+
131143
Процедура ДобавитьАргументыПоУмолчанию(Знач Парсер)
132144

133145
Парсер.ДобавитьПараметр("ПутьКХранилищу", "Файловый путь к каталогу хранилища конфигурации 1С.");
@@ -189,6 +201,8 @@
189201
УстановитьНовуюВерсию(Параметры);
190202
ИначеЕсли ОписаниеКоманды.Команда = "export" Тогда
191203
ВыполнитьКомандуЭкспортИсходников(Параметры);
204+
ИначеЕсли ОписаниеКоманды.Команда = "-version" Тогда
205+
ПоказатьВерсиюПродукта();
192206
Иначе
193207
ВызватьИсключение "Неизвестная команда: " + ОписаниеКоманды.Команда;
194208
КонецЕсли;
@@ -571,6 +585,10 @@
571585

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

588+
Процедура ПоказатьВерсиюПродукта()
589+
Сообщить(Версия());
590+
КонецПроцедуры
591+
574592
Процедура ЗавершитьСкрипт(Знач КодВозврата)
575593
ИмяСтартовогоСкрипта = Новый Файл(СтартовыйСценарий().Источник).Имя;
576594
ИмяТекущегоСкрипта = Новый Файл(ТекущийСценарий().Источник).Имя;

0 commit comments

Comments
 (0)