Search in sources :

Example 16 with Keywords

use of org.geotoolkit.sml.xml.v100.Keywords in project ORCID-Source by ORCID.

the class OrcidSecurityManager_PersonTest method testPerson_When_SomeLimited_ReadPublicToken.

@Test
public void testPerson_When_SomeLimited_ReadPublicToken() {
    SecurityContextTestUtils.setUpSecurityContext(ORCID_1, CLIENT_1, ScopePathType.READ_PUBLIC);
    Name name = createName(Visibility.LIMITED);
    Biography bio = createBiography(Visibility.PUBLIC);
    Address a1 = createAddress(Visibility.LIMITED, CLIENT_2);
    Address a2 = createAddress(Visibility.PUBLIC, CLIENT_2);
    Address a3 = createAddress(Visibility.LIMITED, CLIENT_2);
    Addresses addresses = new Addresses();
    addresses.setAddress(new ArrayList<Address>(Arrays.asList(a1, a2, a3)));
    Email e1 = createEmail(Visibility.LIMITED, CLIENT_2);
    Email e2 = createEmail(Visibility.PUBLIC, CLIENT_2);
    Email e3 = createEmail(Visibility.LIMITED, CLIENT_2);
    Emails emails = new Emails();
    emails.setEmails(new ArrayList<Email>(Arrays.asList(e1, e2, e3)));
    Keyword k1 = createKeyword(Visibility.LIMITED, CLIENT_2);
    Keyword k2 = createKeyword(Visibility.PUBLIC, CLIENT_2);
    Keyword k3 = createKeyword(Visibility.LIMITED, CLIENT_2);
    Keywords keywords = new Keywords();
    keywords.setKeywords(new ArrayList<Keyword>(Arrays.asList(k1, k2, k3)));
    OtherName o1 = createOtherName(Visibility.LIMITED, CLIENT_2);
    OtherName o2 = createOtherName(Visibility.PUBLIC, CLIENT_2);
    OtherName o3 = createOtherName(Visibility.LIMITED, CLIENT_2);
    OtherNames otherNames = new OtherNames();
    otherNames.setOtherNames(new ArrayList<OtherName>(Arrays.asList(o1, o2, o3)));
    PersonExternalIdentifier ext1 = createPersonExternalIdentifier(Visibility.LIMITED, CLIENT_2);
    PersonExternalIdentifier ext2 = createPersonExternalIdentifier(Visibility.PUBLIC, CLIENT_2);
    PersonExternalIdentifier ext3 = createPersonExternalIdentifier(Visibility.LIMITED, CLIENT_2);
    PersonExternalIdentifiers extIds = new PersonExternalIdentifiers();
    extIds.setExternalIdentifiers(new ArrayList<PersonExternalIdentifier>(Arrays.asList(ext1, ext2, ext3)));
    ResearcherUrl r1 = createResearcherUrl(Visibility.LIMITED, CLIENT_2);
    ResearcherUrl r2 = createResearcherUrl(Visibility.PUBLIC, CLIENT_2);
    ResearcherUrl r3 = createResearcherUrl(Visibility.LIMITED, CLIENT_2);
    ResearcherUrls researcherUrls = new ResearcherUrls();
    researcherUrls.setResearcherUrls(new ArrayList<ResearcherUrl>(Arrays.asList(r1, r2, r3)));
    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);
    orcidSecurityManager.checkAndFilter(ORCID_1, p);
    assertNotNull(p);
    assertNull(p.getName());
    assertEquals(bio, p.getBiography());
    // Check addresses
    assertEquals(1, p.getAddresses().getAddress().size());
    assertFalse(p.getAddresses().getAddress().contains(a1));
    assertTrue(p.getAddresses().getAddress().contains(a2));
    assertFalse(p.getAddresses().getAddress().contains(a3));
    // Check emails
    assertEquals(1, p.getEmails().getEmails().size());
    assertFalse(p.getEmails().getEmails().contains(e1));
    assertTrue(p.getEmails().getEmails().contains(e2));
    assertFalse(p.getEmails().getEmails().contains(e3));
    // Check ext ids
    assertEquals(1, p.getExternalIdentifiers().getExternalIdentifiers().size());
    assertFalse(p.getExternalIdentifiers().getExternalIdentifiers().contains(ext1));
    assertTrue(p.getExternalIdentifiers().getExternalIdentifiers().contains(ext2));
    assertFalse(p.getExternalIdentifiers().getExternalIdentifiers().contains(ext3));
    // Check keywords
    assertEquals(1, p.getKeywords().getKeywords().size());
    assertFalse(p.getKeywords().getKeywords().contains(k1));
    assertTrue(p.getKeywords().getKeywords().contains(k2));
    assertFalse(p.getKeywords().getKeywords().contains(k3));
    // Check other names
    assertEquals(1, p.getOtherNames().getOtherNames().size());
    assertFalse(p.getOtherNames().getOtherNames().contains(o1));
    assertTrue(p.getOtherNames().getOtherNames().contains(o2));
    assertFalse(p.getOtherNames().getOtherNames().contains(o3));
    // Check researcher urls
    assertEquals(1, p.getResearcherUrls().getResearcherUrls().size());
    assertFalse(p.getResearcherUrls().getResearcherUrls().contains(r1));
    assertTrue(p.getResearcherUrls().getResearcherUrls().contains(r2));
    assertFalse(p.getResearcherUrls().getResearcherUrls().contains(r3));
}
Also used : Email(org.orcid.jaxb.model.record_v2.Email) Keywords(org.orcid.jaxb.model.record_v2.Keywords) Address(org.orcid.jaxb.model.record_v2.Address) Keyword(org.orcid.jaxb.model.record_v2.Keyword) OtherNames(org.orcid.jaxb.model.record_v2.OtherNames) OtherName(org.orcid.jaxb.model.record_v2.OtherName) PersonExternalIdentifier(org.orcid.jaxb.model.record_v2.PersonExternalIdentifier) OtherName(org.orcid.jaxb.model.record_v2.OtherName) Name(org.orcid.jaxb.model.record_v2.Name) Addresses(org.orcid.jaxb.model.record_v2.Addresses) PersonExternalIdentifiers(org.orcid.jaxb.model.record_v2.PersonExternalIdentifiers) Biography(org.orcid.jaxb.model.record_v2.Biography) ResearcherUrls(org.orcid.jaxb.model.record_v2.ResearcherUrls) ResearcherUrl(org.orcid.jaxb.model.record_v2.ResearcherUrl) Emails(org.orcid.jaxb.model.record_v2.Emails) Person(org.orcid.jaxb.model.record_v2.Person) Test(org.junit.Test)

Example 17 with Keywords

use of org.geotoolkit.sml.xml.v100.Keywords in project ORCID-Source by ORCID.

the class ValidateV2SamplesTest method testMarshallKeyword.

@Test
public void testMarshallKeyword() throws JAXBException, SAXException, URISyntaxException {
    Keywords object = (Keywords) unmarshallFromPath("/record_2.0/samples/read_samples/keywords-2.0.xml", Keywords.class);
    marshall(object, "/record_2.0/keyword-2.0.xsd");
}
Also used : Keywords(org.orcid.jaxb.model.record_v2.Keywords) Test(org.junit.Test)

Example 18 with Keywords

use of org.geotoolkit.sml.xml.v100.Keywords in project ORCID-Source by ORCID.

the class MemberV2ApiServiceDelegator_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.record_v2.Keywords) Keyword(org.orcid.jaxb.model.record_v2.Keyword) OrcidAccessControlException(org.orcid.core.exception.OrcidAccessControlException) NoResultException(javax.persistence.NoResultException) OrcidAccessControlException(org.orcid.core.exception.OrcidAccessControlException) VisibilityMismatchException(org.orcid.core.exception.VisibilityMismatchException) OrcidVisibilityException(org.orcid.core.exception.OrcidVisibilityException) OrcidUnauthorizedException(org.orcid.core.exception.OrcidUnauthorizedException) WrongSourceException(org.orcid.core.exception.WrongSourceException) DBUnitTest(org.orcid.test.DBUnitTest) Test(org.junit.Test)

Example 19 with Keywords

use of org.geotoolkit.sml.xml.v100.Keywords in project ORCID-Source by ORCID.

the class MemberV2ApiServiceDelegator_KeywordsTest method testDeleteKeyword.

@Test
public void testDeleteKeyword() {
    SecurityContextTestUtils.setUpSecurityContext("4444-4444-4444-4499", ScopePathType.PERSON_READ_LIMITED, ScopePathType.PERSON_UPDATE);
    Response response = serviceDelegator.viewKeywords("4444-4444-4444-4499");
    assertNotNull(response);
    Keywords keywords = (Keywords) response.getEntity();
    assertNotNull(keywords);
    assertNotNull(keywords.getKeywords());
    assertEquals(1, keywords.getKeywords().size());
    response = serviceDelegator.deleteKeyword("4444-4444-4444-4499", 8L);
    assertNotNull(response);
    assertEquals(Response.Status.NO_CONTENT.getStatusCode(), response.getStatus());
    response = serviceDelegator.viewKeywords("4444-4444-4444-4499");
    assertNotNull(response);
    keywords = (Keywords) response.getEntity();
    assertNotNull(keywords);
    assertNotNull(keywords.getKeywords());
    assertTrue(keywords.getKeywords().isEmpty());
}
Also used : Response(javax.ws.rs.core.Response) Keywords(org.orcid.jaxb.model.record_v2.Keywords) DBUnitTest(org.orcid.test.DBUnitTest) Test(org.junit.Test)

Example 20 with Keywords

use of org.geotoolkit.sml.xml.v100.Keywords in project ORCID-Source by ORCID.

the class MemberV2ApiServiceDelegator_KeywordsTest method testViewKeywords.

@Test
public void testViewKeywords() {
    SecurityContextTestUtils.setUpSecurityContext("4444-4444-4444-4443", ScopePathType.PERSON_READ_LIMITED);
    Response response = serviceDelegator.viewKeywords("4444-4444-4444-4443");
    assertNotNull(response);
    Keywords keywords = (Keywords) response.getEntity();
    assertNotNull(keywords);
    assertEquals("/4444-4444-4444-4443/keywords", keywords.getPath());
    Utils.verifyLastModified(keywords.getLastModifiedDate());
    assertNotNull(keywords.getKeywords());
    assertEquals(3, keywords.getKeywords().size());
    for (Keyword keyword : keywords.getKeywords()) {
        Utils.verifyLastModified(keyword.getLastModifiedDate());
        assertThat(keyword.getPutCode(), anyOf(is(1L), is(2L), is(4L)));
        assertThat(keyword.getContent(), anyOf(is("tea making"), is("coffee making"), is("what else can we make?")));
        if (keyword.getPutCode() == 1L) {
            assertEquals(Visibility.PUBLIC, keyword.getVisibility());
            assertEquals("APP-5555555555555555", keyword.getSource().retrieveSourcePath());
        } else if (keyword.getPutCode() == 2L) {
            assertEquals(Visibility.LIMITED, keyword.getVisibility());
            assertEquals("4444-4444-4444-4443", keyword.getSource().retrieveSourcePath());
        } else {
            assertEquals(Visibility.PRIVATE, keyword.getVisibility());
            assertEquals("APP-5555555555555555", keyword.getSource().retrieveSourcePath());
        }
    }
}
Also used : Response(javax.ws.rs.core.Response) Keywords(org.orcid.jaxb.model.record_v2.Keywords) Keyword(org.orcid.jaxb.model.record_v2.Keyword) DBUnitTest(org.orcid.test.DBUnitTest) Test(org.junit.Test)

Aggregations

Test (org.junit.Test)54 Keywords (org.orcid.jaxb.model.record_v2.Keywords)51 Keyword (org.orcid.jaxb.model.record_v2.Keyword)40 Addresses (org.orcid.jaxb.model.record_v2.Addresses)35 OtherNames (org.orcid.jaxb.model.record_v2.OtherNames)35 PersonExternalIdentifiers (org.orcid.jaxb.model.record_v2.PersonExternalIdentifiers)35 ResearcherUrls (org.orcid.jaxb.model.record_v2.ResearcherUrls)35 Biography (org.orcid.jaxb.model.record_v2.Biography)33 Emails (org.orcid.jaxb.model.record_v2.Emails)33 Address (org.orcid.jaxb.model.record_v2.Address)32 OtherName (org.orcid.jaxb.model.record_v2.OtherName)32 Email (org.orcid.jaxb.model.record_v2.Email)31 PersonExternalIdentifier (org.orcid.jaxb.model.record_v2.PersonExternalIdentifier)31 ResearcherUrl (org.orcid.jaxb.model.record_v2.ResearcherUrl)31 Name (org.orcid.jaxb.model.record_v2.Name)28 Person (org.orcid.jaxb.model.record_v2.Person)25 EducationSummary (org.orcid.jaxb.model.record.summary_v2.EducationSummary)15 EmploymentSummary (org.orcid.jaxb.model.record.summary_v2.EmploymentSummary)15 FundingSummary (org.orcid.jaxb.model.record.summary_v2.FundingSummary)15 PeerReviewSummary (org.orcid.jaxb.model.record.summary_v2.PeerReviewSummary)15