@Override public void execute(Event<UIMembersPortlet> event) throws Exception { WebuiRequestContext ctx = event.getRequestContext(); UIMembersPortlet uiMembersPortlet = event.getSource(); UIProfileUserSearch uiSearch = uiMembersPortlet.uiSearchMemberOfSpace; String charSearch = ctx.getRequestParameter(OBJECTID); ResourceBundle resApp = ctx.getApplicationResourceBundle(); String defaultNameVal = resApp.getString(uiSearch.getId() + ".label.name"); String defaultPosVal = resApp.getString(uiSearch.getId() + ".label.position"); String defaultSkillsVal = resApp.getString(uiSearch.getId() + ".label.skills"); ProfileFilter filter = uiSearch.getProfileFilter(); try { uiMembersPortlet.setSelectedChar(charSearch); if (charSearch != null) { // search by alphabet ((UIFormStringInput) uiSearch.getChildById(SEARCH)).setValue(defaultNameVal); ((UIFormStringInput) uiSearch.getChildById(Profile.POSITION)).setValue(defaultPosVal); ((UIFormStringInput) uiSearch.getChildById(Profile.EXPERIENCES_SKILLS)) .setValue(defaultSkillsVal); filter.setName(charSearch); filter.setPosition(""); filter.setSkills(""); filter.setFirstCharacterOfName(charSearch.toCharArray()[0]); if (ALL_FILTER.equals(charSearch)) { filter.setFirstCharacterOfName(EMPTY_CHARACTER); filter.setName(""); } uiSearch.setRawSearchConditional(""); } uiSearch.setProfileFilter(filter); uiSearch.setNewSearch(true); } catch (Exception e) { uiSearch.setIdentityList(new ArrayList<Identity>()); } uiMembersPortlet.loadSearch(); uiMembersPortlet.setLoadAtEnd(false); }
@Override public void execute(Event<UIInvitations> event) throws Exception { UIInvitations uiInvitations = event.getSource(); WebuiRequestContext ctx = event.getRequestContext(); UIProfileUserSearch uiSearch = uiInvitations.uiProfileUserSearch; String charSearch = ctx.getRequestParameter(OBJECTID); ProfileFilter filter = uiInvitations.uiProfileUserSearch.getProfileFilter(); try { uiInvitations.setSelectedChar(charSearch); if (charSearch != null) { // search by alphabet filter.setName(charSearch); filter.setPosition(""); filter.setSkills(""); filter.setFirstCharacterOfName(charSearch.toCharArray()[0]); if (UIProfileUserSearch.ALL_FILTER.equals(charSearch)) { filter.setFirstCharacterOfName(UIProfileUserSearch.EMPTY_CHARACTER); filter.setName(""); } uiSearch.setRawSearchConditional(""); } else if (UIProfileUserSearch.ALL_FILTER.equals(uiSearch.getRawSearchConditional())) { uiInvitations.setSelectedChar(UIProfileUserSearch.ALL_FILTER); } uiSearch.setProfileFilter(filter); uiSearch.setNewSearch(true); uiInvitations.uiProfileUserSearch.setLoadFromSearch(true); } catch (Exception e) { uiSearch.setIdentityList(new ArrayList<Identity>()); } uiInvitations.loadSearch(); uiInvitations.setLoadAtEnd(false); }
/** * Test order {@link IdentityManager#getIdentitiesByProfileFilter(String, ProfileFilter, boolean)} */ public void testOrderOfGetIdentitiesByProfileFilter() throws Exception { // Create new users String providerId = "organization"; String[] FirstNameList = {"John", "Bob", "Alain"}; String[] LastNameList = {"Smith", "Dupond", "Dupond"}; for (int i = 0; i < 3; i++) { String remoteId = "username" + i; Identity identity = new Identity(providerId, remoteId); identityManager.saveIdentity(identity); Profile profile = new Profile(identity); profile.setProperty(Profile.FIRST_NAME, FirstNameList[i]); profile.setProperty(Profile.LAST_NAME, LastNameList[i]); profile.setProperty(Profile.FULL_NAME, FirstNameList[i] + " " + LastNameList[i]); profile.setProperty(Profile.POSITION, "developer"); profile.setProperty(Profile.GENDER, "male"); identityManager.saveProfile(profile); identity.setProfile(profile); tearDownIdentityList.add(identity); } ProfileFilter pf = new ProfileFilter(); ListAccess<Identity> idsListAccess = null; // Test order by last name pf.setFirstCharacterOfName('D'); idsListAccess = identityManager.getIdentitiesByProfileFilter(providerId, pf, false); assertNotNull(idsListAccess); assertEquals(2, idsListAccess.getSize()); assertEquals("Alain Dupond", idsListAccess.load(0, 20)[0].getProfile().getFullName()); assertEquals("Bob Dupond", idsListAccess.load(0, 20)[1].getProfile().getFullName()); pf = new ProfileFilter(); idsListAccess = identityManager.getIdentitiesByProfileFilter(providerId, pf, false); assertNotNull(idsListAccess); assertEquals(3, idsListAccess.getSize()); assertEquals("Alain Dupond", idsListAccess.load(0, 20)[0].getProfile().getFullName()); assertEquals("Bob Dupond", idsListAccess.load(0, 20)[1].getProfile().getFullName()); assertEquals("John Smith", idsListAccess.load(0, 20)[2].getProfile().getFullName()); // Test order by first name if last name is equal Identity[] identityArray = idsListAccess.load(0, 2); assertEquals(tearDownIdentityList.get(2).getId(), identityArray[0].getId()); }
/** Test {@link IdentityManager#getIdentitiesByProfileFilter(String, ProfileFilter, boolean)} */ public void testGetIdentitiesByProfileFilter() throws Exception { String providerId = OrganizationIdentityProvider.NAME; populateIdentities(5, true); ProfileFilter pf = new ProfileFilter(); ListAccess<Identity> idsListAccess = null; { // Test cases with name of profile. // Filter identity by first character. pf.setFirstCharacterOfName('F'); idsListAccess = identityManager.getIdentitiesByProfileFilter(providerId, pf, false); assertNotNull(idsListAccess); assertEquals(0, idsListAccess.getSize()); pf.setFirstCharacterOfName('L'); idsListAccess = identityManager.getIdentitiesByProfileFilter(providerId, pf, false); assertNotNull(idsListAccess); assertEquals(5, idsListAccess.getSize()); // Filter identity by name. pf.setFirstCharacterOfName('\u0000'); pf.setName("FirstName"); idsListAccess = identityManager.getIdentitiesByProfileFilter(providerId, pf, false); assertNotNull(idsListAccess); assertEquals(5, idsListAccess.getSize()); // pf.setName("FirstName1"); idsListAccess = identityManager.getIdentitiesByProfileFilter(providerId, pf, false); assertNotNull(idsListAccess); assertEquals(1, idsListAccess.getSize()); // pf.setName(""); idsListAccess = identityManager.getIdentitiesByProfileFilter(providerId, pf, false); assertNotNull(idsListAccess); assertEquals(5, idsListAccess.getSize()); // pf.setName("*"); idsListAccess = identityManager.getIdentitiesByProfileFilter(providerId, pf, false); assertNotNull(idsListAccess); assertEquals(5, idsListAccess.getSize()); // pf.setName("n%me"); idsListAccess = identityManager.getIdentitiesByProfileFilter(providerId, pf, false); assertNotNull(idsListAccess); assertEquals(5, idsListAccess.getSize()); // pf.setName("n*me"); idsListAccess = identityManager.getIdentitiesByProfileFilter(providerId, pf, false); assertNotNull(idsListAccess); assertEquals(5, idsListAccess.getSize()); // pf.setName("%me"); idsListAccess = identityManager.getIdentitiesByProfileFilter(providerId, pf, false); assertNotNull(idsListAccess); assertEquals(5, idsListAccess.getSize()); // pf.setName("%name%"); idsListAccess = identityManager.getIdentitiesByProfileFilter(providerId, pf, false); assertNotNull(idsListAccess); assertEquals(5, idsListAccess.getSize()); // pf.setName("n%me"); idsListAccess = identityManager.getIdentitiesByProfileFilter(providerId, pf, false); assertNotNull(idsListAccess); assertEquals(5, idsListAccess.getSize()); // pf.setName("fir%n%me"); idsListAccess = identityManager.getIdentitiesByProfileFilter(providerId, pf, false); assertNotNull(idsListAccess); assertEquals(5, idsListAccess.getSize()); // pf.setName("noname"); idsListAccess = identityManager.getIdentitiesByProfileFilter(providerId, pf, false); assertNotNull(idsListAccess); assertEquals(0, idsListAccess.getSize()); } { // Test cases with position of profile. pf.setName(""); pf.setPosition("dev"); idsListAccess = identityManager.getIdentitiesByProfileFilter(providerId, pf, false); assertNotNull(idsListAccess); assertEquals(5, idsListAccess.getSize()); // pf.setPosition("d%v"); idsListAccess = identityManager.getIdentitiesByProfileFilter(providerId, pf, false); assertNotNull(idsListAccess); assertEquals(5, idsListAccess.getSize()); // pf.setPosition("test"); idsListAccess = identityManager.getIdentitiesByProfileFilter(providerId, pf, false); assertNotNull(idsListAccess); assertEquals(0, idsListAccess.getSize()); } { // Test cases with gender of profile. pf.setPosition(""); idsListAccess = identityManager.getIdentitiesByProfileFilter(providerId, pf, false); assertNotNull(idsListAccess); assertEquals(5, idsListAccess.getSize()); idsListAccess = identityManager.getIdentitiesByProfileFilter(providerId, pf, false); assertNotNull(idsListAccess); } { // Other test cases pf.setName("n**me%"); pf.setPosition("*%"); idsListAccess = identityManager.getIdentitiesByProfileFilter(providerId, pf, false); assertNotNull(idsListAccess); assertEquals(5, idsListAccess.getSize()); // pf.setName("noname"); pf.setPosition("*%"); idsListAccess = identityManager.getIdentitiesByProfileFilter(providerId, pf, false); assertNotNull(idsListAccess); assertEquals(0, idsListAccess.getSize()); } // Tests with the case: add new identity and delete it after that to check { ProfileFilter profileFilter = new ProfileFilter(); ListAccess<Identity> identityListAccess = identityManager.getIdentitiesByProfileFilter("organization", profileFilter, false); assertEquals(5, identityListAccess.getSize()); // Identity testIdentity = populateIdentity("test", false); identityListAccess = identityManager.getIdentitiesByProfileFilter("organization", profileFilter, false); assertEquals(6, identityListAccess.getSize()); // identityManager.deleteIdentity(testIdentity); identityListAccess = identityManager.getIdentitiesByProfileFilter("organization", profileFilter, false); assertEquals(5, identityListAccess.getSize()); } // Test with excluded identity list { Identity excludeIdentity = identityManager.getOrCreateIdentity( OrganizationIdentityProvider.NAME, "username1", false); List<Identity> excludedIdentities = new ArrayList<Identity>(); excludedIdentities.add(excludeIdentity); ProfileFilter profileFilter = new ProfileFilter(); profileFilter.setExcludedIdentityList(excludedIdentities); ListAccess<Identity> identityListAccess = identityManager.getIdentitiesByProfileFilter( OrganizationIdentityProvider.NAME, profileFilter, false); assertEquals(4, identityListAccess.getSize()); Identity[] identityArray = identityListAccess.load(0, 3); assertEquals(3, identityArray.length); } }