public static <T> void assertEqualsFilterValue(EqualFilter filter, T value) { List<? extends PrismValue> values = filter.getValues(); assertEquals("Wrong number of filter values", 1, values.size()); assertTrue("Wrong filter value class: " + values.get(0).getClass(), values.get(0) instanceof PrismPropertyValue); PrismPropertyValue val = (PrismPropertyValue) values.get(0); assertEquals("Wrong filter value", value, val.getValue()); }
private RoleSelectionSpecEntry getRoleSelectionSpecEq(EqualFilter<String> eqFilter) throws SchemaException { if (QNameUtil.match(RoleType.F_ROLE_TYPE, eqFilter.getElementName()) || QNameUtil.match(RoleType.F_SUBTYPE, eqFilter.getElementName())) { List<PrismPropertyValue<String>> ppvs = eqFilter.getValues(); if (ppvs.size() > 1) { throw new SchemaException("More than one value in roleType search filter"); } String roleType = ppvs.get(0).getValue(); RoleSelectionSpecEntry roleTypeDval = new RoleSelectionSpecEntry(roleType, roleType, null); return roleTypeDval; } return null; }
MatchingRule<T> matchingRule = matchingRuleRegistry.getMatchingRule(matchingRuleQName, rAttrDef.getTypeName()); List<PrismValue> newValues = new ArrayList<>(); if (eqFilter.getValues() != null) { for (PrismPropertyValue<T> ppval : eqFilter.getValues()) { T normalizedRealValue = matchingRule.normalize(ppval.getValue()); PrismPropertyValue<T> newPPval = ppval.clone(); eqFilter.getValues().clear(); eqFilter.getValues().addAll((Collection) newValues); LOGGER.trace("Replacing values for attribute {} in search filter with normalized values because there is a matching rule, normalized values: {}", attrName, newValues);
@Test public void test140EvaluateExpressionEmployeeTypeEmptyFilter() throws Exception { final String TEST_NAME = "testEvaluateExpressionEmployeeTypeEmptyFilter"; TestUtil.displayTestTitle(TEST_NAME); // GIVEN OperationResult result = new OperationResult(TestFilterExpression.class.getName() + "." + TEST_NAME); Task task = taskManager.createTaskInstance(TEST_NAME); ObjectFilter filter = evaluateExpressionAssertFilter("expression-employeeType-empty-filter.xml", null, EqualFilter.class, task, result); EqualFilter equalFilter = (EqualFilter) filter; AssertJUnit.assertNull("Expected NO values in filter, but found " + equalFilter.getValues(), equalFilter.getValues()); executeFilter(filter, 4, task, result); }
@Test public void test150EvaluateExpressionEmployeeTypeDefaultsNull() throws Exception { final String TEST_NAME = "test150EvaluateExpressionEmployeeTypeDefaultsNull"; TestUtil.displayTestTitle(TEST_NAME); // GIVEN OperationResult result = new OperationResult(TestFilterExpression.class.getName() + "." + TEST_NAME); Task task = taskManager.createTaskInstance(TEST_NAME); ObjectFilter filter = evaluateExpressionAssertFilter("expression-employeeType-filter-defaults.xml", null, EqualFilter.class, task, result); EqualFilter equalFilter = (EqualFilter) filter; AssertJUnit.assertNull("Expected NO values in filter, but found " + equalFilter.getValues(), equalFilter.getValues()); executeFilter(filter, 4, task, result); }
@Test public void test152EvaluateExpressionEmployeeTypeDefaultsCaptain() throws Exception { final String TEST_NAME = "test152EvaluateExpressionEmployeeTypeDefaultsCaptain"; TestUtil.displayTestTitle(TEST_NAME); // GIVEN OperationResult result = new OperationResult(TestFilterExpression.class.getName() + "." + TEST_NAME); Task task = taskManager.createTaskInstance(TEST_NAME); ObjectFilter filter = evaluateExpressionAssertFilter("expression-employeeType-filter-defaults.xml", "CAPTAIN", EqualFilter.class, task, result); EqualFilter equalFilter = (EqualFilter) filter; PrismAsserts.assertValues("Wrong values in filter", equalFilter.getValues(), "CAPTAIN"); executeFilter(filter, 1, task, result); }
EqualFilter<T> eq = (EqualFilter<T>) objectFilter; Collection<Object> convertedValues = convertValues(propName, eq.getValues()); if (convertedValues == null || convertedValues.isEmpty()) { QName propName = valueFilter.getDefinition().getName(); EqualFilter<T> eq = (EqualFilter<T>) objectFilter; List<PrismPropertyValue<T>> values = eq.getValues(); if (values.size() != 1) { throw new SchemaException("Unexpected number of values in filter "+objectFilter);
private static <T extends PrismValue> Collection<T> getValuesFromFilter(ObjectFilter filter, QName itemName, PrismContext prismContext) throws SchemaException { ItemPath propertyPath = ItemName.fromQName(itemName); if (filter instanceof EqualFilter && propertyPath.equivalent(((EqualFilter) filter).getFullPath())) { return ((EqualFilter) filter).getValues(); } else if (filter instanceof RefFilter && propertyPath.equivalent(((RefFilter) filter).getFullPath())) { return (Collection<T>) ((RefFilter) filter).getValues(); } else if (filter instanceof AndFilter) { return getValuesFromFilter(((NaryLogicalFilter) filter).getConditions(), itemName, prismContext); } else if (filter instanceof TypeFilter) { return getValuesFromFilter(((TypeFilter) filter).getFilter(), itemName, prismContext); } else { return null; } }
ItemPath.create(new QName("extension"), new QName("extConnType")), path); PrismPropertyValue filterValue = (PrismPropertyValue) equalFilter.getValues().get(0); assertEquals("Wrong filter value", "org.identityconnectors.ldap.LdapConnector", ((RawType) filterValue.getValue()).getParsedRealValue(String.class).trim());