mirror of
https://github.com/bia-technologies/yaxunit.git
synced 2025-03-17 20:48:01 +02:00
parent
c5ff9475d6
commit
daaf564745
@ -151,7 +151,6 @@
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура - Описание маски параметра:
|
||||
// * МаскаСопоставленияПараметров - Булево - Признак, что это маска параметра (значение: `Истина`)
|
||||
// * Режим - Строка - Тип маски (значение: `Тип`)
|
||||
// * Приоритет - Число - Приоритет маски, используется если значение подпадает под несколько масок (значение: `10`)
|
||||
// * Тип - Тип - Тип, которому должен соответствовать параметр
|
||||
|
@ -216,15 +216,25 @@
|
||||
|
||||
Условия = Новый Массив;
|
||||
|
||||
ТипыУсловий = МокитоСлужебный.ТипыУсловийПараметров();
|
||||
|
||||
Для Каждого Параметр Из Параметры Цикл
|
||||
|
||||
Если МокитоСлужебный.ЭтоМаскаПарамера(Параметр) Тогда
|
||||
|
||||
Условия.Добавить(Параметр);
|
||||
|
||||
ИначеЕсли ЮТПредикатыКлиентСервер.ЭтоПредикат(Параметр) Тогда
|
||||
|
||||
Маска = МокитоСлужебный.ОписаниеМаскиПараметра(ТипыУсловий.Предикат, 90);
|
||||
Маска.Вставить("Предикат", ЮТПредикатыКлиентСервер.НаборПредикатов(Параметр));
|
||||
Условия.Добавить(Маска);
|
||||
|
||||
Иначе
|
||||
|
||||
Условия.Добавить(Новый Структура("Режим, Значение, Приоритет", "Значение", Параметр, 100));
|
||||
Маска = МокитоСлужебный.ОписаниеМаскиПараметра(ТипыУсловий.Значение, 100);
|
||||
Маска.Вставить("Значение", Параметр);
|
||||
Условия.Добавить(Маска);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
|
@ -159,6 +159,7 @@
|
||||
Типы.Вставить("Значение", "Значение");
|
||||
Типы.Вставить("Тип", "Тип");
|
||||
Типы.Вставить("ОписаниеТипа", "ОписаниеТипа");
|
||||
Типы.Вставить("Предикат", "Предикат");
|
||||
|
||||
Возврат Новый ФиксированнаяСтруктура(Типы);
|
||||
|
||||
@ -172,12 +173,13 @@
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура - Описание маски параметра:
|
||||
// * МаскаСопоставленияПараметров - Булево - Признак, что это маска параметра
|
||||
// * Режим - Строка - см. ТипыУсловийПараметров
|
||||
// * Приоритет - Число - Приоритет маски, используется если значение подпадает под несколько масок, чем выше приоритет, тем лучше
|
||||
Функция ОписаниеМаскиПараметра(ТипУсловия, Приоритет) Экспорт
|
||||
|
||||
МаскаПараметра = Новый Структура("МаскаСопоставленияПараметров", Истина);
|
||||
МаскаПараметра = Новый Структура;
|
||||
ЮТОбщий.УказатьТипСтруктуры(МаскаПараметра, "МаскаПараметра");
|
||||
|
||||
МаскаПараметра.Вставить("Режим", ТипУсловия);
|
||||
МаскаПараметра.Вставить("Приоритет", Приоритет);
|
||||
|
||||
@ -187,7 +189,7 @@
|
||||
|
||||
Функция ЭтоМаскаПарамера(Параметр) Экспорт
|
||||
|
||||
Возврат ТипЗнч(Параметр) = Тип("Структура") И Параметр.Свойство("МаскаСопоставленияПараметров") И Параметр.МаскаСопоставленияПараметров;
|
||||
Возврат ТипЗнч(Параметр) = Тип("Структура") И ЮТОбщий.ТипСтруктуры(Параметр) = "МаскаПараметра";
|
||||
|
||||
КонецФункции
|
||||
|
||||
@ -212,6 +214,11 @@
|
||||
|
||||
Совпадает = Условие.Тип.СодержитТип(ТипЗнч(Параметр));
|
||||
|
||||
ИначеЕсли Условие.Режим = ТипыУсловий.Предикат Тогда
|
||||
|
||||
Результат = ЮТПредикатыКлиентСервер.ПроверитьПредикаты(Параметр, Условие.Предикат);
|
||||
Совпадает = Результат.Успешно;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Совпадает;
|
||||
|
@ -830,6 +830,18 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ТипСтруктуры(Структура) Экспорт
|
||||
|
||||
Возврат ЗначениеСтруктуры(Структура, "__type__");
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура УказатьТипСтруктуры(Структура, ИмяТипа) Экспорт
|
||||
|
||||
Структура.Вставить("__type__", ИмяТипа);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
@ -66,9 +66,9 @@
|
||||
|
||||
Если ТипПараметра = Тип("ОбщийМодуль") И Предикаты = ЮТПредикаты Тогда
|
||||
Результат = ЮТПредикаты.Получить();
|
||||
ИначеЕсли ТипПараметра = Тип("Массив") Тогда
|
||||
ИначеЕсли ТипПараметра = Тип("Массив") И (Предикаты.Количество() = 0 ИЛИ ЮТОбщий.ТипСтруктуры(Предикаты[0]) = "Предикат") Тогда
|
||||
Результат = Предикаты;
|
||||
ИначеЕсли ТипПараметра = Тип("Структура") Тогда
|
||||
ИначеЕсли ТипПараметра = Тип("Структура") И ЮТОбщий.ТипСтруктуры(Предикаты) = "Предикат" Тогда
|
||||
Результат = ЮТОбщий.ЗначениеВМассиве(Предикаты);
|
||||
Иначе
|
||||
ВызватьИсключение "Некорректный параметр метода `ЮТПредикатыКлиентСервер.НаборПредикатов`";
|
||||
@ -78,6 +78,15 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ЭтоПредикат(Предикаты) Экспорт
|
||||
|
||||
ТипПараметра = ТипЗнч(Предикаты);
|
||||
Возврат (ТипПараметра = Тип("ОбщийМодуль") И Предикаты = ЮТПредикаты)
|
||||
ИЛИ (ТипПараметра = Тип("Массив") И Предикаты.Количество() И ЮТОбщий.ТипСтруктуры(Предикаты[0]) = "Предикат")
|
||||
ИЛИ (ТипПараметра = Тип("Структура") И ЮТОбщий.ТипСтруктуры(Предикаты) = "Предикат");
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПредставлениеПредикатов(Знач Предикаты, Разделитель, ШаблонСвойства = "содержит свойство `%1`, которое") Экспорт
|
||||
|
||||
Представления = Новый Массив();
|
||||
|
@ -645,10 +645,12 @@
|
||||
// Структура - Выражение предиката:
|
||||
// * ИмяРеквизита - Неопределено, Строка - Имя проверяемого реквизита
|
||||
// * ВидСравнения - Строка
|
||||
// * Значение - Произвольный
|
||||
// * Значение - Произвольный, Неопределено - Операнд выражения
|
||||
Функция ВыражениеПредиката(ВидСравнения, ИмяРеквизита = Неопределено, Значение = Неопределено) Экспорт
|
||||
|
||||
Выражение = Новый Структура();
|
||||
ЮТОбщий.УказатьТипСтруктуры(Выражение, "Предикат");
|
||||
|
||||
Выражение.Вставить("ИмяРеквизита", ИмяРеквизита);
|
||||
Выражение.Вставить("ВидСравнения", ВидСравнения);
|
||||
Выражение.Вставить("Значение", Значение);
|
||||
|
@ -27,6 +27,7 @@
|
||||
.ДобавитьТест("Прогон_НакоплениеСтатистики").СПараметрами(Истина).СПараметрами(Ложь)
|
||||
.ДобавитьСерверныйТест("МокированиеМетодовСсылочныхОбъектов").ВТранзакции()
|
||||
.ДобавитьТест("ОшибкаПодбораРеакции")
|
||||
.ДобавитьТест("ИспользованиеПредикатов")
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
@ -255,7 +256,13 @@
|
||||
ЮТУтверждения.Что(Интеграция.ВыполнитьЗапрос("sessions")).Равно(403);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ИспользованиеПредикатов() Экспорт
|
||||
|
||||
ВызватьИсключение "Не реализовано";
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
Loading…
x
Reference in New Issue
Block a user