Специализированное администрирование > Настройка бизнес-объектов > Администрирование правил инициализации объектов > Работа с правила инициализации объектов > Алгоритмы правил > Алгоритмы условной логики > Алгоритмы тестирования
  
Алгоритмы тестирования
Стандартные алгоритмы тестирования перечислены ниже:
Алгоритм
Описание
wt.rule.algorithm.EqualsTest
Определяет равенство, если задано два объекта. Это сравнение объект-объект.
Если есть совпадение, возвращается значение ИСТИНА; в противном случае возвращается значение ЛОЖЬ.
wt.rule.algorithm.StringEqualsTest
Определяет равенство, если заданы атрибут и значение. Алгоритм преобразует все в строку, перед сравнением используя toString( ). Сравнение строка-строка нечувствительно к регистру.
Если есть совпадение, возвращается значение ИСТИНА; в противном случае возвращается значение ЛОЖЬ.
wt.rule.algorithm.StringRegExEqualsTest
Если заданы атрибут и значение с \u201c*\u201d в значении, определяет равенство, используя обычные понятия, связанные с выражением. Данный алгоритм использует реализацию the java.util.regex совпадения регулярного выражения. Перед сравнением алгоритм принудительно преобразует значение первого тега Arg в строку, используя функцию toString( ).
Если найдено совпадение, возвращает значение ИСТИНА, при этом совпадение - строковый аргумент.
wt.rule.algorithm.IfNullTest
Если заданы атрибут и значение, определяет, является ли значение нулевым.
Если первый аргумент является нулевым значением, возвращает значение ИСТИНА; в противном случае возвращает значение ЛОЖЬ.
Для получения нулевого значения следует использовать алгоритм wt.rule.algorithm.GetNullValue.
wt.rule.algorithm.IfNotNullTest
Если заданы атрибут и значение, определяет, является ли значение ненулевым значением.
Если первый аргумент не является нулевым значением, возвращает значение ИСТИНА; в противном случае возвращает значение ЛОЖЬ.
Для получения нулевого значения следует использовать алгоритм wt.rule.algorithm.GetNullValue.
com.ptc.core.rule.server.impl.IfContainerTypeEqualsProjectTest
Если задан контекст объекта, определяет, является ли он контекстом wt.projmgmt.admin.Project2.
Возвращает значение ИСТИНА, если контекст является экземпляром класса wt.projmgmt.admin.Project2 или подклассом либо подтипом класса Project2; в противном случае возвращает значение ЛОЖЬ.
Алгоритм возвращает значение ИСТИНА, если контекст является контекстом проекта или программы.
wt.rule.algorithm.AndTest
Если задано два или более сравнения, возвращает значение ИСТИНА, если все сравнения возвращают ИСТИНА; в противном случае возвращает значение ЛОЖЬ.
wt.rule.algorithm.OrTest
Если задано два или более сравнения, возвращает значение ИСТИНА, если любое сравнение возвращает ИСТИНА; в противном случае возвращает значение ЛОЖЬ.
wt.rule.algorithm.StringInListTest
Берет список значений и проверяет, равно ли первое значение, указанное в теге Attr, какому-либо из элементов, определенных в тегах Arg. Алгоритм преобразует все в строки, перед сравнением используя toString( ).
Если есть совпадение, возвращается значение ИСТИНА; в противном случае возвращается значение ЛОЖЬ.
com.ptc.windchill.enterprise.impl.OrgNameEqualsTest
Если задано имя участника организации (значение, которое хранится в атрибуте organization.id) и строка названия организации, возвратить значение ИСТИНА, если значение атрибута organization.id совпадает со строкой; в противном случае возвратить значение ЛОЖЬ. Дополнительные сведения см. в разделе Участники владеющей организации.
Общий синтаксис, используемый алгоритмами EqualsTest, StringEqualsTest и StringRegExEqualsTest:
<Value algorithm="wt.rule.algorithm.xxxEqualsTest">
<Attr id="aaa"/>
<Arg>bbb</Arg>
</Value>
В этом синтаксисе оцениваемый атрибут задается в теге Attr и его строковое значение содержится в теге Arg. В этом и других синтаксисах, которые будут описаны ниже, значение не должно быть строкой; значение можно генерировать, используя другой алгоритм. Например, следующий XML-код можно использовать для тестирования нулевого значения:
<Value algorithm="wt.rule.algorithm.EqualsTest">
<Attr id="name"/>
<Value algorithm="wt.rule.algorithm.GetNullValue"/>
</Value>
Общий синтаксис алгоритма StringInList algorithm строится из предыдущего синтаксиса:
<Value algorithm="wt.rule.algorithm.StringInList">
<Attr id="aaa"/>
<Arg>bbb</Arg>
<Arg>ccc</Arg>
<Arg>ddd</Arg>
<Arg>eee</Arg>
:
</Value>
Используя этот синтаксис как руководство, задайте тег Arg для каждого элемента в списке после первого элемента, определенного в теге Attr.
Синтаксис алгоритма AndTest состоит из нескольких вложенных тегов Value, где каждый тег Value вычисляется, и для того, чтобы результат алгоритма AndTest был ИСТИНА, все оценки должны быть истинными.
Синтаксис алгоритма OrTest состоит из нескольких вложенных тегов Value, где каждый тег Value вычисляется, и для того, чтобы алгоритм OrTest вернул значение ИСТИНА, необходимо, чтобы хотя бы один из результатов оказался истинным.
В целом теги Value, используемые в алгоритме AndTest или OrTest, содержат другие алгоритмы условной логики.