mirror of
https://github.com/bia-technologies/yaxunit.git
synced 2024-11-30 08:36:50 +02:00
parent
a675f37821
commit
7d40a50880
@ -161,7 +161,7 @@
|
||||
|
||||
Строки.Добавить(СтрСоединить(ВыбираемыеПоля, "," + Символы.ПС));
|
||||
Строки.Добавить("ИЗ " + ОписаниеЗапроса.ИмяТаблицы);
|
||||
|
||||
|
||||
Условия = СформироватьУсловия(ОписаниеЗапроса.Условия, ОписаниеЗапроса.ИмяТаблицы, Запрос);
|
||||
|
||||
Если Условия.Количество() Тогда
|
||||
@ -299,6 +299,8 @@
|
||||
Шаблон = "ТИПЗНАЧЕНИЯ(%1) = &%2";
|
||||
ИначеЕсли Выражение = ВыраженияПредикатов.Содержит Тогда
|
||||
Шаблон = "%1 ПОДОБНО ""%%"" + &%2 + ""%%""";
|
||||
ИначеЕсли Выражение = ВыраженияПредикатов.ВСписке Тогда
|
||||
Шаблон = "%1 В (&%2)";
|
||||
ИначеЕсли Выражение = ВыраженияПредикатов.Заполнено Тогда
|
||||
// TODO Реализовать
|
||||
ВызватьИсключение "Проверка заполненности пока не поддерживается";
|
||||
|
@ -41,6 +41,22 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Устанавливает имя свойства, все последующие проверки будут относится к нему.
|
||||
// Это алиас для см. Реквизит
|
||||
//
|
||||
// Параметры:
|
||||
// ИмяСвойства - Строка - Имя реквизита
|
||||
// - Число - Индекс коллекции
|
||||
// - Произвольный - Ключ соответствия
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ОбщийМодуль - Этот модуль для замыкания
|
||||
Функция Свойство(ИмяСвойства) Экспорт
|
||||
|
||||
Возврат Реквизит(ИмяСвойства);
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Добавляет предикат, проверяющий равенство объекта (свойства) указанному значению
|
||||
//
|
||||
// Параметры:
|
||||
@ -295,6 +311,21 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Добавляет условие, что проверяемое значение (или значение его свойства) входит в список значений
|
||||
//
|
||||
// Параметры:
|
||||
// Значения - Массив из Произвольный - Значения для проверки
|
||||
// - СписокЗначений из Произвольный - Значения для проверки
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ОбщийМодуль - Этот модуль для замыкания
|
||||
Функция ВСписке(Значения) Экспорт
|
||||
|
||||
ДобавитьПредикат(Выражения().ВСписке, Значения);
|
||||
Возврат ЮТПредикаты;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает набор сформированных утверждений.
|
||||
//
|
||||
// Рекомендуется использовать этот метод, если планируется отложенная проверка предикатов. Например, вы хотите сформировать два набору предикатов
|
||||
@ -358,6 +389,7 @@
|
||||
Выражения.Вставить("НеСодержит", "НеСодержит");
|
||||
Выражения.Вставить("СодержитСтрокуПоШаблону", "СодержитСтрокуПоШаблону");
|
||||
Выражения.Вставить("НеСодержитСтрокуПоШаблону", "НеСодержитСтрокуПоШаблону");
|
||||
Выражения.Вставить("ВСписке", "ВСписке");
|
||||
|
||||
Возврат Новый ФиксированнаяСтруктура(Выражения);
|
||||
|
||||
|
@ -142,6 +142,8 @@
|
||||
Шаблон = "содержит %1";
|
||||
ИначеЕсли Выражение = Выражения.СодержитСтрокуПоШаблону Тогда
|
||||
Шаблон = "содержит подстроку соответствующую шаблону %1";
|
||||
ИначеЕсли Выражение = Выражения.ВСписке Тогда
|
||||
Шаблон = "в списке %1";
|
||||
Иначе
|
||||
ВызватьИсключение "Не описан шаблон сообщения для выражения предиката " + Выражение;
|
||||
КонецЕсли;
|
||||
|
@ -109,7 +109,9 @@
|
||||
// в противном случае, будет возвращен текст шаблона без изменений.
|
||||
//
|
||||
Функция ПодставитьПредставлениеЗначенияВШаблон(ШаблонСтроки, ЗначениеПараметра) Экспорт
|
||||
|
||||
Возврат СтрЗаменить(ШаблонСтроки, "%1", ПредставлениеЗначения(ЗначениеПараметра));
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
@ -481,6 +481,10 @@
|
||||
|
||||
Результат = ПроверитьСоответствуетШаблону(СтатусПроверки, ПроверяемоеЗначение, ОжидаемоеЗначение, ПараметрыПроверки);
|
||||
|
||||
ИначеЕсли ВидСравненияВыражения = ВидыСравнения.ВСписке Тогда
|
||||
|
||||
Результат = ПроверитьВСписке(СтатусПроверки, ПроверяемоеЗначение, ОжидаемоеЗначение, ПараметрыПроверки);
|
||||
|
||||
Иначе
|
||||
|
||||
ВызватьИсключение СтрШаблон("Неизвестное выражение предиката `%1`", Выражение.ВидСравнения);
|
||||
@ -630,6 +634,24 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПроверитьВСписке(РезультатПроверки, ПроверяемоеЗначение, ОжидаемоеЗначение, ПараметрыПроверки)
|
||||
|
||||
ТипыПараметровСоответствуют = ПроверитьТипЗначения(РезультатПроверки, ОжидаемоеЗначение, "Массив, ФиксированныйМассив, СписокЗначений");
|
||||
|
||||
Если Не ТипыПараметровСоответствуют Тогда
|
||||
Возврат Неопределено;
|
||||
КонецЕсли;
|
||||
|
||||
ТипСписка = ТипЗнч(ОжидаемоеЗначение);
|
||||
|
||||
Если ЮТТипыДанныхСлужебный.ЭтоМассива(ТипСписка) Тогда
|
||||
Возврат ОжидаемоеЗначение.Найти(ПроверяемоеЗначение) <> Неопределено;
|
||||
Иначе
|
||||
Возврат ОжидаемоеЗначение.НайтиПоЗначению(ПроверяемоеЗначение) <> Неопределено;
|
||||
КонецЕсли;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
@ -483,6 +483,22 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Проверяет значение (или его свойство), оно должно входить в указанный список.
|
||||
//
|
||||
// Параметры:
|
||||
// Значения - Массив из Произвольный - Значения для проверки
|
||||
// - СписокЗначений из Произвольный - Значения для проверки
|
||||
// ОписаниеПроверки - Строка - Описание конкретной проверки
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ОбщийМодуль - Этот модуль для замыкания
|
||||
Функция ВСписке(Значения, ОписаниеПроверки = Неопределено) Экспорт
|
||||
|
||||
ПроверитьПредикат(ЮТПредикаты.Выражения().ВСписке, Значения, ОписаниеПроверки);
|
||||
Возврат ЮТУтверждения;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
// Проверяет наличие свойств и их значения у проверяемого объекта (или его свойства).
|
||||
|
@ -1,6 +1,6 @@
|
||||
//©///////////////////////////////////////////////////////////////////////////©//
|
||||
//
|
||||
// Copyright 2021-2023 BIA-Technologies Limited Liability Company
|
||||
// Copyright 2021-2024 BIA-Technologies Limited Liability Company
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
@ -31,6 +31,7 @@
|
||||
.ДобавитьТест("ЗначенияРеквизитовЗаписи")
|
||||
.ДобавитьТест("ЗначениеРеквизитаЗаписи")
|
||||
.ДобавитьТест("ДвиженияДокумента")
|
||||
.ДобавитьТест("Записи_Условие_ВСписке")
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
@ -117,23 +118,19 @@
|
||||
|
||||
Процедура РезультатЗапроса() Экспорт
|
||||
|
||||
Конструктор = ЮТест.Данные().КонструкторОбъекта("Справочники.Товары")
|
||||
.Фикция("Наименование")
|
||||
.Фикция("Поставщик");
|
||||
Ссылка = Конструктор.Записать();
|
||||
ДанныеСправочника = Конструктор.ДанныеОбъекта();
|
||||
Товар = НовыйТовар();
|
||||
|
||||
ОписаниеЗапроса = ЮТЗапросы.ОписаниеЗапроса();
|
||||
ОписаниеЗапроса.ИмяТаблицы = "Справочник.Товары";
|
||||
ОписаниеЗапроса.Условия.Добавить("Ссылка = &Ссылка");
|
||||
ОписаниеЗапроса.Условия.Добавить("НЕ ПометкаУдаления");
|
||||
ОписаниеЗапроса.ЗначенияПараметров.Вставить("Ссылка", Ссылка);
|
||||
ОписаниеЗапроса.ЗначенияПараметров.Вставить("Ссылка", Товар);
|
||||
ОписаниеЗапроса.ВыбираемыеПоля.Добавить("Наименование");
|
||||
ОписаниеЗапроса.ВыбираемыеПоля.Добавить("1+1 КАК Число");
|
||||
|
||||
ЮТест.ОжидаетЧто(ЮТЗапросы.РезультатЗапроса(ОписаниеЗапроса))
|
||||
.ИмеетДлину(1)
|
||||
.Свойство("[0].Наименование").Равно(ДанныеСправочника.Наименование)
|
||||
.Свойство("[0].Наименование").Равно(Товар.Наименование)
|
||||
.Свойство("[0].Число").Равно(2);
|
||||
|
||||
КонецПроцедуры
|
||||
@ -395,4 +392,49 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Записи_Условие_ВСписке() Экспорт
|
||||
|
||||
ИмяТаблицы = "Справочник.Товары";
|
||||
ВидТовар = ПредопределенноеЗначение("Перечисление.ВидыТоваров.Товар");
|
||||
ВидУслуга = ПредопределенноеЗначение("Перечисление.ВидыТоваров.Услуга");
|
||||
Товар = НовыйТовар(ВидТовар);
|
||||
Услуга = НовыйТовар(ВидУслуга);
|
||||
|
||||
Результат = ЮТЗапросы.Записи(ИмяТаблицы, ЮТест.Предикат()
|
||||
.Свойство("Вид").ВСписке(ЮТКоллекции.ЗначениеВМассиве(ВидТовар, ВидУслуга)));
|
||||
|
||||
ЮТест.ОжидаетЧто(Результат)
|
||||
.ИмеетДлину(2)
|
||||
.ЛюбойЭлементСодержитСвойствоСоЗначением("Ссылка", Товар)
|
||||
.ЛюбойЭлементСодержитСвойствоСоЗначением("Ссылка", Услуга);
|
||||
|
||||
Результат = ЮТЗапросы.Записи(ИмяТаблицы, ЮТест.Предикат()
|
||||
.Свойство("Вид").ВСписке(ЮТКоллекции.ЗначениеВМассиве(ВидТовар)));
|
||||
|
||||
ЮТест.ОжидаетЧто(Результат)
|
||||
.ИмеетДлину(1)
|
||||
.Свойство("[0].Ссылка", Товар);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
Функция НовыйТовар(ВидТовара = Неопределено)
|
||||
|
||||
Конструктор = ЮТест.Данные().КонструкторОбъекта("Справочники.Товары")
|
||||
.Фикция("Наименование")
|
||||
.Фикция("Поставщик");
|
||||
|
||||
Если ЗначениеЗаполнено(ВидТовара) Тогда
|
||||
Конструктор.Установить("Вид", ВидТовара);
|
||||
Иначе
|
||||
Конструктор.Фикция("Вид");
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Конструктор.Записать();
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
@ -77,7 +77,15 @@
|
||||
.ДобавитьТест("ЛюбойЭлементСоответствуетПредикату")
|
||||
.ДобавитьТест("СодержитПредикат")
|
||||
.ДобавитьТест("НеСодержитПредикат")
|
||||
.ДобавитьТест("ФорматированныеСтроки")
|
||||
.ДобавитьТест("ФорматированныеСтроки");
|
||||
|
||||
Массив = ЮТКоллекции.ЗначениеВМассиве(0, 1, "2");
|
||||
Список = Новый СписокЗначений();
|
||||
Список.ЗагрузитьЗначения(Массив);
|
||||
|
||||
ЮТТесты.ДобавитьТест("ВСписке")
|
||||
.СПараметрами(Массив)
|
||||
.СПараметрами(Список)
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
@ -2375,6 +2383,16 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ВСписке(Коллекция) Экспорт
|
||||
|
||||
ЮТест.ОжидаетЧто(0)
|
||||
.ВСписке(Коллекция);
|
||||
|
||||
Ошибка = ОшибкаУтверждения(-1, "ВСписке", Коллекция);
|
||||
ПроверитьОшибкуУтверждения(Ошибка, СтрШаблон("проверяемое значение `-1` в списке `%1`, но это не так.", Коллекция));
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ФорматированныеСтроки() Экспорт
|
||||
|
||||
Строка = Новый ФорматированнаяСтрока("Тестовая строка");
|
||||
@ -2399,9 +2417,9 @@
|
||||
Функция ОшибкаУтверждения(ПроверяемоеЗначение, Утверждение, Параметр)
|
||||
|
||||
Параметры = ЮТКоллекции.ЗначениеВМассиве(Параметр);
|
||||
|
||||
ЮТест.ОжидаетЧто(ПроверяемоеЗначение);
|
||||
Ошибка = ЮТМетодыСлужебный.ВыполнитьМетод("ЮТУтверждения." + Утверждение, Параметры);
|
||||
|
||||
Возврат Ошибка;
|
||||
|
||||
КонецФункции
|
||||
|
Loading…
Reference in New Issue
Block a user