mirror of
https://github.com/bia-technologies/yaxunit.git
synced 2024-12-09 08:55:53 +02:00
parent
41ca425d53
commit
a3add5b9f7
@ -241,29 +241,33 @@
|
||||
ВидСравненияВыражения = Выражение.ВидСравнения;
|
||||
КонецЕсли;
|
||||
|
||||
Результат = Неопределено;
|
||||
|
||||
ПроверяемоеЗначение = ПроверяемоеЗначение(ПараметрыПроверки);
|
||||
|
||||
Если ВидСравненияВыражения = ВидыСравнения.Равно Тогда
|
||||
|
||||
ЮТСравнениеКлиентСервер.ПроверитьРавенствоЗначений(СтатусПроверки, ПараметрыПроверки, ПараметрыСравнения);
|
||||
Результат = ЮТСравнениеКлиентСервер.ЗначенияРавны(ПроверяемоеЗначение, ПараметрыПроверки.ОжидаемоеЗначение, ПараметрыСравнения);
|
||||
|
||||
ИначеЕсли ВидСравненияВыражения = ВидыСравнения.Заполнено Тогда
|
||||
|
||||
ЮТСравнениеКлиентСервер.ПроверитьЗаполненность(СтатусПроверки, ПараметрыПроверки);
|
||||
Результат = ЗначениеЗаполнено(ПроверяемоеЗначение)
|
||||
|
||||
ИначеЕсли ВидСравненияВыражения = ВидыСравнения.Больше Тогда
|
||||
|
||||
ЮТСравнениеКлиентСервер.ПроверитьНеравенство(СтатусПроверки, ПараметрыПроверки, Истина);
|
||||
Результат = ЮТСравнениеКлиентСервер.ПроверитьНеравенство(ПроверяемоеЗначение, ПараметрыПроверки.ОжидаемоеЗначение, Истина);
|
||||
|
||||
ИначеЕсли ВидСравненияВыражения = ВидыСравнения.БольшеРавно Тогда
|
||||
|
||||
ЮТСравнениеКлиентСервер.ПроверитьНеравенство(СтатусПроверки, ПараметрыПроверки, Истина, , Истина);
|
||||
Результат = ЮТСравнениеКлиентСервер.ПроверитьНеравенство(ПроверяемоеЗначение, ПараметрыПроверки.ОжидаемоеЗначение, Истина, , Истина);
|
||||
|
||||
ИначеЕсли ВидСравненияВыражения = ВидыСравнения.Меньше Тогда
|
||||
|
||||
ЮТСравнениеКлиентСервер.ПроверитьНеравенство(СтатусПроверки, ПараметрыПроверки, , Истина);
|
||||
Результат = ЮТСравнениеКлиентСервер.ПроверитьНеравенство(ПроверяемоеЗначение, ПараметрыПроверки.ОжидаемоеЗначение, , Истина);
|
||||
|
||||
ИначеЕсли ВидСравненияВыражения = ВидыСравнения.МеньшеРавно Тогда
|
||||
|
||||
ЮТСравнениеКлиентСервер.ПроверитьНеравенство(СтатусПроверки, ПараметрыПроверки, , Истина, Истина);
|
||||
Результат = ЮТСравнениеКлиентСервер.ПроверитьНеравенство(ПроверяемоеЗначение, ПараметрыПроверки.ОжидаемоеЗначение, , Истина, Истина);
|
||||
|
||||
ИначеЕсли ВидСравненияВыражения = ВидыСравнения.ИмеетТип Тогда
|
||||
|
||||
@ -292,6 +296,16 @@
|
||||
КонецЕсли;
|
||||
// BSLLS:CognitiveComplexity-on
|
||||
|
||||
Если Результат = Неопределено Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если ПараметрыПроверки.Реверс Тогда
|
||||
Результат = НЕ Результат;
|
||||
КонецЕсли;
|
||||
|
||||
ОбработатьРезультатСравнения(Результат, СтатусПроверки, ПараметрыПроверки, ПроверяемоеЗначение);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ЭтоПредикатОбщийМодуль(ТипПредикатов, Предикаты)
|
||||
@ -314,4 +328,42 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ОбработатьРезультатСравнения(Результат, РезультатПроверки, ПараметрыПроверки, ФактическоеЗначение)
|
||||
|
||||
Если Результат Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ШаблонСообщения = ШаблонВыражения(ПараметрыПроверки.ВидСравнения);
|
||||
Сообщение = СтрШаблон(ШаблонСообщения, ПараметрыПроверки.ОжидаемоеЗначение);
|
||||
|
||||
ТекстОшибки = ЮТРегистрацияОшибок.ФорматированныйТекстОшибкиУтверждения(ПараметрыПроверки, Сообщение, ПараметрыПроверки.ТекстПроверяемоеЗначение);
|
||||
ТекстОшибки = ЮТРегистрацияОшибок.ДобавитьОписания(ТекстОшибки, ПараметрыПроверки);
|
||||
|
||||
ЮТРегистрацияОшибок.ДобавитьОшибкуСравненияКРезультатуПроверки(РезультатПроверки,
|
||||
ТекстОшибки,
|
||||
ФактическоеЗначение,
|
||||
ПараметрыПроверки.ОжидаемоеЗначение);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Параметры проверки.
|
||||
//
|
||||
// Параметры:
|
||||
// ПараметрыПроверки - см. ПараметрыПроверки
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Произвольный
|
||||
Функция ПроверяемоеЗначение(ПараметрыПроверки)
|
||||
|
||||
Если ПараметрыПроверки.ОбъектПроверки.ИмяСвойства <> Неопределено Тогда
|
||||
Значение = ЮТСравнениеКлиентСервер.ЗначениеСвойства(ПараметрыПроверки.ОбъектПроверки.Значение, ПараметрыПроверки.ОбъектПроверки.ИмяСвойства);
|
||||
Иначе
|
||||
Значение = ПараметрыПроверки.ОбъектПроверки.Значение;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Значение;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
@ -92,48 +92,25 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Проверить равенство значений.
|
||||
//
|
||||
// Параметры:
|
||||
// РезультатПроверки - см. ЮТФабрика.ОписаниеРезультатаПроверки
|
||||
// ПараметрыПроверки - см. ПараметрыПроверки
|
||||
// ПараметрыСравнения - Структура - Параметры проверки:
|
||||
// * ГлубокийАнализ - Булево - Использовать сериализацию и прочие алгоритмы сравнения
|
||||
Процедура ПроверитьРавенствоЗначений(РезультатПроверки, ПараметрыПроверки, ПараметрыСравнения) Экспорт
|
||||
|
||||
ПроверяемоеЗначение = ПроверяемоеЗначение(ПараметрыПроверки);
|
||||
Результат = ЗначенияРавны(ПроверяемоеЗначение, ПараметрыПроверки.ОжидаемоеЗначение, ПараметрыСравнения);
|
||||
|
||||
Реверс(Результат, ПараметрыПроверки);
|
||||
|
||||
Если НЕ Результат Тогда
|
||||
ОбработатьРезультатСравнения(РезультатПроверки, ПараметрыПроверки, ПроверяемоеЗначение);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПроверитьНеравенство(РезультатПроверки, ПараметрыПроверки, Больше = Ложь, Меньше = Ложь, Равно = Ложь) Экспорт
|
||||
Функция ПроверитьНеравенство(ПроверяемоеЗначение, ОжидаемоеЗначение, Больше = Ложь, Меньше = Ложь, Равно = Ложь) Экспорт
|
||||
|
||||
Результат = Ложь;
|
||||
ПроверяемоеЗначение = ПроверяемоеЗначение(ПараметрыПроверки);
|
||||
|
||||
Если Больше Тогда
|
||||
Результат = ПроверяемоеЗначение > ПараметрыПроверки.ОжидаемоеЗначение;
|
||||
Результат = ПроверяемоеЗначение > ОжидаемоеЗначение;
|
||||
КонецЕсли;
|
||||
|
||||
Если Меньше Тогда
|
||||
Результат = Результат ИЛИ ПроверяемоеЗначение < ПараметрыПроверки.ОжидаемоеЗначение;
|
||||
Результат = Результат ИЛИ ПроверяемоеЗначение < ОжидаемоеЗначение;
|
||||
КонецЕсли;
|
||||
|
||||
Если Равно Тогда
|
||||
Результат = Результат ИЛИ ПроверяемоеЗначение = ПараметрыПроверки.ОжидаемоеЗначение;
|
||||
КонецЕсли;
|
||||
|
||||
Если НЕ Результат Тогда
|
||||
ОбработатьРезультатСравнения(РезультатПроверки, ПараметрыПроверки, ПроверяемоеЗначение);
|
||||
Результат = Результат ИЛИ ПроверяемоеЗначение = ОжидаемоеЗначение;
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ПроверитьТипПараметра(РезультатПроверки, ПараметрыПроверки) Экспорт
|
||||
|
||||
@ -250,27 +227,27 @@
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПроверитьСоответствуетШаблону(РезультатПроверки, ПараметрыПроверки) Экспорт
|
||||
|
||||
|
||||
Если НЕ ПроверитьТипЗначения(РезультатПроверки, ПараметрыПроверки.ОжидаемоеЗначение, "Строка") Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
ПроверяемоеЗначение = ПроверяемоеЗначение(ПараметрыПроверки);
|
||||
СоответствуетШаблону = СоответствуетШаблону(ПроверяемоеЗначение, ПараметрыПроверки.ОжидаемоеЗначение);
|
||||
|
||||
|
||||
Если СоответствуетШаблону = Неопределено Тогда
|
||||
ТекстОшибки = СтрШаблон("тип проверяемого значения `%1` не обрабатывается утверждением", ТипЗнч(ПроверяемоеЗначение));
|
||||
ЮТРегистрацияОшибок.ДобавитьОшибкуКРезультатуПроверки(РезультатПроверки, ТекстОшибки, ПараметрыПроверки);
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
Результат = СоответствуетШаблону;
|
||||
Реверс(Результат, ПараметрыПроверки);
|
||||
|
||||
|
||||
Если НЕ Результат Тогда
|
||||
ОбработатьРезультатСравнения(РезультатПроверки, ПараметрыПроверки, ПроверяемоеЗначение);
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Параметры проверки.
|
||||
@ -305,6 +282,29 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ЗначениеСвойства(Объект, ИмяСвойства) Экспорт
|
||||
|
||||
Путь = ЧастиПути(ИмяСвойства);
|
||||
|
||||
Значение = Объект;
|
||||
Для Каждого Часть Из Путь Цикл
|
||||
|
||||
Если ТипЗнч(Значение) = Тип("ХранилищеЗначения") Тогда
|
||||
Значение = Значение.Получить();
|
||||
КонецЕсли;
|
||||
|
||||
Если ТипЗнч(Часть) = Тип("Число") И Часть < 0 И ТипЗнч(Значение) <> Тип("Соответствие") Тогда
|
||||
Часть = Значение.Количество() + Часть;
|
||||
КонецЕсли;
|
||||
|
||||
Значение = Значение[Часть];
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Возврат Значение;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
@ -545,29 +545,6 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ЗначениеСвойства(Объект, ИмяСвойства)
|
||||
|
||||
Путь = ЧастиПути(ИмяСвойства);
|
||||
|
||||
Значение = Объект;
|
||||
Для Каждого Часть Из Путь Цикл
|
||||
|
||||
Если ТипЗнч(Значение) = Тип("ХранилищеЗначения") Тогда
|
||||
Значение = Значение.Получить();
|
||||
КонецЕсли;
|
||||
|
||||
Если ТипЗнч(Часть) = Тип("Число") И Часть < 0 И ТипЗнч(Значение) <> Тип("Соответствие") Тогда
|
||||
Часть = Значение.Количество() + Часть;
|
||||
КонецЕсли;
|
||||
|
||||
Значение = Значение[Часть];
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Возврат Значение;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура Реверс(Значение, ПараметрыПроверки)
|
||||
|
||||
Если ПараметрыПроверки.Реверс Тогда
|
||||
|
Loading…
Reference in New Issue
Block a user