Search in sources :

Example 41 with Keywords

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

the class MemberV3ApiServiceDelegator_KeywordsTest method testReadPublicScope_Keywords.

@Test
public void testReadPublicScope_Keywords() {
    SecurityContextTestUtils.setUpSecurityContext(ORCID, ScopePathType.READ_PUBLIC);
    // Public works
    Response r = serviceDelegator.viewKeywords(ORCID);
    assertNotNull(r);
    assertEquals(Keywords.class.getName(), r.getEntity().getClass().getName());
    Keywords k = (Keywords) r.getEntity();
    assertNotNull(k);
    Utils.verifyLastModified(k.getLastModifiedDate());
    assertEquals(3, k.getKeywords().size());
    boolean found1 = false, found2 = false, found3 = false;
    for (Keyword element : k.getKeywords()) {
        Utils.verifyLastModified(element.getLastModifiedDate());
        if (element.getPutCode() == 9) {
            found1 = true;
        } else if (element.getPutCode() == 10) {
            found2 = true;
        } else if (element.getPutCode() == 11) {
            found3 = true;
        } else {
            fail("Invalid put code " + element.getPutCode());
        }
    }
    assertTrue(found1);
    assertTrue(found2);
    assertTrue(found3);
    r = serviceDelegator.viewKeyword(ORCID, 9L);
    assertNotNull(r);
    assertEquals(Keyword.class.getName(), r.getEntity().getClass().getName());
    // Limited where am the source of should work
    serviceDelegator.viewKeyword(ORCID, 10L);
    // Limited where am not the source of should fail
    try {
        serviceDelegator.viewKeyword(ORCID, 12L);
        fail();
    } catch (OrcidAccessControlException e) {
    } catch (Exception e) {
        fail();
    }
    // Private where am the source of should work
    serviceDelegator.viewKeyword(ORCID, 11L);
    // Private where am not the source of should fail
    try {
        serviceDelegator.viewKeyword(ORCID, 13L);
        fail();
    } catch (OrcidAccessControlException e) {
    } catch (Exception e) {
        fail();
    }
}
Also used : Response(javax.ws.rs.core.Response) Keywords(org.orcid.jaxb.model.v3.dev1.record.Keywords) Keyword(org.orcid.jaxb.model.v3.dev1.record.Keyword) OrcidAccessControlException(org.orcid.core.exception.OrcidAccessControlException) NoResultException(javax.persistence.NoResultException) VisibilityMismatchException(org.orcid.core.exception.VisibilityMismatchException) WrongSourceException(org.orcid.core.exception.WrongSourceException) OrcidAccessControlException(org.orcid.core.exception.OrcidAccessControlException) OrcidVisibilityException(org.orcid.core.exception.OrcidVisibilityException) OrcidUnauthorizedException(org.orcid.core.exception.OrcidUnauthorizedException) DBUnitTest(org.orcid.test.DBUnitTest) Test(org.junit.Test)

Example 42 with Keywords

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

the class MemberV3ApiServiceDelegator_KeywordsTest method testViewLimitedKeyword.

@Test
public void testViewLimitedKeyword() {
    SecurityContextTestUtils.setUpSecurityContext("4444-4444-4444-4443", ScopePathType.PERSON_READ_LIMITED);
    Response response = serviceDelegator.viewKeyword("4444-4444-4444-4443", 2L);
    assertNotNull(response);
    Keyword keyword = (Keyword) response.getEntity();
    assertNotNull(keyword);
    assertEquals("/4444-4444-4444-4443/keywords/2", keyword.getPath());
    Utils.verifyLastModified(keyword.getLastModifiedDate());
    assertEquals("coffee making", keyword.getContent());
    assertEquals(Visibility.LIMITED, keyword.getVisibility());
    assertEquals("4444-4444-4444-4443", keyword.getSource().retrieveSourcePath());
}
Also used : Response(javax.ws.rs.core.Response) Keyword(org.orcid.jaxb.model.v3.dev1.record.Keyword) DBUnitTest(org.orcid.test.DBUnitTest) Test(org.junit.Test)

Example 43 with Keywords

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

the class PublicV3ApiServiceDelegatorTest method validatePerson.

private void validatePerson(Person person) {
    assertNotNull(person);
    assertNotNull(person.getLastModifiedDate());
    assertNotNull(person.getLastModifiedDate().getValue());
    assertNotNull(person.getAddresses());
    assertEquals("/0000-0000-0000-0003/address", person.getAddresses().getPath());
    assertNotNull(person.getAddresses().getLastModifiedDate());
    assertNotNull(person.getAddresses().getLastModifiedDate().getValue());
    assertEquals(1, person.getAddresses().getAddress().size());
    Address address = person.getAddresses().getAddress().get(0);
    assertEquals(Iso3166Country.US, address.getCountry().getValue());
    assertEquals(Visibility.PUBLIC.value(), address.getVisibility().value());
    assertEquals(Long.valueOf(9), address.getPutCode());
    assertEquals("/0000-0000-0000-0003/address/9", address.getPath());
    assertEquals("APP-5555555555555555", address.getSource().retrieveSourcePath());
    assertNotNull(person.getBiography());
    assertEquals(Visibility.PUBLIC.value(), person.getBiography().getVisibility().value());
    assertEquals("Biography for 0000-0000-0000-0003", person.getBiography().getContent());
    assertNotNull(person.getBiography().getLastModifiedDate());
    assertNotNull(person.getBiography().getLastModifiedDate().getValue());
    assertEquals("/0000-0000-0000-0003/biography", person.getBiography().getPath());
    assertNotNull(person.getEmails());
    assertNotNull(person.getEmails().getLastModifiedDate());
    assertNotNull(person.getEmails().getLastModifiedDate().getValue());
    assertEquals(1, person.getEmails().getEmails().size());
    Email email = person.getEmails().getEmails().get(0);
    assertEquals("public_0000-0000-0000-0003@test.orcid.org", email.getEmail());
    assertNotNull(email.getLastModifiedDate());
    assertNotNull(email.getLastModifiedDate().getValue());
    assertEquals("APP-5555555555555555", email.getSource().retrieveSourcePath());
    assertEquals(Visibility.PUBLIC.value(), email.getVisibility().value());
    assertNotNull(person.getExternalIdentifiers());
    assertNotNull(person.getExternalIdentifiers().getLastModifiedDate());
    assertNotNull(person.getExternalIdentifiers().getLastModifiedDate().getValue());
    assertEquals("/0000-0000-0000-0003/external-identifiers", person.getExternalIdentifiers().getPath());
    assertEquals(1, person.getExternalIdentifiers().getExternalIdentifiers().size());
    PersonExternalIdentifier extId = person.getExternalIdentifiers().getExternalIdentifiers().get(0);
    assertNotNull(extId);
    assertNotNull(extId.getLastModifiedDate());
    assertNotNull(extId.getLastModifiedDate().getValue());
    assertEquals(Long.valueOf(13), extId.getPutCode());
    assertEquals("public_type", extId.getType());
    assertNotNull(extId.getUrl());
    assertEquals("http://ext-id/public_ref", extId.getUrl().getValue());
    assertEquals(Visibility.PUBLIC.value(), extId.getVisibility().value());
    assertEquals("/0000-0000-0000-0003/external-identifiers/13", extId.getPath());
    assertEquals("APP-5555555555555555", extId.getSource().retrieveSourcePath());
    assertNotNull(person.getKeywords());
    assertNotNull(person.getKeywords().getLastModifiedDate());
    assertNotNull(person.getKeywords().getLastModifiedDate().getValue());
    assertEquals(1, person.getKeywords().getKeywords().size());
    assertNotNull(person.getKeywords().getLastModifiedDate());
    assertEquals("/0000-0000-0000-0003/keywords", person.getKeywords().getPath());
    Keyword keyword = person.getKeywords().getKeywords().get(0);
    assertNotNull(keyword);
    assertNotNull(keyword.getLastModifiedDate());
    assertNotNull(keyword.getLastModifiedDate().getValue());
    assertEquals(Long.valueOf(9), keyword.getPutCode());
    assertEquals("PUBLIC", keyword.getContent());
    assertEquals(Visibility.PUBLIC.value(), keyword.getVisibility().value());
    assertEquals("/0000-0000-0000-0003/keywords/9", keyword.getPath());
    assertEquals("APP-5555555555555555", keyword.getSource().retrieveSourcePath());
    assertNotNull(person.getName());
    assertNotNull(person.getName().getLastModifiedDate());
    assertNotNull(person.getName().getLastModifiedDate().getValue());
    assertEquals("Credit Name", person.getName().getCreditName().getContent());
    assertEquals("Family Name", person.getName().getFamilyName().getContent());
    assertEquals("Given Names", person.getName().getGivenNames().getContent());
    assertEquals(Visibility.PUBLIC.value(), person.getName().getVisibility().value());
    assertNotNull(person.getOtherNames());
    assertEquals("/0000-0000-0000-0003/other-names", person.getOtherNames().getPath());
    assertNotNull(person.getOtherNames().getLastModifiedDate());
    assertNotNull(person.getOtherNames().getLastModifiedDate().getValue());
    assertEquals(1, person.getOtherNames().getOtherNames().size());
    OtherName otherName = person.getOtherNames().getOtherNames().get(0);
    assertEquals("Other Name PUBLIC", otherName.getContent());
    assertNotNull(otherName.getLastModifiedDate());
    assertNotNull(otherName.getLastModifiedDate().getValue());
    assertEquals("/0000-0000-0000-0003/other-names/13", otherName.getPath());
    assertEquals(Long.valueOf(13), otherName.getPutCode());
    assertEquals("APP-5555555555555555", otherName.getSource().retrieveSourcePath());
    assertEquals(Visibility.PUBLIC.value(), otherName.getVisibility().value());
    assertNotNull(person.getResearcherUrls());
    assertEquals(1, person.getResearcherUrls().getResearcherUrls().size());
    assertNotNull(person.getResearcherUrls().getLastModifiedDate());
    assertNotNull(person.getResearcherUrls().getLastModifiedDate().getValue());
    assertEquals("/0000-0000-0000-0003/researcher-urls", person.getResearcherUrls().getPath());
    ResearcherUrl rUrl = person.getResearcherUrls().getResearcherUrls().get(0);
    assertNotNull(rUrl);
    assertNotNull(rUrl.getLastModifiedDate());
    assertNotNull(rUrl.getLastModifiedDate().getValue());
    assertNotNull(rUrl.getUrl());
    assertEquals("http://www.researcherurl.com?id=13", rUrl.getUrl().getValue());
    assertEquals("public_rurl", rUrl.getUrlName());
    assertEquals(Visibility.PUBLIC.value(), rUrl.getVisibility().value());
    assertEquals("/0000-0000-0000-0003/researcher-urls/13", rUrl.getPath());
    assertEquals("APP-5555555555555555", rUrl.getSource().retrieveSourcePath());
    assertEquals("/0000-0000-0000-0003/person", person.getPath());
}
Also used : Email(org.orcid.jaxb.model.v3.dev1.record.Email) Address(org.orcid.jaxb.model.v3.dev1.record.Address) Keyword(org.orcid.jaxb.model.v3.dev1.record.Keyword) OtherName(org.orcid.jaxb.model.v3.dev1.record.OtherName) ResearcherUrl(org.orcid.jaxb.model.v3.dev1.record.ResearcherUrl) PersonExternalIdentifier(org.orcid.jaxb.model.v3.dev1.record.PersonExternalIdentifier)

Example 44 with Keywords

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

the class PublicV3ApiServiceDelegatorTest method testViewKeywords.

@Test
public void testViewKeywords() {
    Response response = serviceDelegator.viewKeywords(ORCID);
    assertNotNull(response);
    Keywords keywords = (Keywords) response.getEntity();
    assertNotNull(keywords);
    assertNotNull(keywords.getLastModifiedDate());
    assertNotNull(keywords.getLastModifiedDate().getValue());
    assertEquals("/0000-0000-0000-0003/keywords", keywords.getPath());
    assertEquals(1, keywords.getKeywords().size());
    Keyword keyword = keywords.getKeywords().get(0);
    assertNotNull(keyword);
    assertNotNull(keyword.getLastModifiedDate());
    assertNotNull(keyword.getLastModifiedDate().getValue());
    assertEquals(Long.valueOf(9), keyword.getPutCode());
    assertEquals("PUBLIC", keyword.getContent());
    assertEquals(Visibility.PUBLIC.value(), keyword.getVisibility().value());
    assertEquals("/0000-0000-0000-0003/keywords/9", keyword.getPath());
    assertEquals("APP-5555555555555555", keyword.getSource().retrieveSourcePath());
}
Also used : Response(javax.ws.rs.core.Response) Keywords(org.orcid.jaxb.model.v3.dev1.record.Keywords) Keyword(org.orcid.jaxb.model.v3.dev1.record.Keyword) DBUnitTest(org.orcid.test.DBUnitTest) Test(org.junit.Test)

Example 45 with Keywords

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

the class PublicAPISecurityManagerV3Test method checkIsPublicRecordTest.

@Test
public void checkIsPublicRecordTest() {
    Record r = getRecordElement();
    publicAPISecurityManagerV3.filter(r);
    // Verify activities - nothing filtered
    ActivitiesSummary as = r.getActivitiesSummary();
    assertEquals(3, as.getEducations().getSummaries().size());
    assertContainerContainsOnlyPublicElements(as.getEducations());
    assertEquals(3, as.getEmployments().getSummaries().size());
    assertContainerContainsOnlyPublicElements(as.getEmployments());
    assertEquals(3, as.getFundings().getFundingGroup().size());
    assertGroupContainsOnlyPublicElements(as.getFundings());
    assertEquals(3, as.getPeerReviews().getPeerReviewGroup().size());
    assertGroupContainsOnlyPublicElements(as.getPeerReviews());
    assertEquals(3, as.getWorks().getWorkGroup().size());
    assertGroupContainsOnlyPublicElements(as.getWorks());
    assertEquals(3, as.getDistinctions().getSummaries().size());
    assertContainerContainsOnlyPublicElements(as.getDistinctions());
    assertEquals(3, as.getInvitedPositions().getSummaries().size());
    assertContainerContainsOnlyPublicElements(as.getInvitedPositions());
    assertEquals(3, as.getMemberships().getSummaries().size());
    assertContainerContainsOnlyPublicElements(as.getMemberships());
    assertEquals(3, as.getQualifications().getSummaries().size());
    assertContainerContainsOnlyPublicElements(as.getQualifications());
    assertEquals(3, as.getServices().getSummaries().size());
    assertContainerContainsOnlyPublicElements(as.getServices());
    // Verify bio sections - nothing filtered
    Person p = r.getPerson();
    assertEquals(3, p.getAddresses().getAddress().size());
    assertAllArePublic(p.getAddresses().getAddress());
    assertEquals(3, p.getEmails().getEmails().size());
    assertAllArePublic(p.getEmails().getEmails());
    assertEquals(3, p.getExternalIdentifiers().getExternalIdentifiers().size());
    assertAllArePublic(p.getExternalIdentifiers().getExternalIdentifiers());
    assertEquals(3, p.getKeywords().getKeywords().size());
    assertAllArePublic(p.getKeywords().getKeywords());
    assertEquals(3, p.getOtherNames().getOtherNames().size());
    assertAllArePublic(p.getOtherNames().getOtherNames());
    assertEquals(3, p.getResearcherUrls().getResearcherUrls().size());
    assertAllArePublic(p.getResearcherUrls().getResearcherUrls());
    assertNotNull(p.getBiography());
    assertNotNull(p.getName());
    // Filter biography, name, educations and funding
    r = getRecordElement();
    r.getPerson().getBiography().setVisibility(Visibility.LIMITED);
    r.getPerson().getName().setVisibility(Visibility.LIMITED);
    setVisibility(r.getActivitiesSummary().getEducations().getSummaries(), Visibility.LIMITED, Visibility.PRIVATE, Visibility.LIMITED);
    setVisibility(r.getActivitiesSummary().getFundings(), Visibility.LIMITED, Visibility.PRIVATE, Visibility.LIMITED);
    publicAPISecurityManagerV3.filter(r);
    // Verify activities - educations and funding filtered
    as = r.getActivitiesSummary();
    assertNotNull(as.getEducations());
    assertTrue(as.getEducations().getSummaries().isEmpty());
    assertEquals(3, as.getEmployments().getSummaries().size());
    assertTrue(as.getFundings().getFundingGroup().isEmpty());
    assertEquals(3, as.getPeerReviews().getPeerReviewGroup().size());
    assertEquals(3, as.getWorks().getWorkGroup().size());
    assertEquals(3, as.getDistinctions().getSummaries().size());
    assertContainerContainsOnlyPublicElements(as.getDistinctions());
    assertEquals(3, as.getInvitedPositions().getSummaries().size());
    assertContainerContainsOnlyPublicElements(as.getInvitedPositions());
    assertEquals(3, as.getMemberships().getSummaries().size());
    assertContainerContainsOnlyPublicElements(as.getMemberships());
    assertEquals(3, as.getQualifications().getSummaries().size());
    assertContainerContainsOnlyPublicElements(as.getQualifications());
    assertEquals(3, as.getServices().getSummaries().size());
    assertContainerContainsOnlyPublicElements(as.getServices());
    // Verify bio sections - bio and name filtered
    p = r.getPerson();
    assertEquals(3, p.getAddresses().getAddress().size());
    assertEquals(3, p.getEmails().getEmails().size());
    assertEquals(3, p.getExternalIdentifiers().getExternalIdentifiers().size());
    assertEquals(3, p.getKeywords().getKeywords().size());
    assertEquals(3, p.getOtherNames().getOtherNames().size());
    assertEquals(3, p.getResearcherUrls().getResearcherUrls().size());
    assertNull(p.getBiography());
    assertNull(p.getName());
    // Filter emails, external identifiers, peer reviews and works
    r = getRecordElement();
    setVisibility(r.getPerson().getEmails().getEmails(), Visibility.LIMITED, Visibility.PRIVATE, Visibility.LIMITED);
    setVisibility(r.getPerson().getExternalIdentifiers().getExternalIdentifiers(), Visibility.LIMITED, Visibility.PRIVATE, Visibility.LIMITED);
    setVisibility(r.getActivitiesSummary().getPeerReviews(), Visibility.LIMITED, Visibility.PRIVATE, Visibility.LIMITED);
    setVisibility(r.getActivitiesSummary().getWorks(), Visibility.LIMITED, Visibility.PRIVATE, Visibility.LIMITED);
    publicAPISecurityManagerV3.filter(r);
    // Verify activities - peer reviews and works filtered
    as = r.getActivitiesSummary();
    assertEquals(3, as.getEducations().getSummaries().size());
    assertEquals(3, as.getEmployments().getSummaries().size());
    assertEquals(3, as.getFundings().getFundingGroup().size());
    assertTrue(as.getPeerReviews().getPeerReviewGroup().isEmpty());
    assertTrue(as.getWorks().getWorkGroup().isEmpty());
    assertEquals(3, as.getDistinctions().getSummaries().size());
    assertContainerContainsOnlyPublicElements(as.getDistinctions());
    assertEquals(3, as.getInvitedPositions().getSummaries().size());
    assertContainerContainsOnlyPublicElements(as.getInvitedPositions());
    assertEquals(3, as.getMemberships().getSummaries().size());
    assertContainerContainsOnlyPublicElements(as.getMemberships());
    assertEquals(3, as.getQualifications().getSummaries().size());
    assertContainerContainsOnlyPublicElements(as.getQualifications());
    assertEquals(3, as.getServices().getSummaries().size());
    assertContainerContainsOnlyPublicElements(as.getServices());
    // Verify bio sections - emails, external identifiers filtered
    p = r.getPerson();
    assertEquals(3, p.getAddresses().getAddress().size());
    assertNotNull(p.getEmails());
    assertTrue(p.getEmails().getEmails().isEmpty());
    assertNotNull(p.getExternalIdentifiers());
    assertTrue(p.getExternalIdentifiers().getExternalIdentifiers().isEmpty());
    assertEquals(3, p.getKeywords().getKeywords().size());
    assertEquals(3, p.getOtherNames().getOtherNames().size());
    assertEquals(3, p.getResearcherUrls().getResearcherUrls().size());
    assertNotNull(p.getBiography());
    assertNotNull(p.getName());
    // Filter keywords and other names
    r = getRecordElement();
    setVisibility(r.getPerson().getOtherNames().getOtherNames(), Visibility.LIMITED, Visibility.PRIVATE, Visibility.LIMITED);
    setVisibility(r.getPerson().getKeywords().getKeywords(), Visibility.LIMITED, Visibility.PRIVATE, Visibility.LIMITED);
    publicAPISecurityManagerV3.filter(r);
    // Verify activities - nothing filtered
    as = r.getActivitiesSummary();
    assertEquals(3, as.getEducations().getSummaries().size());
    assertEquals(3, as.getEmployments().getSummaries().size());
    assertEquals(3, as.getFundings().getFundingGroup().size());
    assertEquals(3, as.getPeerReviews().getPeerReviewGroup().size());
    assertEquals(3, as.getWorks().getWorkGroup().size());
    assertEquals(3, as.getDistinctions().getSummaries().size());
    assertContainerContainsOnlyPublicElements(as.getDistinctions());
    assertEquals(3, as.getInvitedPositions().getSummaries().size());
    assertContainerContainsOnlyPublicElements(as.getInvitedPositions());
    assertEquals(3, as.getMemberships().getSummaries().size());
    assertContainerContainsOnlyPublicElements(as.getMemberships());
    assertEquals(3, as.getQualifications().getSummaries().size());
    assertContainerContainsOnlyPublicElements(as.getQualifications());
    assertEquals(3, as.getServices().getSummaries().size());
    assertContainerContainsOnlyPublicElements(as.getServices());
    // Verify bio sections - keywords and other names filtered
    p = r.getPerson();
    assertEquals(3, p.getAddresses().getAddress().size());
    assertEquals(3, p.getEmails().getEmails().size());
    assertEquals(3, p.getExternalIdentifiers().getExternalIdentifiers().size());
    assertNotNull(p.getKeywords());
    assertTrue(p.getKeywords().getKeywords().isEmpty());
    assertNotNull(p.getOtherNames());
    assertTrue(p.getOtherNames().getOtherNames().isEmpty());
    assertEquals(3, p.getResearcherUrls().getResearcherUrls().size());
    assertNotNull(p.getBiography());
    assertNotNull(p.getName());
}
Also used : Record(org.orcid.jaxb.model.v3.dev1.record.Record) Person(org.orcid.jaxb.model.v3.dev1.record.Person) ActivitiesSummary(org.orcid.jaxb.model.v3.dev1.record.summary.ActivitiesSummary) Test(org.junit.Test)

Aggregations

Keywords (org.orcid.jaxb.model.v3.dev1.record.Keywords)50 Keyword (org.orcid.jaxb.model.v3.dev1.record.Keyword)49 Test (org.junit.Test)44 OtherNames (org.orcid.jaxb.model.v3.dev1.record.OtherNames)34 Address (org.orcid.jaxb.model.v3.dev1.record.Address)33 Addresses (org.orcid.jaxb.model.v3.dev1.record.Addresses)33 Biography (org.orcid.jaxb.model.v3.dev1.record.Biography)33 PersonExternalIdentifiers (org.orcid.jaxb.model.v3.dev1.record.PersonExternalIdentifiers)33 ResearcherUrls (org.orcid.jaxb.model.v3.dev1.record.ResearcherUrls)33 Email (org.orcid.jaxb.model.v3.dev1.record.Email)32 OtherName (org.orcid.jaxb.model.v3.dev1.record.OtherName)32 PersonExternalIdentifier (org.orcid.jaxb.model.v3.dev1.record.PersonExternalIdentifier)32 ResearcherUrl (org.orcid.jaxb.model.v3.dev1.record.ResearcherUrl)32 Emails (org.orcid.jaxb.model.v3.dev1.record.Emails)31 Person (org.orcid.jaxb.model.v3.dev1.record.Person)28 Name (org.orcid.jaxb.model.v3.dev1.record.Name)27 Record (org.orcid.jaxb.model.v3.dev1.record.Record)15 ActivitiesSummary (org.orcid.jaxb.model.v3.dev1.record.summary.ActivitiesSummary)14 EducationSummary (org.orcid.jaxb.model.v3.dev1.record.summary.EducationSummary)14 EmploymentSummary (org.orcid.jaxb.model.v3.dev1.record.summary.EmploymentSummary)14