use of org.orcid.jaxb.model.v3.dev1.record.Group in project ORCID-Source by ORCID.
the class ActivitiesGroupGenerator_GroupingWorksTest method groupWorks_DontGroupWorksWithoutExtIds_Test.
/**
* Test that two groups without ext ids dont get grouped
*/
@Test
public void groupWorks_DontGroupWorksWithoutExtIds_Test() {
ActivitiesGroupGenerator generator = new ActivitiesGroupGenerator();
Map<String, WorkSummary> works = generateWorks();
// Group the first group
WorkSummary work8 = works.get("work-8");
WorkSummary work9 = works.get("work-9");
generator.group(work8);
generator.group(work9);
List<ActivitiesGroup> groups = generator.getGroups();
assertNotNull(groups);
assertEquals(2, groups.size());
// Check there are two activities in each group
assertEquals(1, groups.get(0).getActivities().size());
assertEquals(1, groups.get(1).getActivities().size());
// Check there are five external ids in each group
assertEquals(0, groups.get(0).getGroupKeys().size());
assertEquals(0, groups.get(1).getGroupKeys().size());
checkActivityIsOnGroups(work8, groups);
checkActivityIsOnGroups(work9, groups);
checkActivitiesDontBelongsToTheSameGroup(groups, work8, work9);
}
use of org.orcid.jaxb.model.v3.dev1.record.Group in project ORCID-Source by ORCID.
the class ActivitiesGroupGenerator_GroupingWorksTest method groupWorks_4GroupsOf1Work_Test.
@Test
public void groupWorks_4GroupsOf1Work_Test() {
ActivitiesGroupGenerator generator = new ActivitiesGroupGenerator();
Map<String, WorkSummary> works = generateWorks();
// Group the first group
// work-1 -> ARG(A), ARG(B), ARG(C)
WorkSummary work1 = works.get("work-1");
generator.group(work1);
// There should be one group, and the ext ids should be A, B and C
List<ActivitiesGroup> groups = generator.getGroups();
assertNotNull(groups);
assertEquals(1, groups.size());
ActivitiesGroup g1 = groups.get(0);
assertNotNull(g1);
assertNotNull(g1.getActivities());
assertEquals(1, g1.getActivities().size());
assertTrue(g1.getActivities().contains(work1));
assertNotNull(g1.getGroupKeys());
assertEquals(3, g1.getGroupKeys().size());
checkExternalIdentifiers(work1, g1);
// Add another work to the groups
// work-5 -> ARG(M), ARG(N), ARG(O)
WorkSummary work5 = works.get("work-5");
generator.group(work5);
// There should be two groups, one for each work
groups = generator.getGroups();
assertNotNull(groups);
assertEquals(2, groups.size());
// There should be one activity in each group
assertEquals(1, groups.get(0).getActivities().size());
assertEquals(1, groups.get(1).getActivities().size());
// There should be 3 ext ids in each group
assertEquals(3, groups.get(0).getGroupKeys().size());
assertEquals(3, groups.get(1).getGroupKeys().size());
// Check work in groups
checkActivityIsOnGroups(work5, groups);
// Add another work to the groups
// work-6 -> ARXIV(A), ARXIV(B), ARXIV(C)
WorkSummary work6 = works.get("work-6");
generator.group(work6);
groups = generator.getGroups();
assertNotNull(groups);
assertEquals(3, groups.size());
// There should be one activity in each group
assertEquals(1, groups.get(0).getActivities().size());
assertEquals(1, groups.get(1).getActivities().size());
assertEquals(1, groups.get(2).getActivities().size());
// There should be 3 ext ids in each group
assertEquals(3, groups.get(0).getGroupKeys().size());
assertEquals(3, groups.get(1).getGroupKeys().size());
assertEquals(3, groups.get(2).getGroupKeys().size());
// Check work in groups
checkActivityIsOnGroups(work6, groups);
// Add another work to the groups
// work-8 -> No external identifiers
WorkSummary work8 = works.get("work-8");
generator.group(work8);
groups = generator.getGroups();
assertNotNull(groups);
assertEquals(4, groups.size());
// There should be one activity in each group
assertEquals(1, groups.get(0).getActivities().size());
assertEquals(1, groups.get(1).getActivities().size());
assertEquals(1, groups.get(2).getActivities().size());
assertEquals(1, groups.get(3).getActivities().size());
// There should be 3 ext ids in each group, except for one group that doesnt have any ext id
boolean work8found = false;
for (int i = 0; i < 4; i++) {
if (groups.get(i).getGroupKeys().size() == 0) {
work8found = true;
} else {
assertEquals(3, groups.get(i).getGroupKeys().size());
}
}
assertTrue("Work without ext ids was not found", work8found);
// Check work in groups
checkActivityIsOnGroups(work8, groups);
}
use of org.orcid.jaxb.model.v3.dev1.record.Group in project ORCID-Source by ORCID.
the class ActivitiesGroupGenerator_GroupingWorksTest method groupWorks_MergeTwoGroups_Test.
/**
* work-1 and work-3 will be in different groups
* then work-2 will go to the same group as work-1
* then work-4 contains ARG(Y) and ARG(B) so, the two groups should be merged
*/
@Test
public void groupWorks_MergeTwoGroups_Test() {
ActivitiesGroupGenerator generator = new ActivitiesGroupGenerator();
Map<String, WorkSummary> works = generateWorks();
// Group the first group
WorkSummary work1 = works.get("work-1");
WorkSummary work2 = works.get("work-2");
WorkSummary work3 = works.get("work-3");
WorkSummary work4 = works.get("work-4");
generator.group(work1);
generator.group(work2);
generator.group(work3);
/**
* At this point there are two groups
* G1 with work1 and work2
* G2 with work3
*/
List<ActivitiesGroup> groups = generator.getGroups();
assertNotNull(groups);
assertEquals(2, groups.size());
checkActivitiesBelongsToTheSameGroup(groups, work1, work2);
checkActivitiesDontBelongsToTheSameGroup(groups, work1, work3);
checkActivitiesDontBelongsToTheSameGroup(groups, work2, work3);
// group work4, which should merge the two groups
generator.group(work4);
groups = generator.getGroups();
assertNotNull(groups);
assertEquals(1, groups.size());
assertEquals(4, groups.get(0).getActivities().size());
assertEquals(9, groups.get(0).getGroupKeys().size());
checkActivityIsOnGroups(work1, groups);
checkActivityIsOnGroups(work2, groups);
checkActivityIsOnGroups(work3, groups);
checkActivityIsOnGroups(work4, groups);
checkActivitiesBelongsToTheSameGroup(groups, work1, work2, work3, work4);
}
use of org.orcid.jaxb.model.v3.dev1.record.Group in project ORCID-Source by ORCID.
the class BlackBoxBaseV3 method createGroupIdsV3.
/**
* Create group ids
*/
public List<GroupIdRecord> createGroupIdsV3() throws JSONException {
// Use the existing ones
if (groupRecords != null && !groupRecords.isEmpty())
return groupRecords;
groupRecords = new ArrayList<GroupIdRecord>();
String token = getClientCredentialsAccessToken(ScopePathType.GROUP_ID_RECORD_UPDATE, getClient1ClientId(), getClient1ClientSecret(), APIRequestType.MEMBER);
GroupIdRecord g1 = new GroupIdRecord();
g1.setDescription("Description");
g1.setGroupId("orcid-generated:01" + System.currentTimeMillis());
g1.setName("Group # 1");
g1.setType("publisher");
GroupIdRecord g2 = new GroupIdRecord();
g2.setDescription("Description");
g2.setGroupId("orcid-generated:02" + System.currentTimeMillis());
g2.setName("Group # 2");
g2.setType("publisher");
ClientResponse r1 = memberV3Dev1ApiClient.createGroupIdRecord(g1, token);
String r1LocationPutCode = r1.getLocation().getPath().replace("/orcid-api-web/v3.0_dev1/group-id-record/", "");
g1.setPutCode(Long.valueOf(r1LocationPutCode));
groupRecords.add(g1);
ClientResponse r2 = memberV3Dev1ApiClient.createGroupIdRecord(g2, token);
String r2LocationPutCode = r2.getLocation().getPath().replace("/orcid-api-web/v3.0_dev1/group-id-record/", "");
g2.setPutCode(Long.valueOf(r2LocationPutCode));
groupRecords.add(g2);
return groupRecords;
}
use of org.orcid.jaxb.model.v3.dev1.record.Group in project ORCID-Source by ORCID.
the class OrcidInfo method getPeerReviewsJson.
@RequestMapping(value = "/{orcid:(?:\\d{4}-){3,}\\d{3}[\\dX]}/peer-reviews.json")
@ResponseBody
public List<PeerReviewForm> getPeerReviewsJson(HttpServletRequest request, @PathVariable("orcid") String orcid, @RequestParam(value = "peerReviewIds") String peerReviewIdsStr) {
Map<String, String> languages = lm.buildLanguageMap(localeManager.getLocale(), false);
List<PeerReviewForm> peerReviews = new ArrayList<PeerReviewForm>();
Map<Long, PeerReview> peerReviewMap = activityManager.pubPeerReviewsMap(orcid);
String[] peerReviewIds = peerReviewIdsStr.split(",");
for (String id : peerReviewIds) {
PeerReview peerReview = peerReviewMap.get(Long.valueOf(id));
validateVisibility(peerReview.getVisibility());
sourceUtils.setSourceName(peerReview);
PeerReviewForm form = PeerReviewForm.valueOf(peerReview);
// Set language name
form.setCountryForDisplay(getMessage(buildInternationalizationKey(CountryIsoEntity.class, peerReview.getOrganization().getAddress().getCountry().name())));
if (!PojoUtil.isEmpty(form.getTranslatedSubjectName())) {
// Set translated title language name
if (!StringUtils.isEmpty(form.getTranslatedSubjectName().getLanguageCode())) {
String languageName = languages.get(form.getTranslatedSubjectName().getLanguageCode());
form.getTranslatedSubjectName().setLanguageName(languageName);
}
}
// the group id
if (form.getGroupId() != null && !PojoUtil.isEmpty(form.getGroupId().getValue())) {
GroupIdRecord groupId = groupIdRecordManager.findByGroupId(form.getGroupId().getValue()).get();
form.setGroupIdPutCode(Text.valueOf(groupId.getPutCode()));
}
peerReviews.add(form);
}
return peerReviews;
}
Aggregations