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