mirror of
https://github.com/bia-technologies/yaxunit.git
synced 2025-03-17 20:48:01 +02:00
parent
daaf564745
commit
9f4d5664c4
@ -202,45 +202,8 @@
|
||||
|
||||
Функция СоздатьОписаниеУсловнойРеакции(СтруктураВызоваМетода)
|
||||
|
||||
Возврат Новый Структура("УсловиеРеакции, Действие", УсловиеРеакции(СтруктураВызоваМетода), Неопределено);
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция УсловиеРеакции(СтруктураВызоваМетода)
|
||||
|
||||
Параметры = СтруктураВызоваМетода.Параметры;
|
||||
|
||||
Если Параметры = Неопределено Тогда
|
||||
Возврат Неопределено;
|
||||
КонецЕсли;
|
||||
|
||||
Условия = Новый Массив;
|
||||
|
||||
ТипыУсловий = МокитоСлужебный.ТипыУсловийПараметров();
|
||||
|
||||
Для Каждого Параметр Из Параметры Цикл
|
||||
|
||||
Если МокитоСлужебный.ЭтоМаскаПарамера(Параметр) Тогда
|
||||
|
||||
Условия.Добавить(Параметр);
|
||||
|
||||
ИначеЕсли ЮТПредикатыКлиентСервер.ЭтоПредикат(Параметр) Тогда
|
||||
|
||||
Маска = МокитоСлужебный.ОписаниеМаскиПараметра(ТипыУсловий.Предикат, 90);
|
||||
Маска.Вставить("Предикат", ЮТПредикатыКлиентСервер.НаборПредикатов(Параметр));
|
||||
Условия.Добавить(Маска);
|
||||
|
||||
Иначе
|
||||
|
||||
Маска = МокитоСлужебный.ОписаниеМаскиПараметра(ТипыУсловий.Значение, 100);
|
||||
Маска.Вставить("Значение", Параметр);
|
||||
Условия.Добавить(Маска);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Возврат Условия;
|
||||
Условия = МокитоСлужебный.УсловиеИзПараметров(СтруктураВызоваМетода.Параметры);
|
||||
Возврат Новый Структура("УсловиеРеакции, Действие", Условия, Неопределено);
|
||||
|
||||
КонецФункции
|
||||
|
||||
|
@ -213,11 +213,7 @@
|
||||
Параметр = ВызовМетода.Параметры[Инд];
|
||||
Условие = СтруктураВызоваМетода.Параметры[Инд];
|
||||
|
||||
Если МокитоСлужебный.ЭтоМаскаПарамера(Условие) Тогда
|
||||
Успешно = МокитоСлужебный.ПроверитьПараметр(Параметр, Условие);
|
||||
Иначе
|
||||
Успешно = ЮТСравнениеКлиентСервер.ЗначенияРавны(Параметр, Условие);
|
||||
КонецЕсли;
|
||||
Успешно = МокитоСлужебный.ПроверитьПараметр(Параметр, Условие);
|
||||
|
||||
Если НЕ Успешно Тогда
|
||||
Прервать;
|
||||
@ -258,7 +254,8 @@
|
||||
Если МокитоСлужебный.ЭтоСтруктураВызоваМетода(ИмяМетода) Тогда
|
||||
СтруктураВызоваМетода = ИмяМетода;
|
||||
Иначе
|
||||
СтруктураВызоваМетода = МокитоСлужебный.СтруктураВызоваМетода(Параметры.ПроверяемыйОбъект, ИмяМетода, ПараметрыВызова);
|
||||
Условия = МокитоСлужебный.УсловиеИзПараметров(ПараметрыВызова);
|
||||
СтруктураВызоваМетода = МокитоСлужебный.СтруктураВызоваМетода(Параметры.ПроверяемыйОбъект, ИмяМетода, Условия);
|
||||
КонецЕсли;
|
||||
|
||||
Если СтруктураВызоваМетода.Объект <> Параметры.ПроверяемыйОбъект Тогда
|
||||
|
@ -572,4 +572,40 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция УсловиеИзПараметров(Параметры) Экспорт
|
||||
|
||||
Если Параметры = Неопределено Тогда
|
||||
Возврат Неопределено;
|
||||
КонецЕсли;
|
||||
|
||||
Условия = Новый Массив;
|
||||
|
||||
ТипыУсловий = ТипыУсловийПараметров();
|
||||
|
||||
Для Каждого Параметр Из Параметры Цикл
|
||||
|
||||
Если ЭтоМаскаПарамера(Параметр) Тогда
|
||||
|
||||
Условия.Добавить(Параметр);
|
||||
|
||||
ИначеЕсли ЮТПредикатыКлиентСервер.ЭтоПредикат(Параметр) Тогда
|
||||
|
||||
Маска = ОписаниеМаскиПараметра(ТипыУсловий.Предикат, 90);
|
||||
Маска.Вставить("Предикат", ЮТПредикатыКлиентСервер.НаборПредикатов(Параметр));
|
||||
Условия.Добавить(Маска);
|
||||
|
||||
Иначе
|
||||
|
||||
Маска = ОписаниеМаскиПараметра(ТипыУсловий.Значение, 100);
|
||||
Маска.Вставить("Значение", Параметр);
|
||||
Условия.Добавить(Маска);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Возврат Условия;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
@ -259,8 +259,48 @@
|
||||
|
||||
Процедура ИспользованиеПредикатов() Экспорт
|
||||
|
||||
ВызватьИсключение "Не реализовано";
|
||||
ЛюбойПараметр = Мокито.ЛюбойПараметр();
|
||||
УсловиеСтруктура = ЮТест.Предикат()
|
||||
.ИмеетТип("Структура")
|
||||
.Реквизит("Флаг").Равно(1)
|
||||
.Получить();
|
||||
Адрес = "service.ru";
|
||||
|
||||
Мокито.Обучение(Интеграция)
|
||||
.Когда("ВыполнитьЗапрос")
|
||||
.ВыброситьИсключение("Не отработал перехват")
|
||||
.Когда("ВыполнитьЗапрос", Мокито.МассивПараметров(ЛюбойПараметр, УсловиеСтруктура))
|
||||
.Вернуть(1)
|
||||
.Когда("ВыполнитьЗапрос", Мокито.МассивПараметров(ЛюбойПараметр, ЮТест.Предикат().Реквизит("Флаг").Равно(2)))
|
||||
.Вернуть(2)
|
||||
.Когда("ВыполнитьЗапрос", Мокито.МассивПараметров(ЛюбойПараметр, ЮТест.Предикат().ИмеетТип("Массив").Реквизит(0).Равно(3)))
|
||||
.Вернуть(3)
|
||||
.Когда("ВыполнитьЗапрос", Мокито.МассивПараметров(ЛюбойПараметр, ЮТест.Предикат().Равно(4)))
|
||||
.Вернуть(4)
|
||||
.Когда("ВыполнитьЗапрос", Мокито.МассивПараметров(ЮТест.Предикат().Содержит("com"), ЮТест.Предикат().Равно(4)))
|
||||
.Вернуть(5)
|
||||
.Когда("ВыполнитьЗапрос", Мокито.МассивПараметров(ЮТест.Предикат().Содержит("org").Получить(), ЮТест.Предикат().Равно(4)))
|
||||
.Вернуть(6)
|
||||
.Прогон()
|
||||
;
|
||||
|
||||
ЮТест.ОжидаетЧто(Интеграция.ВыполнитьЗапрос(Адрес, Новый Структура("Флаг", 1)))
|
||||
.Равно(1);
|
||||
ЮТест.ОжидаетЧто(Интеграция.ВыполнитьЗапрос(Адрес, 4))
|
||||
.Равно(4);
|
||||
ЮТест.ОжидаетЧто(Интеграция.ВыполнитьЗапрос("service.com", 4))
|
||||
.Равно(4); // Не вернет 5, потому что если несколько предиктов в условиях параметров, нужно использовать Получить
|
||||
ЮТест.ОжидаетЧто(Интеграция.ВыполнитьЗапрос("service.org", 4))
|
||||
.Равно(6); //
|
||||
ЮТест.ОжидаетЧто(Интеграция.ВыполнитьЗапрос(Адрес, ЮТОбщий.ЗначениеВМассиве(3)))
|
||||
.Равно(3);
|
||||
ЮТест.ОжидаетЧто(Интеграция.ВыполнитьЗапрос(Адрес, Новый Структура("Флаг", 2)))
|
||||
.Равно(2);
|
||||
|
||||
Мокито.Проверить(Интеграция)
|
||||
.КоличествоВызовов("ВыполнитьЗапрос").Равно(6)
|
||||
.КоличествоВызовов("ВыполнитьЗапрос", Мокито.МассивПараметров(ЮТест.Предикат().Содержит("ru"))).Равно(4)
|
||||
.КоличествоВызовов("ВыполнитьЗапрос", Мокито.МассивПараметров(ЛюбойПараметр, Новый Структура("Флаг", 2))).Равно(1)
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
Loading…
x
Reference in New Issue
Block a user