Skip to content
This repository was archived by the owner on Jan 15, 2022. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -423,11 +423,12 @@ public List<Identity> getIdentitiesByProfileFilter(String identityProvider, Prof
.like("jcr:path", profileHomeNode.getPath() + "[%]/%");

for (String namePart : nameParts) {
if (namePart != "") {
if (!"".equals(namePart)) {
queryBuilder.or().like(queryBuilder.lower(Profile.FIRST_NAME), namePart.toLowerCase() + "%");
queryBuilder.or().like(queryBuilder.lower(Profile.LAST_NAME), namePart.toLowerCase() + "%");
}
}


if (position.length() != 0) {
queryBuilder.and().contains(Profile.POSITION, position);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -320,6 +320,76 @@ public void testFindIdentityByProfileFilter() throws Exception {
final List<Identity> result = identityStorage.getIdentitiesFilterByAlphaBet(providerId, filter, 0, 1);
assertEquals(1, result.size());
}

/**
* Unit Test for SOC-2658 fix: find profile by gender, position, skill
* @throws Exception
*/

public void testGetIdentityByProfileFilterWithoutName() throws Exception {
String providerId = "organization";
String remoteId = "username";

Identity identity = new Identity(providerId, remoteId);
identityStorage.saveIdentity(identity);

Profile profile = new Profile(identity);
profile.setProperty(Profile.FIRST_NAME, "FirstName");
profile.setProperty("position", "developer");
profile.setProperty("skills", "java");
profile.setProperty("gender", "male");

identityStorage.saveProfile(profile);


ProfileFilter filter1 = new ProfileFilter();
//find by position and gender
filter1.setName("");
filter1.setPosition("developer");
filter1.setGender("male");
filter1.setSkills("");
List<Identity> result1 = identityStorage.getIdentitiesByProfileFilter(providerId, filter1, 0, 1);
assertEquals(1, result1.size());

ProfileFilter filter2 = new ProfileFilter();
//find by position
filter2.setName("");
filter2.setPosition("developer");
filter2.setSkills("");
filter2.setGender("");

List<Identity> result2 = identityStorage.getIdentitiesByProfileFilter(providerId, filter2, 0, 1);
assertEquals(1, result2.size());
}

/**
* Unit Test for getIdentitiesByProfileFilter with only name field in ProfileFilter
* @throws Exception
*/
public void testGetIdentitiesFilterByName() throws Exception {
String providerId = "organization";
String remoteId = "username";

Identity identity = new Identity(providerId, remoteId);
identityStorage.saveIdentity(identity);

Profile profile = new Profile(identity);
profile.setProperty(Profile.FIRST_NAME, "FirstName");
profile.setProperty("position", "developer");
profile.setProperty("skills", "java");
profile.setProperty("gender", "male");

identityStorage.saveProfile(profile);

ProfileFilter filter1 = new ProfileFilter();
//find by name
filter1.setName("First");
filter1.setPosition("");
filter1.setGender("");
filter1.setSkills("");
List<Identity> result1 = identityStorage.getIdentitiesByProfileFilter(providerId, filter1, 0, 1);
assertEquals(1, result1.size());
}

public void testFindManyIdentitiesByProfileFilter() throws Exception {
String providerId = "organization";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -365,13 +365,16 @@ public void execute(Event<UIProfileUserSearch> event) throws Exception {
if (!isValidInput(filter)) { // is invalid condition input
uiSearch.setIdentityList(new ArrayList<Identity>());
} else {
if ((filter.getName() == null) || defaultNameVal.equals(filter.getName())) {
filter.setName("");
}
if ((filter.getPosition() == null) || filter.getPosition().equals(defaultPosVal)) {
filter.setPosition("");
}
if ((filter.getSkills() == null) || filter.getSkills().equals(defaultSkillsVal)) {
filter.setSkills("");
}
if (filter.getGender().equals(defaultGenderVal)) {
if ((filter.getGender() == null) || filter.getGender().equals(defaultGenderVal)) {
filter.setGender("");
}

Expand Down