/** * <p> * Finds groups using the IDM specific attributes and group defined attributes. * </p> * * @throws Exception */ @Test public void testFindUsingMultipleParameters() throws Exception { Group group = loadOrCreateGroup("admin", null, true); IdentityManager identityManager = getIdentityManager(); identityManager.update(group); group.setAttribute(new Attribute<String>("someAttribute", "someAttributeValue")); identityManager.update(group); IdentityQuery<Group> query = identityManager.<Group> createQuery(Group.class); query.setParameter(Group.NAME, "admin"); query.setParameter(IdentityType.ATTRIBUTE.byName("someAttribute"), "someAttributeValue"); List<Group> result = query.getResultList(); assertFalse(result.isEmpty()); assertTrue(contains(result, group.getName())); assertEquals(1, result.size()); query = identityManager.<Group> createQuery(Group.class); query.setParameter(Group.NAME, "admin"); query.setParameter(IdentityType.ATTRIBUTE.byName("someAttribute"), "someAttributeValue2"); result = query.getResultList(); assertTrue(result.isEmpty()); }
Group someGroup = loadOrCreateGroup("someGroup", null, true); someGroup.setAttribute(new Attribute<String>("someAttribute", "someAttributeValue")); assertTrue(contains(result, someGroup.getName())); someGroup.setAttribute(new Attribute<String>("someAttribute", "someAttributeValueChanged")); someGroup.setAttribute(new Attribute<String>("someAttribute2", "someAttributeValue2"));
Group someGroup = loadOrCreateGroup("someGroup", null, true); someGroup.setAttribute(new Attribute<String[]>("someAttribute", new String[] { "someAttributeValue1", "someAttributeValue2" })); someGroup.setAttribute(new Attribute<String[]>("someAttribute", new String[] { "someAttributeValue1", "someAttributeValueChanged" })); someGroup.setAttribute(new Attribute<String[]>("someAttribute2", new String[] { "someAttribute2Value1", "someAttribute2Value2" }));