@Test public void testAccountQueryCompositeOr() throws Exception { displayTestTitle("testAccountQueryCompositeOr"); SearchFilterType filterType = unmarshalFilter(FILTER_OR_COMPOSITE); ObjectQuery query = toObjectQuery(ShadowType.class, filterType); displayQuery(query); assertNotNull(query); ObjectFilter filter = query.getFilter(); PrismAsserts.assertOrFilter(filter, 4); ObjectFilter first = getFilterCondition(filter, 0); PrismAsserts.assertEqualsFilter(first, ShadowType.F_INTENT, DOMUtil.XSD_STRING, ShadowType.F_INTENT); PrismAsserts.assertEqualsFilterValue((EqualFilter) first, "some account type"); ObjectFilter second = getFilterCondition(filter, 1); PrismAsserts.assertEqualsFilter(second, fooBlaDefinition, DOMUtil.XSD_STRING, ItemPath.create( ShadowType.F_ATTRIBUTES, fooBlaDefinition)); PrismAsserts.assertEqualsFilterValue((EqualFilter) second, "foo value"); ObjectFilter third = getFilterCondition(filter, 2); PrismAsserts.assertEqualsFilter(third, stringExtensionDefinition, DOMUtil.XSD_STRING, ItemPath.create( ShadowType.F_EXTENSION, stringExtensionDefinition)); PrismAsserts.assertEqualsFilterValue((EqualFilter) third, "uid=test,dc=example,dc=com"); ObjectFilter forth = getFilterCondition(filter, 3); PrismAsserts.assertRefFilter(forth, ShadowType.F_RESOURCE_REF, ObjectReferenceType.COMPLEX_TYPE, ShadowType.F_RESOURCE_REF); assertRefFilterValue((RefFilter) forth, "d0db5be9-cb93-401f-b6c1-86ffffe4cd5e"); QueryType convertedQueryType = toQueryType(query); LOGGER.info(DOMUtil.serializeDOMToString(convertedQueryType.getFilter().getFilterClauseAsElement(getPrismContext()))); // TODO: add some asserts }
@Test public void testAccountQueryAttributesAndResourceNoNs() throws Exception { displayTestTitle("testAccountQueryAttributesAndResourceNoNs"); SearchFilterType filterType = unmarshalFilter(FILTER_ACCOUNT_ATTRIBUTES_RESOURCE_REF_NO_NS_FILE); ObjectQuery query = toObjectQuery(ShadowType.class, filterType); displayQuery(query); assertNotNull(query); ObjectFilter filter = query.getFilter(); PrismAsserts.assertAndFilter(filter, 2); ObjectFilter first = getFilterCondition(filter, 0); PrismAsserts.assertRefFilter(first, ShadowType.F_RESOURCE_REF, ObjectReferenceType.COMPLEX_TYPE, ShadowType.F_RESOURCE_REF); assertRefFilterValue((RefFilter) first, "aae7be60-df56-11df-8608-0002a5d5c51b"); ObjectFilter second = getFilterCondition(filter, 1); PrismAsserts.assertEqualsFilter(second, ICF_NAME, DOMUtil.XSD_STRING, ItemPath.create("attributes", "name")); //PrismAsserts.assertEqualsFilterValue((EqualFilter) second, "uid=jbond,ou=People,dc=example,dc=com"); QueryType convertedQueryType = toQueryType(query); System.out.println(DOMUtil.serializeDOMToString(convertedQueryType.getFilter().getFilterClauseAsElement(getPrismContext()))); // TODO: add some asserts }
@Test public void testGenericQuery() throws Exception { displayTestTitle("testGenericQuery"); SearchFilterType queryType = unmarshalFilter(FILTER_AND_GENERIC_FILE); ObjectQuery query = toObjectQuery(GenericObjectType.class, queryType); displayQuery(query); // check parent filter assertNotNull(query); ObjectFilter filter = query.getFilter(); PrismAsserts.assertAndFilter(filter, 2); // check first condition ObjectFilter first = getFilterCondition(filter, 0); PrismAsserts.assertEqualsFilter(first, GenericObjectType.F_NAME, PolyStringType.COMPLEX_TYPE, GenericObjectType.F_NAME); PrismAsserts.assertEqualsFilterValue((EqualFilter) first, createPolyString("generic object")); // check second condition ObjectFilter second = getFilterCondition(filter, 1); PrismAsserts.assertEqualsFilter(second, intExtensionDefinition, DOMUtil.XSD_INT, ItemPath.create( ObjectType.F_EXTENSION, new QName(NS_EXTENSION, "intType"))); PrismAsserts.assertEqualsFilterValue((EqualFilter) second, 123); QueryType convertedQueryType = toQueryType(query); assertNotNull("Re-serialized query is null ", convertedQueryType); assertNotNull("Filter in re-serialized query must not be null.", convertedQueryType.getFilter()); displayQueryType(convertedQueryType); }
@Test public void testAccountQueryAttributesAndResource() throws Exception { displayTestTitle("testAccountQueryAttributesAndResource"); SearchFilterType filterType = unmarshalFilter(FILTER_ACCOUNT_ATTRIBUTES_RESOURCE_REF_FILE); ObjectQuery query = toObjectQuery(ShadowType.class, filterType); displayQuery(query); assertNotNull(query); ObjectFilter filter = query.getFilter(); PrismAsserts.assertAndFilter(filter, 2); ObjectFilter first = getFilterCondition(filter, 0); PrismAsserts.assertRefFilter(first, ShadowType.F_RESOURCE_REF, ObjectReferenceType.COMPLEX_TYPE, ShadowType.F_RESOURCE_REF); assertRefFilterValue((RefFilter) first, "aae7be60-df56-11df-8608-0002a5d5c51b"); ObjectFilter second = getFilterCondition(filter, 1); PrismAsserts.assertEqualsFilter(second, ICF_NAME, DOMUtil.XSD_STRING, ItemPath.create(ShadowType.F_ATTRIBUTES, ICF_NAME)); PrismAsserts.assertEqualsFilterValue((EqualFilter) second, "uid=jbond,ou=People,dc=example,dc=com"); QueryType convertedQueryType = toQueryType(query); LOGGER.info(DOMUtil.serializeDOMToString(convertedQueryType.getFilter().getFilterClauseAsElement(getPrismContext()))); // TODO: add some asserts }
PrismAsserts.assertAndFilter(filter, 2); ObjectFilter first = getFilterCondition(filter, 0); PrismAsserts.assertEqualsFilter(first, UserType.F_GIVEN_NAME, DOMUtil.XSD_STRING, ItemPath.create(new QName(null,UserType.F_GIVEN_NAME.getLocalPart()))); PrismAsserts.assertEqualsFilterValue((EqualFilter) first, "Jack"); ObjectFilter second = getFilterCondition(filter, 1); PrismAsserts.assertEqualsFilter(second, UserType.F_LOCALITY, DOMUtil.XSD_STRING, ItemPath.create(new QName(null,UserType.F_LOCALITY.getLocalPart())));
PrismAsserts.assertAndFilter(filter, 2); ObjectFilter first = getFilterCondition(filter, 0); PrismAsserts.assertEqualsFilter(first, ShadowType.F_FAILED_OPERATION_TYPE, FAILED_OPERATION_TYPE_QNAME, ShadowType.F_FAILED_OPERATION_TYPE); PrismAsserts.assertEqualsFilterValue((EqualFilter) first, FailedOperationTypeType.ADD); ObjectFilter second = getFilterCondition(filter, 1); PrismAsserts.assertEqualsFilter(second, ShadowType.F_NAME, PolyStringType.COMPLEX_TYPE, ShadowType.F_NAME); PrismAsserts.assertEqualsFilterValue((EqualFilter) second, createPolyString("someName"));