Skip to content

Commit

Permalink
Merge branch 'release/1.11.0'
Browse files Browse the repository at this point in the history
  • Loading branch information
artbear committed Nov 30, 2020
2 parents 9224ca8 + c70ef89 commit 91101dc
Show file tree
Hide file tree
Showing 7 changed files with 132 additions and 28 deletions.
21 changes: 21 additions & 0 deletions features/core/step_definitions/ТаблицыДанных.os
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@
ВсеШаги.Добавить("УПереданнойТаблицыКолонки");
ВсеШаги.Добавить("УПереданнойТаблицыСтроки");
ВсеШаги.Добавить("УСтрокиТаблицыЗаданыЗначенияИ");
ВсеШаги.Добавить("ВТаблицеВЯчейкеЗначениеИмеетТип");
ВсеШаги.Добавить("ВТаблицеВЯчейкеУказаноЗначение");

Возврат ВсеШаги;
КонецФункции
Expand Down Expand Up @@ -59,3 +61,22 @@
Ожидаем.Что(СтрокаТаблицы[0], "СтрокаТаблицы[0]").Равно(ОжидаемоеЗначение0);
Ожидаем.Что(СтрокаТаблицы[1], "СтрокаТаблицы[1]").Равно(ОжидаемоеЗначение1);
КонецПроцедуры

//в таблице в ячейке "R:C" значение имеет тип "Дата"
Процедура ВТаблицеВЯчейкеЗначениеИмеетТип(Ячейка, ТипСтрокой) Экспорт
Ожидаем.Что(ЗначениеВЯчейкеТаблицы(Ячейка)).ИмеетТип(ТипСтрокой);
КонецПроцедуры

//в таблице в ячейке "R:C" указано значение 29.11.2020
Процедура ВТаблицеВЯчейкеУказаноЗначение(Ячейка, Значение) Экспорт
Ожидаем.Что(ЗначениеВЯчейкеТаблицы(Ячейка)).Равно(Значение);
КонецПроцедуры

// Вспомогательный метод
Функция ЗначениеВЯчейкеТаблицы(КоординатыЯчейки)
ТаблицаДанных = БДД.ПолучитьИзКонтекста("ТаблицаДанных");
Координаты = СтрРазделить(КоординатыЯчейки, ":");
НомерСтроки = Число(Координаты[0]);
НомерКолонки = Число(Координаты[1]);
Возврат ТаблицаДанных[НомерСтроки][НомерКолонки];
КонецФункции
21 changes: 20 additions & 1 deletion features/core/ПередачаПараметров.feature
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,11 @@
Когда я передаю параметр 5
Тогда я получаю параметр с типом "Число"

Сценарий: Параметр дробное число

Когда я передаю параметр 5,11
Тогда я получаю параметр с типом "Число"

Сценарий: Использование параметров Дата с годом из 4-х цифр
Когда я передаю параметр 11.02.2010
Тогда я получаю параметр с типом "Дата"
Expand All @@ -27,7 +32,7 @@

Сценарий: Использование параметров ЧислоВнутриСтроки

Когда я передаю параметр число2
Когда я передаю параметр "число2"
Тогда я получаю параметр с типом "Строка"

Сценарий: Использование многострочных строк
Expand Down Expand Up @@ -65,3 +70,17 @@
И я в втором параметре получаю значение "Строка1"
И я в первом параметре получаю значение с типом "Число"
И я в втором параметре получаю значение с типом "Строка"

Сценарий: Использование строки и числа внутри параметра

Когда я передаю параметр '"Мой командный файл.cmd" "789"'
Тогда я получаю параметр с типом "Строка"

# баг https://github.com/artbear/1bdd/issues/141
# Сценарий: Передачи строки с числом внутри и числа для шага

# Когда я передаю два параметра разных типов '"Мой командный файл.cmd" "789"' и 0
# Тогда я в первом параметре получаю значение '"Мой командный файл.cmd" "789"'
# И я в втором параметре получаю значение 0
# И я в первом параметре получаю значение с типом "Строка"
# И я в втором параметре получаю значение с типом "Число"
53 changes: 51 additions & 2 deletions features/core/ТаблицыДанных.feature
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

Функционал: Таблицы данных
Как Разработчик
Я Хочу чтобы можно было использовать различные форматы данных в фича-файлах
Я Хочу чтобы в ячейках таблицы данных автоматически распознавались различные типы значений

Сценарий: Проверяю передачу простой таблицы

Expand All @@ -13,4 +13,53 @@
И у переданной таблицы 2 колонки
И у переданной таблицы 2 строки
И у 0 строки таблицы заданы значения "Ячейка11" и "Ячейка12"
И у 1 строки таблицы заданы значения "Ячейка21" и "Ячейка22"
И у 1 строки таблицы заданы значения "Ячейка21" и "Ячейка22"

Сценарий: Разные типы в ячейках таблицы

Когда я передаю таблицу
| Ячейка11 | 11 |
| Ячейка11 | 01.01.2020 |
| Ячейка21 | 11,12 |
| Ячейка21 | 01.01.20 |
Тогда переданная таблица является типом "ТаблицаЗначений"
И у переданной таблицы 2 колонки
И у переданной таблицы 4 строки
И у 0 строки таблицы заданы значения "Ячейка11" и 11
И у 1 строки таблицы заданы значения "Ячейка11" и 01.01.2020
И у 2 строки таблицы заданы значения "Ячейка21" и 11,12
И у 3 строки таблицы заданы значения "Ячейка21" и 01.01.20

Сценарий: Дата в ячейке таблицы
Когда я передаю таблицу
| 29.11.2020 |

Тогда в таблице в ячейке "0:0" значение имеет тип "Дата"
И в таблице в ячейке "0:0" указано значение 29.11.2020


Сценарий: Числовое значение в ячейке
Когда я передаю таблицу
| 00000001 |
| 1234567890 |

Тогда в таблице в ячейке "0:0" значение имеет тип "Число"
И в таблице в ячейке "0:0" указано значение 1

Тогда в таблице в ячейке "1:0" значение имеет тип "Число"
И в таблице в ячейке "1:0" указано значение 1234567890


Сценарий: Строка с литералом даты в ячейке таблицы
Когда я передаю таблицу
| Строка с датой внутри: 21.11.2020 |

Тогда в таблице в ячейке "0:0" значение имеет тип "Строка"
и в таблице в ячейке "0:0" указано значение "Строка с датой внутри: 21.11.2020"

Сценарий: Строка с числовым литералом в ячейке таблицы
Когда я передаю таблицу
| Строка 1 |

Тогда в таблице в ячейке "0:0" значение имеет тип "Строка"
И в таблице в ячейке "0:0" указано значение "Строка 1"
14 changes: 11 additions & 3 deletions features/lib/step_definitions/ВыполнениеКоманд.os
Original file line number Diff line number Diff line change
Expand Up @@ -75,14 +75,22 @@

//я включаю отладку лога с именем "bdd"
Процедура ЯВключаюОтладкуЛогаСИменем(Знач ИмяЛога) Экспорт
НужныйЛог = Логирование.ПолучитьЛог(ИмяЛога);
НужныйЛог.УстановитьУровень(УровниЛога.Отладка);
УстановитьУровеньЛогаСИменем(ИмяЛога, УровниЛога.Отладка);
КонецПроцедуры

//я выключаю отладку лога с именем "bdd"
Процедура ЯВыключаюОтладкуЛогаСИменем(Знач ИмяЛога) Экспорт
УстановитьУровеньЛогаСИменем(ИмяЛога, УровниЛога.Информация);
КонецПроцедуры

Процедура УстановитьУровеньЛогаСИменем(Знач ИмяЛога, УровеньЛога)
НужныйЛог = Логирование.ПолучитьЛог(ИмяЛога);
НужныйЛог.УстановитьУровень(УровниЛога.Информация);
НужныйЛог.УстановитьУровень(УровеньЛога);
УровеньДляСреды = "INFO";
Если УровеньЛога = УровниЛога.Отладка Тогда
УровеньДляСреды = "DEBUG";
КонецЕсли;
УстановитьПеременнуюСреды("LOGOS_CONFIG", СтрШаблон("logger.%1=%2", ИмяЛога, УровеньДляСреды));
КонецПроцедуры

//Я выполняю команду "git"
Expand Down
12 changes: 5 additions & 7 deletions packagedef
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@

Описание.Имя("1bdd")
.Версия(Константы_1bdd.ВерсияПродукта)
.ВерсияСреды("1.0.16")
.ЗависитОт("logos", "1.2.1")
.ВерсияСреды("1.1.0")
.ЗависитОт("logos", "1.3.0")
.ЗависитОт("cmdline", "1.0.0")
.ЗависитОт("tempfiles", "0.2.2")
.ЗависитОт("tempfiles", "1.0.0")
.ЗависитОт("asserts", "1.3.0")
.ЗависитОт("1commands", "1.3.5")
.ЗависитОт("fs", "1.0.0")
.ЗависитОт("1commands", "1.5.0")
.ЗависитОт("fs", "1.1.0")
.ЗависитОт("strings", "0.4.1")
.ВключитьФайл("src")
.ВключитьФайл("tests")
Expand All @@ -18,7 +18,5 @@
.ВключитьФайл("readme.md")
.ВключитьФайл("LICENSE")
.ВключитьФайл("Jenkinsfile")
.ВключитьФайл("appveyor.yml")
.ВключитьФайл("appveyor-runtests.cmd")
.ВключитьФайл("lib.config")
.ИсполняемыйФайл("src/bdd.os", "1bdd");
37 changes: 23 additions & 14 deletions src/gherkin-read.os
Original file line number Diff line number Diff line change
Expand Up @@ -694,7 +694,7 @@
Начало = Группа.Индекс;

ОписаниеПараметра = ВозможныеКлючиПараметров.Строка;
ДобавитьПараметр(Параметры, ВозможныеКлючиПараметров.Строка, ЗначениеПараметра, Начало);
ДобавитьПараметр(Параметры, ВозможныеКлючиПараметров.Строка, ЗначениеПараметра, Начало, Группа.Длина);

НовоеТело = СтрШаблон("%1 %2", СтрПолучитьСтроку(Лев(НовоеТело, Начало), 1), ОписаниеПараметра);
Возврат НовоеТело;
Expand All @@ -716,11 +716,11 @@
ЭтоЧисловойПараметр = ЭтоЧисло(ЗначениеПараметра);
ОписаниеПараметра = ?(ЭтоЧисловойПараметр, ВозможныеКлючиПараметров.Число, ВозможныеКлючиПараметров.Строка);
Если ЭтоЧисловойПараметр Тогда
ЗначениеПараметра = Число(ЗначениеПараметра);
ЗначениеПараметра = Число(СтрЗаменить(ЗначениеПараметра, ",", "."));
КонецЕсли;

Начало = Группа.Индекс;
ДобавитьПараметр(Параметры, ОписаниеПараметра, ЗначениеПараметра, Начало);
ДобавитьПараметр(Параметры, ОписаниеПараметра, ЗначениеПараметра, Начало, Группа.Длина);

Окончание = Группа.Индекс + Группа.Длина;
НовоеТело = Лев(НовоеТело, Начало) + ОписаниеПараметра + Сред(НовоеТело, Окончание + 1);
Expand Down Expand Up @@ -754,7 +754,7 @@
ЗначениеПараметра = Дата(СтрокаДаты);

Начало = Группа.Индекс;
ДобавитьПараметр(Параметры, ОписаниеПараметра, ЗначениеПараметра, Начало);
ДобавитьПараметр(Параметры, ОписаниеПараметра, ЗначениеПараметра, Начало, Группа.Длина);

Окончание = Группа.Индекс + Группа.Длина;
НовоеТело = Лев(НовоеТело, Начало) + ОписаниеПараметра + Сред(НовоеТело, Окончание + 1);
Expand All @@ -781,7 +781,7 @@
ОписаниеПараметра = ВозможныеКлючиПараметров.ПараметрДляТаблицы;

Начало = Группа.Индекс;
ДобавитьПараметр(Параметры, ОписаниеПараметра, ЗначениеПараметра, Начало);
ДобавитьПараметр(Параметры, ОписаниеПараметра, ЗначениеПараметра, Начало, Группа.Длина);

Окончание = Группа.Индекс + Группа.Длина;
НовоеТело = Лев(НовоеТело, Начало) + ОписаниеПараметра + Сред(НовоеТело, Окончание + 1);
Expand All @@ -799,7 +799,7 @@
КонецЕсли;
Таблица = ПолучитьТаблицу(ТекстТаблицы);
ОписаниеПараметра = ВозможныеКлючиПараметров.Таблица;
Начало = 100000;// чтобы параметр-таблица всегда шел последним в списке параметров
Начало = 100000; // чтобы параметр-таблица всегда шел последним в списке параметров

ДобавитьПараметр(Параметры, ОписаниеПараметра, Таблица, Начало);

Expand All @@ -811,14 +811,16 @@
Рез.Колонки.Добавить("Тип");
Рез.Колонки.Добавить("Значение");
Рез.Колонки.Добавить("Начало");
Рез.Колонки.Добавить("Длина");
Возврат Рез;
КонецФункции // СоздатьТаблицуПараметров()

Функция ДобавитьПараметр(ТабПараметры, Знач Тип, Знач Значение, Знач Начало)
Функция ДобавитьПараметр(ТабПараметры, Знач Тип, Знач Значение, Знач Начало, Знач Длина = 0)
НоваяСтрока = ТабПараметры.Добавить();
НоваяСтрока.Тип = Тип;
НоваяСтрока.Значение = Значение;
НоваяСтрока.Начало = Начало;
НоваяСтрока.Длина = Длина;
Возврат НоваяСтрока;
КонецФункции

Expand Down Expand Up @@ -942,16 +944,22 @@
Процедура ЗаполнитьСтрокуТаблицы(Знач МассивЗначений, НоваяСтрока, Знач НомерСтроки)
Для к = 0 По МассивЗначений.Количество() - 1 Цикл
ЗначениеПараметра = МассивЗначений[к];
Лог.Отладка("номер строки %3, значение из колонки %1 (до подстановки в таблицу) <%2>",
к, ЗначениеПараметра, НомерСтроки - 1);

//пытаемся привести к одному значению, все значения, кроме строки. Например, число, дата
НайденныеПараметры = СоздатьТаблицуПараметров();
ВыделитьПростыеЗначенияНеСтроки(ЗначениеПараметра, НайденныеПараметры);
Если НайденныеПараметры.Количество() = 1 Тогда
ЗначениеПараметра = НайденныеПараметры[0].Значение;
Если НайденныеПараметры.Количество() = 1 Тогда
НайденныйПараметр = НайденныеПараметры[0];
НашлиПараметр = НайденныйПараметр.Начало = 0
И НайденныйПараметр.Длина = СтрДлина(ЗначениеПараметра);
Если НашлиПараметр Тогда
ЗначениеПараметра = НайденныйПараметр.Значение;
КонецЕсли;
КонецЕсли;

Лог.Отладка("номер строки %3, значение из колонки %1 (для подстановки из таблицы) <%2>",
к, ЗначениеПараметра, НомерСтроки - 1);
Лог.Отладка("значение для подстановки из таблицы <%1>", ЗначениеПараметра);
НоваяСтрока[к] = ЗначениеПараметра;
КонецЦикла;
КонецПроцедуры
Expand Down Expand Up @@ -1308,9 +1316,10 @@

Функция СоздатьРегулярныеВыражения()
Рез = Новый Структура;
Рез.Вставить("НеЧисло", Новый РегулярноеВыражение("[^\d]+"));
Рез.Вставить("Дата", Новый РегулярноеВыражение("(\d{2}).(\d{2}).(\d{2,4})"));
Рез.Вставить("ЧислоИлиСловоСЧислом", Новый РегулярноеВыражение("([а-яё\w]*\d+[а-яё\w]*)|(-?\d+(,\d)*)+")); //Когда я использую 5 как 5число5
Рез.Вставить("НеЧисло", Новый РегулярноеВыражение("[^\d,]+"));
// Даты вида 29.11.2020, 29-11-2020, 29/11/2020, 29.11.20, 29-11-20, 29/11/20,
Рез.Вставить("Дата", Новый РегулярноеВыражение("(\d{2})[\.\-\/](\d{2})[\.\-\/](\d{2,4})"));
Рез.Вставить("ЧислоИлиСловоСЧислом", Новый РегулярноеВыражение("(\d+(,\d+){0,1})|(-?\d+(,\d){0,1})+")); //Когда я использую 5 как 5число5
Рез.Вставить("МногострочныйТекст", Новый РегулярноеВыражение("\s*""""""\n\r*((.*\n\r*)+)\s*"""""""));
Рез.Вставить("ПараметрДляТаблицы", Новый РегулярноеВыражение("<([^>]+)>"));
Рез.Вставить("ПараметрТаблицы", Новый РегулярноеВыражение("\|\s*([^\|]+)\s*"));
Expand Down
2 changes: 1 addition & 1 deletion src/Модули/Константы_1bdd.os
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@

///////////////////////////////////////////////////////////////

ВерсияПродукта = "1.10.0";
ВерсияПродукта = "1.11.0";

0 comments on commit 91101dc

Please sign in to comment.