Search in sources :

Example 61 with Group

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);
}
Also used : WorkSummary(org.orcid.jaxb.model.v3.dev1.record.summary.WorkSummary) TransientNonEmptyString(org.orcid.jaxb.model.v3.dev1.common.TransientNonEmptyString) Test(org.junit.Test)

Example 62 with Group

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);
}
Also used : WorkSummary(org.orcid.jaxb.model.v3.dev1.record.summary.WorkSummary) TransientNonEmptyString(org.orcid.jaxb.model.v3.dev1.common.TransientNonEmptyString) Test(org.junit.Test)

Example 63 with Group

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);
}
Also used : WorkSummary(org.orcid.jaxb.model.v3.dev1.record.summary.WorkSummary) TransientNonEmptyString(org.orcid.jaxb.model.v3.dev1.common.TransientNonEmptyString) Test(org.junit.Test)

Example 64 with Group

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;
}
Also used : ClientResponse(com.sun.jersey.api.client.ClientResponse) GroupIdRecord(org.orcid.jaxb.model.v3.dev1.groupid.GroupIdRecord)

Example 65 with Group

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;
}
Also used : GroupIdRecord(org.orcid.jaxb.model.v3.dev1.groupid.GroupIdRecord) ArrayList(java.util.ArrayList) PeerReviewForm(org.orcid.pojo.ajaxForm.PeerReviewForm) PeerReview(org.orcid.jaxb.model.v3.dev1.record.PeerReview) RequestMapping(org.springframework.web.bind.annotation.RequestMapping) ResponseBody(org.springframework.web.bind.annotation.ResponseBody)

Aggregations

Test (org.junit.Test)47 WorkSummary (org.orcid.jaxb.model.v3.dev1.record.summary.WorkSummary)26 WorkGroup (org.orcid.jaxb.model.v3.dev1.record.summary.WorkGroup)18 FundingSummary (org.orcid.jaxb.model.v3.dev1.record.summary.FundingSummary)17 BaseTest (org.orcid.core.BaseTest)16 ExternalID (org.orcid.jaxb.model.v3.dev1.record.ExternalID)15 PeerReviewSummary (org.orcid.jaxb.model.v3.dev1.record.summary.PeerReviewSummary)14 ActivitiesSummary (org.orcid.jaxb.model.v3.dev1.record.summary.ActivitiesSummary)13 PeerReviewGroup (org.orcid.jaxb.model.v3.dev1.record.summary.PeerReviewGroup)13 Works (org.orcid.jaxb.model.v3.dev1.record.summary.Works)13 FundingGroup (org.orcid.jaxb.model.v3.dev1.record.summary.FundingGroup)12 DBUnitTest (org.orcid.test.DBUnitTest)11 ArrayList (java.util.ArrayList)10 Response (javax.ws.rs.core.Response)10 Url (org.orcid.jaxb.model.v3.dev1.common.Url)8 GroupIdRecord (org.orcid.jaxb.model.v3.dev1.groupid.GroupIdRecord)8 GroupableActivity (org.orcid.jaxb.model.v3.dev1.record.GroupableActivity)8 PeerReview (org.orcid.jaxb.model.v3.dev1.record.PeerReview)8 ClientResponse (com.sun.jersey.api.client.ClientResponse)7 TransientNonEmptyString (org.orcid.jaxb.model.v3.dev1.common.TransientNonEmptyString)7