Search in sources :

Example 61 with Biography

use of org.orcid.jaxb.model.v3.dev1.record.Biography in project ORCID-Source by ORCID.

the class GetMyDataControllerTest method testDownload.

@Test
public void testDownload() throws JAXBException, IOException {
    SecurityContextHolder.getContext().setAuthentication(getAuthentication());
    MockHttpServletResponse response = new MockHttpServletResponse();
    getMyDataController.getMyData(response);
    byte[] content = response.getContentAsByteArray();
    ByteArrayInputStream is = new ByteArrayInputStream(content);
    ZipInputStream zip = new ZipInputStream(is);
    ZipEntry zipEntry = zip.getNextEntry();
    JAXBContext jaxbContext1 = JAXBContext.newInstance(Person.class, Distinction.class, Education.class, Employment.class, InvitedPosition.class, Membership.class, Qualification.class, Service.class, Funding.class, PeerReview.class, Work.class);
    Unmarshaller u = jaxbContext1.createUnmarshaller();
    boolean personFound = false;
    boolean distinctionFound = false;
    boolean educationFound = false;
    boolean employmentFound = false;
    boolean invitedPositionFound = false;
    boolean membershipFound = false;
    boolean qualificationFound = false;
    boolean serviceFound = false;
    boolean fundingFound = false;
    boolean peerReviewFound = false;
    boolean workFound = false;
    while (zipEntry != null) {
        String fileName = zipEntry.getName();
        byte[] buffer = new byte[1024];
        ByteArrayOutputStream out = new ByteArrayOutputStream();
        int len;
        while ((len = zip.read(buffer)) > 0) {
            out.write(buffer, 0, len);
        }
        ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray());
        if (fileName.equals("person.xml")) {
            Person x = (Person) u.unmarshal(in);
            assertNotNull(x);
            assertEquals("Biography", x.getBiography().getContent());
            assertEquals(Visibility.LIMITED, x.getBiography().getVisibility());
            personFound = true;
        } else if (fileName.startsWith("affiliations/distinctions")) {
            assertEquals("affiliations/distinctions/1.xml", fileName);
            Distinction x = (Distinction) u.unmarshal(in);
            assertNotNull(x);
            assertEquals("distinction", x.getDepartmentName());
            assertEquals(Long.valueOf(1), x.getPutCode());
            validateOrg(x);
            distinctionFound = true;
        } else if (fileName.startsWith("affiliations/educations")) {
            assertEquals("affiliations/educations/2.xml", fileName);
            Education x = (Education) u.unmarshal(in);
            assertNotNull(x);
            assertEquals("education", x.getDepartmentName());
            assertEquals(Long.valueOf(2), x.getPutCode());
            validateOrg(x);
            educationFound = true;
        } else if (fileName.startsWith("affiliations/employments")) {
            assertEquals("affiliations/employments/3.xml", fileName);
            Employment x = (Employment) u.unmarshal(in);
            assertNotNull(x);
            assertEquals("employment", x.getDepartmentName());
            assertEquals(Long.valueOf(3), x.getPutCode());
            validateOrg(x);
            employmentFound = true;
        } else if (fileName.startsWith("affiliations/invited_positions")) {
            assertEquals("affiliations/invited_positions/4.xml", fileName);
            InvitedPosition x = (InvitedPosition) u.unmarshal(in);
            assertNotNull(x);
            assertEquals("invited position", x.getDepartmentName());
            assertEquals(Long.valueOf(4), x.getPutCode());
            validateOrg(x);
            invitedPositionFound = true;
        } else if (fileName.startsWith("affiliations/memberships")) {
            assertEquals("affiliations/memberships/5.xml", fileName);
            Membership x = (Membership) u.unmarshal(in);
            assertNotNull(x);
            assertEquals("membership", x.getDepartmentName());
            assertEquals(Long.valueOf(5), x.getPutCode());
            validateOrg(x);
            membershipFound = true;
        } else if (fileName.startsWith("affiliations/qualifications")) {
            assertEquals("affiliations/qualifications/6.xml", fileName);
            Qualification x = (Qualification) u.unmarshal(in);
            assertNotNull(x);
            assertEquals("qualification", x.getDepartmentName());
            assertEquals(Long.valueOf(6), x.getPutCode());
            validateOrg(x);
            qualificationFound = true;
        } else if (fileName.startsWith("affiliations/services")) {
            assertEquals("affiliations/services/7.xml", fileName);
            Service x = (Service) u.unmarshal(in);
            assertNotNull(x);
            assertEquals("service", x.getDepartmentName());
            assertEquals(Long.valueOf(7), x.getPutCode());
            validateOrg(x);
            serviceFound = true;
        } else if (fileName.startsWith("fundings")) {
            assertEquals("fundings/1.xml", fileName);
            Funding x = (Funding) u.unmarshal(in);
            assertNotNull(x);
            assertEquals("title", x.getTitle().getTitle().getContent());
            assertEquals("1000", x.getAmount().getContent());
            assertEquals("$", x.getAmount().getCurrencyCode());
            assertEquals(Long.valueOf(1), x.getPutCode());
            validateOrg(x);
            fundingFound = true;
        } else if (fileName.startsWith("peer_reviews")) {
            assertEquals("peer_reviews/1.xml", fileName);
            PeerReview x = (PeerReview) u.unmarshal(in);
            assertNotNull(x);
            validateOrg(x);
            assertEquals(Long.valueOf(1), x.getPutCode());
            peerReviewFound = true;
        } else if (fileName.startsWith("works")) {
            assertEquals("works/1.xml", fileName);
            Work x = (Work) u.unmarshal(in);
            assertNotNull(x);
            assertEquals(Long.valueOf(1), x.getPutCode());
            workFound = true;
        }
        zipEntry = zip.getNextEntry();
    }
    assertTrue(personFound);
    assertTrue(distinctionFound);
    assertTrue(educationFound);
    assertTrue(employmentFound);
    assertTrue(invitedPositionFound);
    assertTrue(membershipFound);
    assertTrue(qualificationFound);
    assertTrue(serviceFound);
    assertTrue(fundingFound);
    assertTrue(peerReviewFound);
    assertTrue(workFound);
    zip.closeEntry();
    zip.close();
}
Also used : Funding(org.orcid.jaxb.model.v3.dev1.record.Funding) InvitedPosition(org.orcid.jaxb.model.v3.dev1.record.InvitedPosition) ZipEntry(java.util.zip.ZipEntry) Service(org.orcid.jaxb.model.v3.dev1.record.Service) JAXBContext(javax.xml.bind.JAXBContext) ArgumentMatchers.anyString(org.mockito.ArgumentMatchers.anyString) ByteArrayOutputStream(java.io.ByteArrayOutputStream) ZipInputStream(java.util.zip.ZipInputStream) Qualification(org.orcid.jaxb.model.v3.dev1.record.Qualification) ByteArrayInputStream(java.io.ByteArrayInputStream) Education(org.orcid.jaxb.model.v3.dev1.record.Education) Employment(org.orcid.jaxb.model.v3.dev1.record.Employment) Work(org.orcid.jaxb.model.v3.dev1.record.Work) Membership(org.orcid.jaxb.model.v3.dev1.record.Membership) Unmarshaller(javax.xml.bind.Unmarshaller) Person(org.orcid.jaxb.model.v3.dev1.record.Person) Distinction(org.orcid.jaxb.model.v3.dev1.record.Distinction) MockHttpServletResponse(org.springframework.mock.web.MockHttpServletResponse) PeerReview(org.orcid.jaxb.model.v3.dev1.record.PeerReview) Test(org.junit.Test)

Example 62 with Biography

use of org.orcid.jaxb.model.v3.dev1.record.Biography in project ORCID-Source by ORCID.

the class ManageProfileController method getBiographyForm.

@RequestMapping(value = "/biographyForm.json", method = RequestMethod.GET)
@ResponseBody
public BiographyForm getBiographyForm() {
    Biography bio = biographyManager.getBiography(getCurrentUserOrcid());
    BiographyForm form = BiographyForm.valueOf(bio);
    if (form.getVisibility() == null) {
        ProfileEntity profile = profileEntityCacheManager.retrieve(getCurrentUserOrcid());
        form.setVisibility(Visibility.valueOf(profile.getActivitiesVisibilityDefault()));
    }
    return form;
}
Also used : BiographyForm(org.orcid.pojo.ajaxForm.BiographyForm) Biography(org.orcid.jaxb.model.v3.dev1.record.Biography) ProfileEntity(org.orcid.persistence.jpa.entities.ProfileEntity) RequestMapping(org.springframework.web.bind.annotation.RequestMapping) ResponseBody(org.springframework.web.bind.annotation.ResponseBody)

Example 63 with Biography

use of org.orcid.jaxb.model.v3.dev1.record.Biography in project ORCID-Source by ORCID.

the class ManageProfileController method setBiographyFormJson.

@RequestMapping(value = "/biographyForm.json", method = RequestMethod.POST)
@ResponseBody
public BiographyForm setBiographyFormJson(@RequestBody BiographyForm bf) {
    bf.setErrors(new ArrayList<String>());
    if (bf.getBiography() != null) {
        validateBiography(bf.getBiography());
        // Validate visibility is not null
        validateVisibility(bf);
        copyErrors(bf.getBiography(), bf);
        copyErrors(bf.getVisibility(), bf);
        if (bf.getErrors().size() > 0)
            return bf;
        Biography bio = new Biography();
        if (bf.getBiography() != null) {
            bio.setContent(bf.getBiography().getValue());
        }
        if (bf.getVisibility() != null && bf.getVisibility().getVisibility() != null) {
            org.orcid.jaxb.model.v3.dev1.common.Visibility v = org.orcid.jaxb.model.v3.dev1.common.Visibility.fromValue(bf.getVisibility().getVisibility().value());
            bio.setVisibility(v);
        }
        String orcid = getCurrentUserOrcid();
        if (biographyManager.exists(orcid)) {
            biographyManager.updateBiography(orcid, bio);
        } else {
            biographyManager.createBiography(orcid, bio);
        }
    }
    return bf;
}
Also used : Biography(org.orcid.jaxb.model.v3.dev1.record.Biography) RequestMapping(org.springframework.web.bind.annotation.RequestMapping) ResponseBody(org.springframework.web.bind.annotation.ResponseBody)

Example 64 with Biography

use of org.orcid.jaxb.model.v3.dev1.record.Biography in project ORCID-Source by ORCID.

the class OrcidSecurityManager_FullRecordTest method testRecord_When_AllPrivate_NoSource_ReadLimitedToken.

@Test
public void testRecord_When_AllPrivate_NoSource_ReadLimitedToken() {
    SecurityContextTestUtils.setUpSecurityContext(ORCID_1, CLIENT_1, ScopePathType.READ_LIMITED);
    Name name = createName(Visibility.PRIVATE);
    Biography bio = createBiography(Visibility.PRIVATE);
    Address a1 = createAddress(Visibility.PRIVATE, CLIENT_2);
    Address a2 = createAddress(Visibility.PRIVATE, CLIENT_2);
    Address a3 = createAddress(Visibility.PRIVATE, CLIENT_2);
    Addresses addresses = new Addresses();
    addresses.setAddress(new ArrayList<Address>(Arrays.asList(a1, a2, a3)));
    Email e1 = createEmail(Visibility.PRIVATE, CLIENT_2);
    Email e2 = createEmail(Visibility.PRIVATE, CLIENT_2);
    Email e3 = createEmail(Visibility.PRIVATE, CLIENT_2);
    Emails emails = new Emails();
    emails.setEmails(new ArrayList<Email>(Arrays.asList(e1, e2, e3)));
    Keyword k1 = createKeyword(Visibility.PRIVATE, CLIENT_2);
    Keyword k2 = createKeyword(Visibility.PRIVATE, CLIENT_2);
    Keyword k3 = createKeyword(Visibility.PRIVATE, CLIENT_2);
    Keywords keywords = new Keywords();
    keywords.setKeywords(new ArrayList<Keyword>(Arrays.asList(k1, k2, k3)));
    OtherName o1 = createOtherName(Visibility.PRIVATE, CLIENT_2);
    OtherName o2 = createOtherName(Visibility.PRIVATE, CLIENT_2);
    OtherName o3 = createOtherName(Visibility.PRIVATE, CLIENT_2);
    OtherNames otherNames = new OtherNames();
    otherNames.setOtherNames(new ArrayList<OtherName>(Arrays.asList(o1, o2, o3)));
    PersonExternalIdentifier ext1 = createPersonExternalIdentifier(Visibility.PRIVATE, CLIENT_2);
    PersonExternalIdentifier ext2 = createPersonExternalIdentifier(Visibility.PRIVATE, CLIENT_2);
    PersonExternalIdentifier ext3 = createPersonExternalIdentifier(Visibility.PRIVATE, CLIENT_2);
    PersonExternalIdentifiers extIds = new PersonExternalIdentifiers();
    extIds.setExternalIdentifiers(new ArrayList<PersonExternalIdentifier>(Arrays.asList(ext1, ext2, ext3)));
    ResearcherUrl r1 = createResearcherUrl(Visibility.PRIVATE, CLIENT_2);
    ResearcherUrl r2 = createResearcherUrl(Visibility.PRIVATE, CLIENT_2);
    ResearcherUrl r3 = createResearcherUrl(Visibility.PRIVATE, CLIENT_2);
    ResearcherUrls researcherUrls = new ResearcherUrls();
    researcherUrls.setResearcherUrls(new ArrayList<ResearcherUrl>(Arrays.asList(r1, r2, r3)));
    EducationSummary edu1 = createEducationSummary(Visibility.PRIVATE, CLIENT_2);
    EducationSummary edu2 = createEducationSummary(Visibility.PRIVATE, CLIENT_2);
    EducationSummary edu3 = createEducationSummary(Visibility.PRIVATE, CLIENT_2);
    EmploymentSummary em1 = createEmploymentSummary(Visibility.PRIVATE, CLIENT_2);
    EmploymentSummary em2 = createEmploymentSummary(Visibility.PRIVATE, CLIENT_2);
    EmploymentSummary em3 = createEmploymentSummary(Visibility.PRIVATE, CLIENT_2);
    FundingSummary f1 = createFundingSummary(Visibility.PRIVATE, CLIENT_2, EXTID_1);
    FundingSummary f2 = createFundingSummary(Visibility.PRIVATE, CLIENT_2, EXTID_2);
    FundingSummary f3 = createFundingSummary(Visibility.PRIVATE, CLIENT_2, EXTID_3);
    PeerReviewSummary p1 = createPeerReviewSummary(Visibility.PRIVATE, CLIENT_2, EXTID_1);
    PeerReviewSummary p2 = createPeerReviewSummary(Visibility.PRIVATE, CLIENT_2, EXTID_2);
    PeerReviewSummary p3 = createPeerReviewSummary(Visibility.PRIVATE, CLIENT_2, EXTID_3);
    WorkSummary w1 = createWorkSummary(Visibility.PRIVATE, CLIENT_2, EXTID_1);
    WorkSummary w2 = createWorkSummary(Visibility.PRIVATE, CLIENT_2, EXTID_2);
    WorkSummary w3 = createWorkSummary(Visibility.PRIVATE, CLIENT_2, EXTID_3);
    DistinctionSummary d1 = createDistinctionSummary(Visibility.PRIVATE, CLIENT_2);
    DistinctionSummary d2 = createDistinctionSummary(Visibility.PRIVATE, CLIENT_2);
    DistinctionSummary d3 = createDistinctionSummary(Visibility.PRIVATE, CLIENT_2);
    InvitedPositionSummary i1 = createInvitedPositionSummary(Visibility.PRIVATE, CLIENT_2);
    InvitedPositionSummary i2 = createInvitedPositionSummary(Visibility.PRIVATE, CLIENT_2);
    InvitedPositionSummary i3 = createInvitedPositionSummary(Visibility.PRIVATE, CLIENT_2);
    MembershipSummary m1 = createMembershipSummary(Visibility.PRIVATE, CLIENT_2);
    MembershipSummary m2 = createMembershipSummary(Visibility.PRIVATE, CLIENT_2);
    MembershipSummary m3 = createMembershipSummary(Visibility.PRIVATE, CLIENT_2);
    QualificationSummary q1 = createQualificationSummary(Visibility.PRIVATE, CLIENT_2);
    QualificationSummary q2 = createQualificationSummary(Visibility.PRIVATE, CLIENT_2);
    QualificationSummary q3 = createQualificationSummary(Visibility.PRIVATE, CLIENT_2);
    ServiceSummary s1 = createServiceSummary(Visibility.PRIVATE, CLIENT_2);
    ServiceSummary s2 = createServiceSummary(Visibility.PRIVATE, CLIENT_2);
    ServiceSummary s3 = createServiceSummary(Visibility.PRIVATE, CLIENT_2);
    ActivitiesSummary as = new ActivitiesSummary();
    as.setEducations(createEducations(edu1, edu2, edu3));
    as.setEmployments(createEmployments(em1, em2, em3));
    as.setFundings(createFundings(f1, f2, f3));
    as.setPeerReviews(createPeerReviews(p1, p2, p3));
    as.setWorks(createWorks(w1, w2, w3));
    as.setDistinctions(createDistinctions(d1, d2, d3));
    as.setInvitedPositions(createInvitedPositions(i1, i2, i3));
    as.setMemberships(createMemberships(m1, m2, m3));
    as.setQualifications(createQualifications(q1, q2, q3));
    as.setServices(createServices(s1, s2, s3));
    Person p = new Person();
    p.setBiography(bio);
    p.setName(name);
    p.setAddresses(addresses);
    p.setEmails(emails);
    p.setExternalIdentifiers(extIds);
    p.setKeywords(keywords);
    p.setOtherNames(otherNames);
    p.setResearcherUrls(researcherUrls);
    Record record = new Record();
    record.setActivitiesSummary(as);
    record.setPerson(p);
    orcidSecurityManager.checkAndFilter(ORCID_1, record);
    assertNotNull(record);
    // Check person
    assertNull(p.getName());
    assertNull(p.getBiography());
    // Check addresses
    assertEquals(0, p.getAddresses().getAddress().size());
    // Check emails
    assertEquals(0, p.getEmails().getEmails().size());
    // Check ext ids
    assertEquals(0, p.getExternalIdentifiers().getExternalIdentifiers().size());
    // Check keywords
    assertEquals(0, p.getKeywords().getKeywords().size());
    // Check other names
    assertEquals(0, p.getOtherNames().getOtherNames().size());
    // Check researcher urls
    assertEquals(0, p.getResearcherUrls().getResearcherUrls().size());
    // Check activities
    assertNotNull(as);
    // Check distinctions
    assertEquals(0, as.getDistinctions().getSummaries().size());
    // Check invited positions
    assertEquals(0, as.getInvitedPositions().getSummaries().size());
    // Check memberships
    assertEquals(0, as.getMemberships().getSummaries().size());
    // Check qualifications
    assertEquals(0, as.getQualifications().getSummaries().size());
    // Check services
    assertEquals(0, as.getServices().getSummaries().size());
    // Check educations
    assertEquals(0, as.getEducations().getSummaries().size());
    // Check employments
    assertEquals(0, as.getEmployments().getSummaries().size());
    // Check fundings
    assertEquals(0, as.getFundings().getFundingGroup().size());
    // Check peer reviews
    assertEquals(0, as.getPeerReviews().getPeerReviewGroup().size());
    // Check works
    assertEquals(0, as.getWorks().getWorkGroup().size());
}
Also used : Email(org.orcid.jaxb.model.v3.dev1.record.Email) Keywords(org.orcid.jaxb.model.v3.dev1.record.Keywords) Address(org.orcid.jaxb.model.v3.dev1.record.Address) OtherNames(org.orcid.jaxb.model.v3.dev1.record.OtherNames) OtherName(org.orcid.jaxb.model.v3.dev1.record.OtherName) Name(org.orcid.jaxb.model.v3.dev1.record.Name) ActivitiesSummary(org.orcid.jaxb.model.v3.dev1.record.summary.ActivitiesSummary) Addresses(org.orcid.jaxb.model.v3.dev1.record.Addresses) WorkSummary(org.orcid.jaxb.model.v3.dev1.record.summary.WorkSummary) Biography(org.orcid.jaxb.model.v3.dev1.record.Biography) FundingSummary(org.orcid.jaxb.model.v3.dev1.record.summary.FundingSummary) ResearcherUrls(org.orcid.jaxb.model.v3.dev1.record.ResearcherUrls) DistinctionSummary(org.orcid.jaxb.model.v3.dev1.record.summary.DistinctionSummary) ResearcherUrl(org.orcid.jaxb.model.v3.dev1.record.ResearcherUrl) Record(org.orcid.jaxb.model.v3.dev1.record.Record) Emails(org.orcid.jaxb.model.v3.dev1.record.Emails) ServiceSummary(org.orcid.jaxb.model.v3.dev1.record.summary.ServiceSummary) Keyword(org.orcid.jaxb.model.v3.dev1.record.Keyword) OtherName(org.orcid.jaxb.model.v3.dev1.record.OtherName) PersonExternalIdentifier(org.orcid.jaxb.model.v3.dev1.record.PersonExternalIdentifier) InvitedPositionSummary(org.orcid.jaxb.model.v3.dev1.record.summary.InvitedPositionSummary) QualificationSummary(org.orcid.jaxb.model.v3.dev1.record.summary.QualificationSummary) PersonExternalIdentifiers(org.orcid.jaxb.model.v3.dev1.record.PersonExternalIdentifiers) EducationSummary(org.orcid.jaxb.model.v3.dev1.record.summary.EducationSummary) PeerReviewSummary(org.orcid.jaxb.model.v3.dev1.record.summary.PeerReviewSummary) EmploymentSummary(org.orcid.jaxb.model.v3.dev1.record.summary.EmploymentSummary) MembershipSummary(org.orcid.jaxb.model.v3.dev1.record.summary.MembershipSummary) Person(org.orcid.jaxb.model.v3.dev1.record.Person) Test(org.junit.Test)

Example 65 with Biography

use of org.orcid.jaxb.model.v3.dev1.record.Biography in project ORCID-Source by ORCID.

the class OrcidSecurityManager_FullRecordTest method testRecord_When_SomeLimited_ReadPublicToken.

@Test
public void testRecord_When_SomeLimited_ReadPublicToken() {
    SecurityContextTestUtils.setUpSecurityContext(ORCID_1, CLIENT_1, ScopePathType.READ_PUBLIC);
    Name name = createName(Visibility.PUBLIC);
    Biography bio = createBiography(Visibility.LIMITED);
    Address a1 = createAddress(Visibility.PUBLIC, CLIENT_2);
    Address a2 = createAddress(Visibility.LIMITED, CLIENT_2);
    Address a3 = createAddress(Visibility.PUBLIC, CLIENT_2);
    Addresses addresses = new Addresses();
    addresses.setAddress(new ArrayList<Address>(Arrays.asList(a1, a2, a3)));
    Email e1 = createEmail(Visibility.PUBLIC, CLIENT_2);
    Email e2 = createEmail(Visibility.LIMITED, CLIENT_2);
    Email e3 = createEmail(Visibility.PUBLIC, CLIENT_2);
    Emails emails = new Emails();
    emails.setEmails(new ArrayList<Email>(Arrays.asList(e1, e2, e3)));
    Keyword k1 = createKeyword(Visibility.PUBLIC, CLIENT_2);
    Keyword k2 = createKeyword(Visibility.LIMITED, CLIENT_2);
    Keyword k3 = createKeyword(Visibility.PUBLIC, CLIENT_2);
    Keywords keywords = new Keywords();
    keywords.setKeywords(new ArrayList<Keyword>(Arrays.asList(k1, k2, k3)));
    OtherName o1 = createOtherName(Visibility.PUBLIC, CLIENT_2);
    OtherName o2 = createOtherName(Visibility.LIMITED, CLIENT_2);
    OtherName o3 = createOtherName(Visibility.PUBLIC, CLIENT_2);
    OtherNames otherNames = new OtherNames();
    otherNames.setOtherNames(new ArrayList<OtherName>(Arrays.asList(o1, o2, o3)));
    PersonExternalIdentifier ext1 = createPersonExternalIdentifier(Visibility.PUBLIC, CLIENT_2);
    PersonExternalIdentifier ext2 = createPersonExternalIdentifier(Visibility.LIMITED, CLIENT_2);
    PersonExternalIdentifier ext3 = createPersonExternalIdentifier(Visibility.PUBLIC, CLIENT_2);
    PersonExternalIdentifiers extIds = new PersonExternalIdentifiers();
    extIds.setExternalIdentifiers(new ArrayList<PersonExternalIdentifier>(Arrays.asList(ext1, ext2, ext3)));
    ResearcherUrl r1 = createResearcherUrl(Visibility.PUBLIC, CLIENT_2);
    ResearcherUrl r2 = createResearcherUrl(Visibility.LIMITED, CLIENT_2);
    ResearcherUrl r3 = createResearcherUrl(Visibility.PUBLIC, CLIENT_2);
    ResearcherUrls researcherUrls = new ResearcherUrls();
    researcherUrls.setResearcherUrls(new ArrayList<ResearcherUrl>(Arrays.asList(r1, r2, r3)));
    EducationSummary edu1 = createEducationSummary(Visibility.PUBLIC, CLIENT_2);
    EducationSummary edu2 = createEducationSummary(Visibility.LIMITED, CLIENT_2);
    EducationSummary edu3 = createEducationSummary(Visibility.PUBLIC, CLIENT_2);
    EmploymentSummary em1 = createEmploymentSummary(Visibility.PUBLIC, CLIENT_2);
    EmploymentSummary em2 = createEmploymentSummary(Visibility.LIMITED, CLIENT_2);
    EmploymentSummary em3 = createEmploymentSummary(Visibility.PUBLIC, CLIENT_2);
    FundingSummary f1 = createFundingSummary(Visibility.PUBLIC, CLIENT_2, EXTID_1);
    FundingSummary f2 = createFundingSummary(Visibility.LIMITED, CLIENT_2, EXTID_2);
    FundingSummary f3 = createFundingSummary(Visibility.PUBLIC, CLIENT_2, EXTID_3);
    PeerReviewSummary p1 = createPeerReviewSummary(Visibility.PUBLIC, CLIENT_2, EXTID_1);
    PeerReviewSummary p2 = createPeerReviewSummary(Visibility.LIMITED, CLIENT_2, EXTID_2);
    PeerReviewSummary p3 = createPeerReviewSummary(Visibility.PUBLIC, CLIENT_2, EXTID_3);
    WorkSummary w1 = createWorkSummary(Visibility.PUBLIC, CLIENT_2, EXTID_1);
    WorkSummary w2 = createWorkSummary(Visibility.LIMITED, CLIENT_2, EXTID_2);
    WorkSummary w3 = createWorkSummary(Visibility.PUBLIC, CLIENT_2, EXTID_3);
    DistinctionSummary d1 = createDistinctionSummary(Visibility.PUBLIC, CLIENT_2);
    DistinctionSummary d2 = createDistinctionSummary(Visibility.LIMITED, CLIENT_2);
    DistinctionSummary d3 = createDistinctionSummary(Visibility.PUBLIC, CLIENT_2);
    InvitedPositionSummary i1 = createInvitedPositionSummary(Visibility.PUBLIC, CLIENT_2);
    InvitedPositionSummary i2 = createInvitedPositionSummary(Visibility.LIMITED, CLIENT_2);
    InvitedPositionSummary i3 = createInvitedPositionSummary(Visibility.PUBLIC, CLIENT_2);
    MembershipSummary m1 = createMembershipSummary(Visibility.PUBLIC, CLIENT_2);
    MembershipSummary m2 = createMembershipSummary(Visibility.LIMITED, CLIENT_2);
    MembershipSummary m3 = createMembershipSummary(Visibility.PUBLIC, CLIENT_2);
    QualificationSummary q1 = createQualificationSummary(Visibility.PUBLIC, CLIENT_2);
    QualificationSummary q2 = createQualificationSummary(Visibility.LIMITED, CLIENT_2);
    QualificationSummary q3 = createQualificationSummary(Visibility.PUBLIC, CLIENT_2);
    ServiceSummary s1 = createServiceSummary(Visibility.PUBLIC, CLIENT_2);
    ServiceSummary s2 = createServiceSummary(Visibility.LIMITED, CLIENT_2);
    ServiceSummary s3 = createServiceSummary(Visibility.PUBLIC, CLIENT_2);
    ActivitiesSummary as = new ActivitiesSummary();
    as.setEducations(createEducations(edu1, edu2, edu3));
    as.setEmployments(createEmployments(em1, em2, em3));
    as.setFundings(createFundings(f1, f2, f3));
    as.setPeerReviews(createPeerReviews(p1, p2, p3));
    as.setWorks(createWorks(w1, w2, w3));
    as.setDistinctions(createDistinctions(d1, d2, d3));
    as.setInvitedPositions(createInvitedPositions(i1, i2, i3));
    as.setMemberships(createMemberships(m1, m2, m3));
    as.setQualifications(createQualifications(q1, q2, q3));
    as.setServices(createServices(s1, s2, s3));
    Person p = new Person();
    p.setBiography(bio);
    p.setName(name);
    p.setAddresses(addresses);
    p.setEmails(emails);
    p.setExternalIdentifiers(extIds);
    p.setKeywords(keywords);
    p.setOtherNames(otherNames);
    p.setResearcherUrls(researcherUrls);
    Record record = new Record();
    record.setActivitiesSummary(as);
    record.setPerson(p);
    orcidSecurityManager.checkAndFilter(ORCID_1, record);
    assertNotNull(record);
    // Check person
    assertEquals(name, p.getName());
    assertNull(p.getBiography());
    // Check addresses
    assertEquals(2, p.getAddresses().getAddress().size());
    assertTrue(p.getAddresses().getAddress().contains(a1));
    assertFalse(p.getAddresses().getAddress().contains(a2));
    assertTrue(p.getAddresses().getAddress().contains(a3));
    // Check emails
    assertEquals(2, p.getEmails().getEmails().size());
    assertTrue(p.getEmails().getEmails().contains(e1));
    assertFalse(p.getEmails().getEmails().contains(e2));
    assertTrue(p.getEmails().getEmails().contains(e3));
    // Check ext ids
    assertEquals(2, p.getExternalIdentifiers().getExternalIdentifiers().size());
    assertTrue(p.getExternalIdentifiers().getExternalIdentifiers().contains(ext1));
    assertFalse(p.getExternalIdentifiers().getExternalIdentifiers().contains(ext2));
    assertTrue(p.getExternalIdentifiers().getExternalIdentifiers().contains(ext3));
    // Check keywords
    assertEquals(2, p.getKeywords().getKeywords().size());
    assertTrue(p.getKeywords().getKeywords().contains(k1));
    assertFalse(p.getKeywords().getKeywords().contains(k2));
    assertTrue(p.getKeywords().getKeywords().contains(k3));
    // Check other names
    assertEquals(2, p.getOtherNames().getOtherNames().size());
    assertTrue(p.getOtherNames().getOtherNames().contains(o1));
    assertFalse(p.getOtherNames().getOtherNames().contains(o2));
    assertTrue(p.getOtherNames().getOtherNames().contains(o3));
    // Check researcher urls
    assertEquals(2, p.getResearcherUrls().getResearcherUrls().size());
    assertTrue(p.getResearcherUrls().getResearcherUrls().contains(r1));
    assertFalse(p.getResearcherUrls().getResearcherUrls().contains(r2));
    assertTrue(p.getResearcherUrls().getResearcherUrls().contains(r3));
    // Check activities
    assertNotNull(as);
    // Check distinctions
    assertEquals(2, as.getDistinctions().getSummaries().size());
    assertTrue(as.getDistinctions().getSummaries().contains(d1));
    assertFalse(as.getDistinctions().getSummaries().contains(d2));
    assertTrue(as.getDistinctions().getSummaries().contains(d3));
    // Check invited positions
    assertEquals(2, as.getInvitedPositions().getSummaries().size());
    assertTrue(as.getInvitedPositions().getSummaries().contains(i1));
    assertFalse(as.getInvitedPositions().getSummaries().contains(i2));
    assertTrue(as.getInvitedPositions().getSummaries().contains(i3));
    // Check memberships
    assertEquals(2, as.getMemberships().getSummaries().size());
    assertTrue(as.getMemberships().getSummaries().contains(m1));
    assertFalse(as.getMemberships().getSummaries().contains(m2));
    assertTrue(as.getMemberships().getSummaries().contains(m3));
    // Check qualifications
    assertEquals(2, as.getQualifications().getSummaries().size());
    assertTrue(as.getQualifications().getSummaries().contains(q1));
    assertFalse(as.getQualifications().getSummaries().contains(q2));
    assertTrue(as.getQualifications().getSummaries().contains(q3));
    // Check services
    assertEquals(2, as.getServices().getSummaries().size());
    assertTrue(as.getServices().getSummaries().contains(s1));
    assertFalse(as.getServices().getSummaries().contains(s2));
    assertTrue(as.getServices().getSummaries().contains(s3));
    // Check educations
    assertEquals(2, as.getEducations().getSummaries().size());
    assertTrue(as.getEducations().getSummaries().contains(edu1));
    assertFalse(as.getEducations().getSummaries().contains(edu2));
    assertTrue(as.getEducations().getSummaries().contains(edu3));
    // Check employments
    assertEquals(2, as.getEmployments().getSummaries().size());
    assertTrue(as.getEmployments().getSummaries().contains(em1));
    assertFalse(as.getEmployments().getSummaries().contains(em2));
    assertTrue(as.getEmployments().getSummaries().contains(em3));
    // Check fundings
    assertEquals(1, as.getFundings().getFundingGroup().size());
    assertEquals(2, as.getFundings().getFundingGroup().get(0).getActivities().size());
    assertTrue(as.getFundings().getFundingGroup().get(0).getActivities().contains(f1));
    assertFalse(as.getFundings().getFundingGroup().get(0).getActivities().contains(f2));
    assertTrue(as.getFundings().getFundingGroup().get(0).getActivities().contains(f3));
    assertEquals(3, as.getFundings().getFundingGroup().get(0).getIdentifiers().getExternalIdentifier().size());
    assertTrue(as.getFundings().getFundingGroup().get(0).getIdentifiers().getExternalIdentifier().contains(getExtId(EXTID_1)));
    assertFalse(as.getFundings().getFundingGroup().get(0).getIdentifiers().getExternalIdentifier().contains(getExtId(EXTID_2)));
    assertTrue(as.getFundings().getFundingGroup().get(0).getIdentifiers().getExternalIdentifier().contains(getExtId(EXTID_3)));
    assertTrue(as.getFundings().getFundingGroup().get(0).getIdentifiers().getExternalIdentifier().contains(getExtId(EXTID_SHARED)));
    // Check peer reviews
    assertEquals(1, as.getPeerReviews().getPeerReviewGroup().size());
    assertEquals(2, as.getPeerReviews().getPeerReviewGroup().get(0).getActivities().size());
    assertTrue(as.getPeerReviews().getPeerReviewGroup().get(0).getActivities().contains(p1));
    assertFalse(as.getPeerReviews().getPeerReviewGroup().get(0).getActivities().contains(p2));
    assertTrue(as.getPeerReviews().getPeerReviewGroup().get(0).getActivities().contains(p3));
    assertEquals(1, as.getPeerReviews().getPeerReviewGroup().get(0).getIdentifiers().getExternalIdentifier().size());
    assertTrue(as.getPeerReviews().getPeerReviewGroup().get(0).getIdentifiers().getExternalIdentifier().contains(getExtId(EXTID_SHARED, "peer-review")));
    // Check works
    assertEquals(1, as.getWorks().getWorkGroup().size());
    assertEquals(2, as.getWorks().getWorkGroup().get(0).getActivities().size());
    assertTrue(as.getWorks().getWorkGroup().get(0).getActivities().contains(w1));
    assertFalse(as.getWorks().getWorkGroup().get(0).getActivities().contains(w2));
    assertTrue(as.getWorks().getWorkGroup().get(0).getActivities().contains(w3));
    assertEquals(3, as.getWorks().getWorkGroup().get(0).getIdentifiers().getExternalIdentifier().size());
    assertTrue(as.getWorks().getWorkGroup().get(0).getIdentifiers().getExternalIdentifier().contains(getExtId(EXTID_1)));
    assertFalse(as.getWorks().getWorkGroup().get(0).getIdentifiers().getExternalIdentifier().contains(getExtId(EXTID_2)));
    assertTrue(as.getWorks().getWorkGroup().get(0).getIdentifiers().getExternalIdentifier().contains(getExtId(EXTID_3)));
    assertTrue(as.getWorks().getWorkGroup().get(0).getIdentifiers().getExternalIdentifier().contains(getExtId(EXTID_SHARED)));
}
Also used : Email(org.orcid.jaxb.model.v3.dev1.record.Email) Keywords(org.orcid.jaxb.model.v3.dev1.record.Keywords) Address(org.orcid.jaxb.model.v3.dev1.record.Address) OtherNames(org.orcid.jaxb.model.v3.dev1.record.OtherNames) OtherName(org.orcid.jaxb.model.v3.dev1.record.OtherName) Name(org.orcid.jaxb.model.v3.dev1.record.Name) ActivitiesSummary(org.orcid.jaxb.model.v3.dev1.record.summary.ActivitiesSummary) Addresses(org.orcid.jaxb.model.v3.dev1.record.Addresses) WorkSummary(org.orcid.jaxb.model.v3.dev1.record.summary.WorkSummary) Biography(org.orcid.jaxb.model.v3.dev1.record.Biography) FundingSummary(org.orcid.jaxb.model.v3.dev1.record.summary.FundingSummary) ResearcherUrls(org.orcid.jaxb.model.v3.dev1.record.ResearcherUrls) DistinctionSummary(org.orcid.jaxb.model.v3.dev1.record.summary.DistinctionSummary) ResearcherUrl(org.orcid.jaxb.model.v3.dev1.record.ResearcherUrl) Record(org.orcid.jaxb.model.v3.dev1.record.Record) Emails(org.orcid.jaxb.model.v3.dev1.record.Emails) ServiceSummary(org.orcid.jaxb.model.v3.dev1.record.summary.ServiceSummary) Keyword(org.orcid.jaxb.model.v3.dev1.record.Keyword) OtherName(org.orcid.jaxb.model.v3.dev1.record.OtherName) PersonExternalIdentifier(org.orcid.jaxb.model.v3.dev1.record.PersonExternalIdentifier) InvitedPositionSummary(org.orcid.jaxb.model.v3.dev1.record.summary.InvitedPositionSummary) QualificationSummary(org.orcid.jaxb.model.v3.dev1.record.summary.QualificationSummary) PersonExternalIdentifiers(org.orcid.jaxb.model.v3.dev1.record.PersonExternalIdentifiers) EducationSummary(org.orcid.jaxb.model.v3.dev1.record.summary.EducationSummary) PeerReviewSummary(org.orcid.jaxb.model.v3.dev1.record.summary.PeerReviewSummary) EmploymentSummary(org.orcid.jaxb.model.v3.dev1.record.summary.EmploymentSummary) MembershipSummary(org.orcid.jaxb.model.v3.dev1.record.summary.MembershipSummary) Person(org.orcid.jaxb.model.v3.dev1.record.Person) Test(org.junit.Test)

Aggregations

Biography (org.orcid.jaxb.model.v3.dev1.record.Biography)76 Test (org.junit.Test)75 OtherName (org.orcid.jaxb.model.v3.dev1.record.OtherName)53 Name (org.orcid.jaxb.model.v3.dev1.record.Name)44 OtherNames (org.orcid.jaxb.model.v3.dev1.record.OtherNames)44 Address (org.orcid.jaxb.model.v3.dev1.record.Address)36 ResearcherUrl (org.orcid.jaxb.model.v3.dev1.record.ResearcherUrl)36 Email (org.orcid.jaxb.model.v3.dev1.record.Email)35 Keyword (org.orcid.jaxb.model.v3.dev1.record.Keyword)35 Person (org.orcid.jaxb.model.v3.dev1.record.Person)35 PersonExternalIdentifier (org.orcid.jaxb.model.v3.dev1.record.PersonExternalIdentifier)35 ResearcherUrls (org.orcid.jaxb.model.v3.dev1.record.ResearcherUrls)32 Addresses (org.orcid.jaxb.model.v3.dev1.record.Addresses)31 Keywords (org.orcid.jaxb.model.v3.dev1.record.Keywords)31 PersonExternalIdentifiers (org.orcid.jaxb.model.v3.dev1.record.PersonExternalIdentifiers)31 Emails (org.orcid.jaxb.model.v3.dev1.record.Emails)29 PersonalDetails (org.orcid.jaxb.model.v3.dev1.record.PersonalDetails)22 Record (org.orcid.jaxb.model.v3.dev1.record.Record)18 ActivitiesSummary (org.orcid.jaxb.model.v3.dev1.record.summary.ActivitiesSummary)17 EducationSummary (org.orcid.jaxb.model.v3.dev1.record.summary.EducationSummary)15