mirror of
https://github.com/DSpace/DSpace.git
synced 2025-10-07 10:04:21 +00:00
fix: import public email from ORCID person
(cherry picked from commit 82ca80cd6b
)
This commit is contained in:

committed by
github-actions[bot]
![github-actions[bot]](/assets/img/avatar_default.png)
parent
37338424e3
commit
ac7dfc562f
@@ -27,6 +27,7 @@ import org.dspace.external.provider.AbstractExternalDataProvider;
|
||||
import org.dspace.external.provider.orcid.xml.XMLtoBio;
|
||||
import org.dspace.orcid.model.factory.OrcidFactoryUtils;
|
||||
import org.orcid.jaxb.model.v3.release.common.OrcidIdentifier;
|
||||
import org.orcid.jaxb.model.v3.release.record.Email;
|
||||
import org.orcid.jaxb.model.v3.release.record.Person;
|
||||
import org.orcid.jaxb.model.v3.release.search.Result;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -120,7 +121,14 @@ public class OrcidV3AuthorDataProvider extends AbstractExternalDataProvider {
|
||||
firstName = person.getName().getGivenNames().getContent();
|
||||
externalDataObject.addMetadata(new MetadataValueDTO("person", "givenName", null, null,
|
||||
firstName));
|
||||
|
||||
}
|
||||
if (person.getEmails().getEmails() != null && !person.getEmails().getEmails().isEmpty()) {
|
||||
Email email = person.getEmails().getEmails().get(0);
|
||||
if (person.getEmails().getEmails().size() > 1) {
|
||||
email = person.getEmails().getEmails().stream().filter(Email::isPrimary).findFirst().orElse(email);
|
||||
}
|
||||
externalDataObject.addMetadata(new MetadataValueDTO("person", "email", null,
|
||||
null, email.getEmail()));
|
||||
}
|
||||
externalDataObject.setId(person.getName().getPath());
|
||||
externalDataObject
|
||||
@@ -139,8 +147,8 @@ public class OrcidV3AuthorDataProvider extends AbstractExternalDataProvider {
|
||||
externalDataObject.setDisplayValue(firstName);
|
||||
externalDataObject.setValue(firstName);
|
||||
}
|
||||
} else if (person.getPath() != null ) {
|
||||
externalDataObject.setId(StringUtils.substringBetween(person.getPath(),"/","/person"));
|
||||
} else if (person.getPath() != null) {
|
||||
externalDataObject.setId(StringUtils.substringBetween(person.getPath(), "/", "/person"));
|
||||
}
|
||||
return externalDataObject;
|
||||
}
|
||||
@@ -204,7 +212,7 @@ public class OrcidV3AuthorDataProvider extends AbstractExternalDataProvider {
|
||||
for (Result result : results) {
|
||||
OrcidIdentifier orcidIdentifier = result.getOrcidIdentifier();
|
||||
if (orcidIdentifier != null) {
|
||||
log.debug("Found OrcidId=" + orcidIdentifier.toString());
|
||||
log.debug("Found OrcidId=" + orcidIdentifier.getPath());
|
||||
String orcid = orcidIdentifier.getPath();
|
||||
Person bio = getBio(orcid);
|
||||
if (bio != null) {
|
||||
|
231
dspace-api/src/test/java/org/dspace/external/provider/impl/OrcidV3AuthorDataProviderTest.java
vendored
Normal file
231
dspace-api/src/test/java/org/dspace/external/provider/impl/OrcidV3AuthorDataProviderTest.java
vendored
Normal file
@@ -0,0 +1,231 @@
|
||||
/**
|
||||
* The contents of this file are subject to the license and copyright
|
||||
* detailed in the LICENSE and NOTICE files at the root of the source
|
||||
* tree and available online at
|
||||
*
|
||||
* http://www.dspace.org/license/
|
||||
*/
|
||||
package org.dspace.external.provider.impl;
|
||||
|
||||
import org.dspace.AbstractDSpaceTest;
|
||||
import org.dspace.external.OrcidRestConnector;
|
||||
import org.dspace.external.model.ExternalDataObject;
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.io.InputStream;
|
||||
import java.util.List;
|
||||
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.hamcrest.Matchers.*;
|
||||
import static org.junit.Assert.assertThrows;
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.ArgumentMatchers.eq;
|
||||
import static org.mockito.Mockito.*;
|
||||
|
||||
/**
|
||||
* Unit tests for {@link OrcidV3AuthorDataProvider}.
|
||||
*
|
||||
* @author Jesiel Viana (jesielviana at proton.me)
|
||||
*
|
||||
*/
|
||||
public class OrcidV3AuthorDataProviderTest extends AbstractDSpaceTest {
|
||||
|
||||
private static final String SEARCH_XML_PATH = "org/dspace/external/provider/orcid-v3-author/search.xml";
|
||||
private static final String PERSON1_XML_PATH = "org/dspace/external/provider/orcid-v3-author/person1.xml";
|
||||
private static final String PERSON2_XML_PATH = "org/dspace/external/provider/orcid-v3-author/person2.xml";
|
||||
private static final String PERSON3_XML_PATH = "org/dspace/external/provider/orcid-v3-author/person3.xml";
|
||||
|
||||
public static final String ORCID_SEARCH_QUERY = "search?q=0000-0000-0000-0000";
|
||||
|
||||
private OrcidV3AuthorDataProvider dataProvider;
|
||||
|
||||
@Before
|
||||
public void setup() throws Exception {
|
||||
dataProvider = new OrcidV3AuthorDataProvider();
|
||||
|
||||
OrcidRestConnector mockRestConnector = mock(OrcidRestConnector.class);
|
||||
|
||||
dataProvider.setOrcidRestConnector(mockRestConnector);
|
||||
dataProvider.setSourceIdentifier("orcid");
|
||||
dataProvider.setOrcidUrl("https://orcid.org");
|
||||
|
||||
dataProvider.setClientId("client-id");
|
||||
dataProvider.setClientSecret("client-secret");
|
||||
dataProvider.setOAUTHUrl("https://orcid.org/oauth");
|
||||
|
||||
InputStream searchXmlStream = getClass().getClassLoader().getResourceAsStream(SEARCH_XML_PATH);
|
||||
InputStream person1XmlStream = getClass().getClassLoader().getResourceAsStream(PERSON1_XML_PATH);
|
||||
InputStream person2XmlStream = getClass().getClassLoader().getResourceAsStream(PERSON2_XML_PATH);
|
||||
InputStream person3XmlStream = getClass().getClassLoader().getResourceAsStream(PERSON3_XML_PATH);
|
||||
|
||||
when(mockRestConnector.get("search?q=search%3Fq%3D0000-0000-0000-0000&start=0&rows=10",null )).thenReturn(searchXmlStream);
|
||||
when(mockRestConnector.get("0000-0000-0000-0001/person",null )).thenReturn(person1XmlStream);
|
||||
when(mockRestConnector.get("0000-0000-0000-0002/person",null )).thenReturn(person2XmlStream);
|
||||
when(mockRestConnector.get("0000-0000-0000-0003/person",null )).thenReturn(person3XmlStream);
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetExternalDataObjectSizeIsCorrect() {
|
||||
List<ExternalDataObject> optional = dataProvider.searchExternalDataObjects(ORCID_SEARCH_QUERY, 0, 10);
|
||||
assertThat(optional, hasSize(3));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetExternalDataObjectGetPersonWithAllFieldsPopulated() {
|
||||
List<ExternalDataObject> optional = dataProvider.searchExternalDataObjects(ORCID_SEARCH_QUERY, 0, 10);
|
||||
|
||||
assertThat(optional, hasSize(3));
|
||||
|
||||
ExternalDataObject externalDataObject1 = optional.get(0);
|
||||
|
||||
// Basic field assertions
|
||||
assertThat(externalDataObject1.getId(), equalTo("0000-0000-0000-0001"));
|
||||
assertThat(externalDataObject1.getValue(), equalTo("FamilyName1, GivenNames1"));
|
||||
assertThat(externalDataObject1.getSource(), equalTo("orcid"));
|
||||
assertThat(externalDataObject1.getDisplayValue(), equalTo("FamilyName1, GivenNames1"));
|
||||
|
||||
// Metadata assertions
|
||||
assertThat(externalDataObject1.getMetadata(), hasItem(
|
||||
allOf(
|
||||
hasProperty("schema", equalTo("person")),
|
||||
hasProperty("element", equalTo("familyName")),
|
||||
hasProperty("value", equalTo("FamilyName1"))
|
||||
)
|
||||
));
|
||||
assertThat(externalDataObject1.getMetadata(), hasItem(
|
||||
allOf(
|
||||
hasProperty("schema", equalTo("person")),
|
||||
hasProperty("element", equalTo("givenName")),
|
||||
hasProperty("value", equalTo("GivenNames1"))
|
||||
)
|
||||
));
|
||||
assertThat(externalDataObject1.getMetadata(), hasItem(
|
||||
allOf(
|
||||
hasProperty("schema", equalTo("person")),
|
||||
hasProperty("element", equalTo("email")),
|
||||
hasProperty("value", equalTo("person1@email.com"))
|
||||
)
|
||||
));
|
||||
assertThat(externalDataObject1.getMetadata(), hasItem(
|
||||
allOf(
|
||||
hasProperty("schema", equalTo("person")),
|
||||
hasProperty("element", equalTo("identifier")),
|
||||
hasProperty("qualifier", equalTo("orcid")),
|
||||
hasProperty("value", equalTo("0000-0000-0000-0001"))
|
||||
)
|
||||
));
|
||||
assertThat(externalDataObject1.getMetadata(), hasItem(
|
||||
allOf(
|
||||
hasProperty("schema", equalTo("dc")),
|
||||
hasProperty("element", equalTo("identifier")),
|
||||
hasProperty("qualifier", equalTo("uri")),
|
||||
hasProperty("value", equalTo("https://orcid.org/0000-0000-0000-0001"))
|
||||
)
|
||||
));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetExternalDataObjectGetPrimaryEmailFromPersonWithTwoEmails() {
|
||||
List<ExternalDataObject> optional = dataProvider.searchExternalDataObjects(ORCID_SEARCH_QUERY, 0, 10);
|
||||
|
||||
assertThat(optional, hasSize(3));
|
||||
|
||||
ExternalDataObject externalDataObject2 = optional.get(1); // Test person2 (with two emails)
|
||||
|
||||
// Basic field assertions
|
||||
assertThat(externalDataObject2.getId(), equalTo("0000-0000-0000-0002"));
|
||||
assertThat(externalDataObject2.getValue(), equalTo("FamilyName2, GivenNames2"));
|
||||
assertThat(externalDataObject2.getSource(), equalTo("orcid"));
|
||||
assertThat(externalDataObject2.getDisplayValue(), equalTo("FamilyName2, GivenNames2"));
|
||||
|
||||
// Metadata assertions
|
||||
assertThat(externalDataObject2.getMetadata(), hasItem(
|
||||
allOf(
|
||||
hasProperty("schema", equalTo("person")),
|
||||
hasProperty("element", equalTo("familyName")),
|
||||
hasProperty("value", equalTo("FamilyName2"))
|
||||
)
|
||||
));
|
||||
assertThat(externalDataObject2.getMetadata(), hasItem(
|
||||
allOf(
|
||||
hasProperty("schema", equalTo("person")),
|
||||
hasProperty("element", equalTo("givenName")),
|
||||
hasProperty("value", equalTo("GivenNames2"))
|
||||
)
|
||||
));
|
||||
assertThat(externalDataObject2.getMetadata(), hasItem(
|
||||
allOf(
|
||||
hasProperty("schema", equalTo("person")),
|
||||
hasProperty("element", equalTo("email")),
|
||||
hasProperty("value", equalTo("person2primary@email.com")) // Primary email
|
||||
)
|
||||
));
|
||||
assertThat(externalDataObject2.getMetadata(), hasItem(
|
||||
allOf(
|
||||
hasProperty("schema", equalTo("person")),
|
||||
hasProperty("element", equalTo("identifier")),
|
||||
hasProperty("qualifier", equalTo("orcid")),
|
||||
hasProperty("value", equalTo("0000-0000-0000-0002"))
|
||||
)
|
||||
));
|
||||
assertThat(externalDataObject2.getMetadata(), hasItem(
|
||||
allOf(
|
||||
hasProperty("schema", equalTo("dc")),
|
||||
hasProperty("element", equalTo("identifier")),
|
||||
hasProperty("qualifier", equalTo("uri")),
|
||||
hasProperty("value", equalTo("https://orcid.org/0000-0000-0000-0002"))
|
||||
)
|
||||
));
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testGetExternalDataObjectGetPersonOnlyWithNameFilled() {
|
||||
List<ExternalDataObject> optional = dataProvider.searchExternalDataObjects(ORCID_SEARCH_QUERY, 0, 10);
|
||||
|
||||
assertThat(optional, hasSize(3));
|
||||
|
||||
ExternalDataObject externalDataObject2 = optional.get(2); // Test person2 (with two emails)
|
||||
|
||||
// Basic field assertions
|
||||
assertThat(externalDataObject2.getId(), equalTo("0000-0000-0000-0003"));
|
||||
assertThat(externalDataObject2.getValue(), equalTo("FamilyName3, GivenNames3"));
|
||||
assertThat(externalDataObject2.getSource(), equalTo("orcid"));
|
||||
assertThat(externalDataObject2.getDisplayValue(), equalTo("FamilyName3, GivenNames3"));
|
||||
|
||||
// Metadata assertions
|
||||
assertThat(externalDataObject2.getMetadata(), hasItem(
|
||||
allOf(
|
||||
hasProperty("schema", equalTo("person")),
|
||||
hasProperty("element", equalTo("familyName")),
|
||||
hasProperty("value", equalTo("FamilyName3"))
|
||||
)
|
||||
));
|
||||
assertThat(externalDataObject2.getMetadata(), hasItem(
|
||||
allOf(
|
||||
hasProperty("schema", equalTo("person")),
|
||||
hasProperty("element", equalTo("givenName")),
|
||||
hasProperty("value", equalTo("GivenNames3"))
|
||||
)
|
||||
));
|
||||
assertThat(externalDataObject2.getMetadata(), hasItem(
|
||||
allOf(
|
||||
hasProperty("schema", equalTo("person")),
|
||||
hasProperty("element", equalTo("identifier")),
|
||||
hasProperty("qualifier", equalTo("orcid")),
|
||||
hasProperty("value", equalTo("0000-0000-0000-0003"))
|
||||
)
|
||||
));
|
||||
assertThat(externalDataObject2.getMetadata(), hasItem(
|
||||
allOf(
|
||||
hasProperty("schema", equalTo("dc")),
|
||||
hasProperty("element", equalTo("identifier")),
|
||||
hasProperty("qualifier", equalTo("uri")),
|
||||
hasProperty("value", equalTo("https://orcid.org/0000-0000-0000-0003"))
|
||||
)
|
||||
));
|
||||
}
|
||||
}
|
51
dspace-api/src/test/resources/org/dspace/external/provider/impl/orcid-person/person1.xml
vendored
Normal file
51
dspace-api/src/test/resources/org/dspace/external/provider/impl/orcid-person/person1.xml
vendored
Normal file
@@ -0,0 +1,51 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<person:person path="/0000-0000-0000-0001/person" xmlns:internal="http://www.orcid.org/ns/internal"
|
||||
xmlns:education="http://www.orcid.org/ns/education"
|
||||
xmlns:distinction="http://www.orcid.org/ns/distinction"
|
||||
xmlns:deprecated="http://www.orcid.org/ns/deprecated"
|
||||
xmlns:other-name="http://www.orcid.org/ns/other-name"
|
||||
xmlns:membership="http://www.orcid.org/ns/membership" xmlns:error="http://www.orcid.org/ns/error"
|
||||
xmlns:common="http://www.orcid.org/ns/common" xmlns:record="http://www.orcid.org/ns/record"
|
||||
xmlns:personal-details="http://www.orcid.org/ns/personal-details"
|
||||
xmlns:keyword="http://www.orcid.org/ns/keyword" xmlns:email="http://www.orcid.org/ns/email"
|
||||
xmlns:external-identifier="http://www.orcid.org/ns/external-identifier"
|
||||
xmlns:funding="http://www.orcid.org/ns/funding" xmlns:preferences="http://www.orcid.org/ns/preferences"
|
||||
xmlns:address="http://www.orcid.org/ns/address"
|
||||
xmlns:invited-position="http://www.orcid.org/ns/invited-position"
|
||||
xmlns:work="http://www.orcid.org/ns/work" xmlns:history="http://www.orcid.org/ns/history"
|
||||
xmlns:employment="http://www.orcid.org/ns/employment"
|
||||
xmlns:qualification="http://www.orcid.org/ns/qualification"
|
||||
xmlns:service="http://www.orcid.org/ns/service" xmlns:person="http://www.orcid.org/ns/person"
|
||||
xmlns:activities="http://www.orcid.org/ns/activities"
|
||||
xmlns:researcher-url="http://www.orcid.org/ns/researcher-url"
|
||||
xmlns:peer-review="http://www.orcid.org/ns/peer-review" xmlns:bulk="http://www.orcid.org/ns/bulk"
|
||||
xmlns:research-resource="http://www.orcid.org/ns/research-resource">
|
||||
<common:last-modified-date>2025-04-21T22:28:18.862Z</common:last-modified-date>
|
||||
<person:name visibility="public" path="0000-0000-0000-0001">
|
||||
<common:created-date>2025-04-11T15:41:21.340Z</common:created-date>
|
||||
<common:last-modified-date>2025-04-11T15:41:21.340Z</common:last-modified-date>
|
||||
<personal-details:given-names>GivenNames1</personal-details:given-names>
|
||||
<personal-details:family-name>FamilyName1</personal-details:family-name>
|
||||
</person:name>
|
||||
<other-name:other-names path="/0000-0000-0000-0001/other-names"/>
|
||||
<researcher-url:researcher-urls path="/0000-0000-0000-0001/researcher-urls"/>
|
||||
<email:emails path="/0000-0000-0000-0001/email">
|
||||
<common:last-modified-date>2025-04-21T22:28:18.862Z</common:last-modified-date>
|
||||
<email:email visibility="public" verified="true" primary="true">
|
||||
<common:created-date>2025-04-21T22:23:14.698Z</common:created-date>
|
||||
<common:last-modified-date>2025-04-21T22:28:18.862Z</common:last-modified-date>
|
||||
<common:source>
|
||||
<common:source-orcid>
|
||||
<common:uri>https://sandbox.orcid.org/0000-0000-0000-0001</common:uri>
|
||||
<common:path>0000-0000-0000-0001</common:path>
|
||||
<common:host>sandbox.orcid.org</common:host>
|
||||
</common:source-orcid>
|
||||
<common:source-name>GivenNames1 FamilyName1</common:source-name>
|
||||
</common:source>
|
||||
<email:email>person1@email.com</email:email>
|
||||
</email:email>
|
||||
</email:emails>
|
||||
<address:addresses path="/0000-0000-0000-0001/address"/>
|
||||
<keyword:keywords path="/0000-0000-0000-0001/keywords"/>
|
||||
<external-identifier:external-identifiers path="/0000-0000-0000-0001/external-identifiers"/>
|
||||
</person:person>
|
64
dspace-api/src/test/resources/org/dspace/external/provider/impl/orcid-person/person2.xml
vendored
Normal file
64
dspace-api/src/test/resources/org/dspace/external/provider/impl/orcid-person/person2.xml
vendored
Normal file
@@ -0,0 +1,64 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<person:person path="/0000-0000-0000-0002/person" xmlns:internal="http://www.orcid.org/ns/internal"
|
||||
xmlns:education="http://www.orcid.org/ns/education"
|
||||
xmlns:distinction="http://www.orcid.org/ns/distinction"
|
||||
xmlns:deprecated="http://www.orcid.org/ns/deprecated"
|
||||
xmlns:other-name="http://www.orcid.org/ns/other-name"
|
||||
xmlns:membership="http://www.orcid.org/ns/membership" xmlns:error="http://www.orcid.org/ns/error"
|
||||
xmlns:common="http://www.orcid.org/ns/common" xmlns:record="http://www.orcid.org/ns/record"
|
||||
xmlns:personal-details="http://www.orcid.org/ns/personal-details"
|
||||
xmlns:keyword="http://www.orcid.org/ns/keyword" xmlns:email="http://www.orcid.org/ns/email"
|
||||
xmlns:external-identifier="http://www.orcid.org/ns/external-identifier"
|
||||
xmlns:funding="http://www.orcid.org/ns/funding" xmlns:preferences="http://www.orcid.org/ns/preferences"
|
||||
xmlns:address="http://www.orcid.org/ns/address"
|
||||
xmlns:invited-position="http://www.orcid.org/ns/invited-position"
|
||||
xmlns:work="http://www.orcid.org/ns/work" xmlns:history="http://www.orcid.org/ns/history"
|
||||
xmlns:employment="http://www.orcid.org/ns/employment"
|
||||
xmlns:qualification="http://www.orcid.org/ns/qualification"
|
||||
xmlns:service="http://www.orcid.org/ns/service" xmlns:person="http://www.orcid.org/ns/person"
|
||||
xmlns:activities="http://www.orcid.org/ns/activities"
|
||||
xmlns:researcher-url="http://www.orcid.org/ns/researcher-url"
|
||||
xmlns:peer-review="http://www.orcid.org/ns/peer-review" xmlns:bulk="http://www.orcid.org/ns/bulk"
|
||||
xmlns:research-resource="http://www.orcid.org/ns/research-resource">
|
||||
<common:last-modified-date>2025-04-21T22:28:18.862Z</common:last-modified-date>
|
||||
<person:name visibility="public" path="0000-0000-0000-0002">
|
||||
<common:created-date>2025-04-11T15:41:21.340Z</common:created-date>
|
||||
<common:last-modified-date>2025-04-11T15:41:21.340Z</common:last-modified-date>
|
||||
<personal-details:given-names>GivenNames2</personal-details:given-names>
|
||||
<personal-details:family-name>FamilyName2</personal-details:family-name>
|
||||
</person:name>
|
||||
<other-name:other-names path="/0000-0000-0000-0002/other-names"/>
|
||||
<researcher-url:researcher-urls path="/0000-0000-0000-0002/researcher-urls"/>
|
||||
<email:emails path="/0000-0000-0000-0002/email">
|
||||
<common:last-modified-date>2025-04-21T22:28:18.862Z</common:last-modified-date>
|
||||
<email:email visibility="public" verified="true" primary="false">
|
||||
<common:created-date>2025-04-21T22:23:14.698Z</common:created-date>
|
||||
<common:last-modified-date>2025-04-21T22:28:18.862Z</common:last-modified-date>
|
||||
<common:source>
|
||||
<common:source-orcid>
|
||||
<common:uri>https://sandbox.orcid.org/0000-0000-0000-0002</common:uri>
|
||||
<common:path>0000-0000-0000-0002</common:path>
|
||||
<common:host>sandbox.orcid.org</common:host>
|
||||
</common:source-orcid>
|
||||
<common:source-name>GivenNames2 FamilyName2</common:source-name>
|
||||
</common:source>
|
||||
<email:email>person2@email.com</email:email>
|
||||
</email:email>
|
||||
<email:email visibility="public" verified="true" primary="true">
|
||||
<common:created-date>2025-04-21T16:42:54.961Z</common:created-date>
|
||||
<common:last-modified-date>2025-04-21T16:48:32.642Z</common:last-modified-date>
|
||||
<common:source>
|
||||
<common:source-orcid>
|
||||
<common:uri>https://sandbox.orcid.org/0000-0000-0000-0001</common:uri>
|
||||
<common:path>0000-0000-0000-0001</common:path>
|
||||
<common:host>sandbox.orcid.org</common:host>
|
||||
</common:source-orcid>
|
||||
<common:source-name>GivenNames1 FamilyName1</common:source-name>
|
||||
</common:source>
|
||||
<email:email>person2primary@email.com</email:email>
|
||||
</email:email>
|
||||
</email:emails>
|
||||
<address:addresses path="/0000-0000-0000-0002/address"/>
|
||||
<keyword:keywords path="/0000-0000-0000-0002/keywords"/>
|
||||
<external-identifier:external-identifiers path="/0000-0000-0000-0002/external-identifiers"/>
|
||||
</person:person>
|
35
dspace-api/src/test/resources/org/dspace/external/provider/impl/orcid-person/person3.xml
vendored
Normal file
35
dspace-api/src/test/resources/org/dspace/external/provider/impl/orcid-person/person3.xml
vendored
Normal file
@@ -0,0 +1,35 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<person:person path="/0000-0000-0000-0003/person" xmlns:internal="http://www.orcid.org/ns/internal"
|
||||
xmlns:education="http://www.orcid.org/ns/education"
|
||||
xmlns:distinction="http://www.orcid.org/ns/distinction"
|
||||
xmlns:deprecated="http://www.orcid.org/ns/deprecated"
|
||||
xmlns:other-name="http://www.orcid.org/ns/other-name"
|
||||
xmlns:membership="http://www.orcid.org/ns/membership" xmlns:error="http://www.orcid.org/ns/error"
|
||||
xmlns:common="http://www.orcid.org/ns/common" xmlns:record="http://www.orcid.org/ns/record"
|
||||
xmlns:personal-details="http://www.orcid.org/ns/personal-details"
|
||||
xmlns:keyword="http://www.orcid.org/ns/keyword" xmlns:email="http://www.orcid.org/ns/email"
|
||||
xmlns:external-identifier="http://www.orcid.org/ns/external-identifier"
|
||||
xmlns:funding="http://www.orcid.org/ns/funding" xmlns:preferences="http://www.orcid.org/ns/preferences"
|
||||
xmlns:address="http://www.orcid.org/ns/address"
|
||||
xmlns:invited-position="http://www.orcid.org/ns/invited-position"
|
||||
xmlns:work="http://www.orcid.org/ns/work" xmlns:history="http://www.orcid.org/ns/history"
|
||||
xmlns:employment="http://www.orcid.org/ns/employment"
|
||||
xmlns:qualification="http://www.orcid.org/ns/qualification"
|
||||
xmlns:service="http://www.orcid.org/ns/service" xmlns:person="http://www.orcid.org/ns/person"
|
||||
xmlns:activities="http://www.orcid.org/ns/activities"
|
||||
xmlns:researcher-url="http://www.orcid.org/ns/researcher-url"
|
||||
xmlns:peer-review="http://www.orcid.org/ns/peer-review" xmlns:bulk="http://www.orcid.org/ns/bulk"
|
||||
xmlns:research-resource="http://www.orcid.org/ns/research-resource">
|
||||
<person:name visibility="public" path="0000-0000-0000-0003">
|
||||
<common:created-date>2024-06-11T20:01:28.538Z</common:created-date>
|
||||
<common:last-modified-date>2024-06-11T20:01:28.538Z</common:last-modified-date>
|
||||
<personal-details:given-names>GivenNames3</personal-details:given-names>
|
||||
<personal-details:family-name>FamilyName3</personal-details:family-name>
|
||||
</person:name>
|
||||
<other-name:other-names path="/0000-0000-0000-0003/other-names"/>
|
||||
<researcher-url:researcher-urls path="/0000-0000-0000-0003/researcher-urls"/>
|
||||
<email:emails path="/0000-0000-0000-0003/email"/>
|
||||
<address:addresses path="/0000-0000-0000-0003/address"/>
|
||||
<keyword:keywords path="/0000-0000-0000-0003/keywords"/>
|
||||
<external-identifier:external-identifiers path="/0000-0000-0000-0003/external-identifiers"/>
|
||||
</person:person>
|
25
dspace-api/src/test/resources/org/dspace/external/provider/impl/orcid-person/search.xml
vendored
Normal file
25
dspace-api/src/test/resources/org/dspace/external/provider/impl/orcid-person/search.xml
vendored
Normal file
@@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<search:search num-found="12967" xmlns:search="http://www.orcid.org/ns/search"
|
||||
xmlns:common="http://www.orcid.org/ns/common">
|
||||
<search:result>
|
||||
<common:orcid-identifier>
|
||||
<common:uri>https://sandbox.orcid.org/0000-0000-0000-0001</common:uri>
|
||||
<common:path>0000-0000-0000-0001</common:path>
|
||||
<common:host>sandbox.orcid.org</common:host>
|
||||
</common:orcid-identifier>
|
||||
</search:result>
|
||||
<search:result>
|
||||
<common:orcid-identifier>
|
||||
<common:uri>https://sandbox.orcid.org/0000-0000-0000-0002</common:uri>
|
||||
<common:path>0000-0000-0000-0002</common:path>
|
||||
<common:host>sandbox.orcid.org</common:host>
|
||||
</common:orcid-identifier>
|
||||
</search:result>
|
||||
<search:result>
|
||||
<common:orcid-identifier>
|
||||
<common:uri>https://sandbox.orcid.org/0000-0000-0000-0003</common:uri>
|
||||
<common:path>0000-0000-0000-0003</common:path>
|
||||
<common:host>sandbox.orcid.org</common:host>
|
||||
</common:orcid-identifier>
|
||||
</search:result>
|
||||
</search:search>
|
51
dspace-api/src/test/resources/org/dspace/external/provider/orcid-v3-author/person1.xml
vendored
Normal file
51
dspace-api/src/test/resources/org/dspace/external/provider/orcid-v3-author/person1.xml
vendored
Normal file
@@ -0,0 +1,51 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<person:person path="/0000-0000-0000-0001/person" xmlns:internal="http://www.orcid.org/ns/internal"
|
||||
xmlns:education="http://www.orcid.org/ns/education"
|
||||
xmlns:distinction="http://www.orcid.org/ns/distinction"
|
||||
xmlns:deprecated="http://www.orcid.org/ns/deprecated"
|
||||
xmlns:other-name="http://www.orcid.org/ns/other-name"
|
||||
xmlns:membership="http://www.orcid.org/ns/membership" xmlns:error="http://www.orcid.org/ns/error"
|
||||
xmlns:common="http://www.orcid.org/ns/common" xmlns:record="http://www.orcid.org/ns/record"
|
||||
xmlns:personal-details="http://www.orcid.org/ns/personal-details"
|
||||
xmlns:keyword="http://www.orcid.org/ns/keyword" xmlns:email="http://www.orcid.org/ns/email"
|
||||
xmlns:external-identifier="http://www.orcid.org/ns/external-identifier"
|
||||
xmlns:funding="http://www.orcid.org/ns/funding" xmlns:preferences="http://www.orcid.org/ns/preferences"
|
||||
xmlns:address="http://www.orcid.org/ns/address"
|
||||
xmlns:invited-position="http://www.orcid.org/ns/invited-position"
|
||||
xmlns:work="http://www.orcid.org/ns/work" xmlns:history="http://www.orcid.org/ns/history"
|
||||
xmlns:employment="http://www.orcid.org/ns/employment"
|
||||
xmlns:qualification="http://www.orcid.org/ns/qualification"
|
||||
xmlns:service="http://www.orcid.org/ns/service" xmlns:person="http://www.orcid.org/ns/person"
|
||||
xmlns:activities="http://www.orcid.org/ns/activities"
|
||||
xmlns:researcher-url="http://www.orcid.org/ns/researcher-url"
|
||||
xmlns:peer-review="http://www.orcid.org/ns/peer-review" xmlns:bulk="http://www.orcid.org/ns/bulk"
|
||||
xmlns:research-resource="http://www.orcid.org/ns/research-resource">
|
||||
<common:last-modified-date>2025-04-21T22:28:18.862Z</common:last-modified-date>
|
||||
<person:name visibility="public" path="0000-0000-0000-0001">
|
||||
<common:created-date>2025-04-11T15:41:21.340Z</common:created-date>
|
||||
<common:last-modified-date>2025-04-11T15:41:21.340Z</common:last-modified-date>
|
||||
<personal-details:given-names>GivenNames1</personal-details:given-names>
|
||||
<personal-details:family-name>FamilyName1</personal-details:family-name>
|
||||
</person:name>
|
||||
<other-name:other-names path="/0000-0000-0000-0001/other-names"/>
|
||||
<researcher-url:researcher-urls path="/0000-0000-0000-0001/researcher-urls"/>
|
||||
<email:emails path="/0000-0000-0000-0001/email">
|
||||
<common:last-modified-date>2025-04-21T22:28:18.862Z</common:last-modified-date>
|
||||
<email:email visibility="public" verified="true" primary="true">
|
||||
<common:created-date>2025-04-21T22:23:14.698Z</common:created-date>
|
||||
<common:last-modified-date>2025-04-21T22:28:18.862Z</common:last-modified-date>
|
||||
<common:source>
|
||||
<common:source-orcid>
|
||||
<common:uri>https://sandbox.orcid.org/0000-0000-0000-0001</common:uri>
|
||||
<common:path>0000-0000-0000-0001</common:path>
|
||||
<common:host>sandbox.orcid.org</common:host>
|
||||
</common:source-orcid>
|
||||
<common:source-name>GivenNames1 FamilyName1</common:source-name>
|
||||
</common:source>
|
||||
<email:email>person1@email.com</email:email>
|
||||
</email:email>
|
||||
</email:emails>
|
||||
<address:addresses path="/0000-0000-0000-0001/address"/>
|
||||
<keyword:keywords path="/0000-0000-0000-0001/keywords"/>
|
||||
<external-identifier:external-identifiers path="/0000-0000-0000-0001/external-identifiers"/>
|
||||
</person:person>
|
64
dspace-api/src/test/resources/org/dspace/external/provider/orcid-v3-author/person2.xml
vendored
Normal file
64
dspace-api/src/test/resources/org/dspace/external/provider/orcid-v3-author/person2.xml
vendored
Normal file
@@ -0,0 +1,64 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<person:person path="/0000-0000-0000-0002/person" xmlns:internal="http://www.orcid.org/ns/internal"
|
||||
xmlns:education="http://www.orcid.org/ns/education"
|
||||
xmlns:distinction="http://www.orcid.org/ns/distinction"
|
||||
xmlns:deprecated="http://www.orcid.org/ns/deprecated"
|
||||
xmlns:other-name="http://www.orcid.org/ns/other-name"
|
||||
xmlns:membership="http://www.orcid.org/ns/membership" xmlns:error="http://www.orcid.org/ns/error"
|
||||
xmlns:common="http://www.orcid.org/ns/common" xmlns:record="http://www.orcid.org/ns/record"
|
||||
xmlns:personal-details="http://www.orcid.org/ns/personal-details"
|
||||
xmlns:keyword="http://www.orcid.org/ns/keyword" xmlns:email="http://www.orcid.org/ns/email"
|
||||
xmlns:external-identifier="http://www.orcid.org/ns/external-identifier"
|
||||
xmlns:funding="http://www.orcid.org/ns/funding" xmlns:preferences="http://www.orcid.org/ns/preferences"
|
||||
xmlns:address="http://www.orcid.org/ns/address"
|
||||
xmlns:invited-position="http://www.orcid.org/ns/invited-position"
|
||||
xmlns:work="http://www.orcid.org/ns/work" xmlns:history="http://www.orcid.org/ns/history"
|
||||
xmlns:employment="http://www.orcid.org/ns/employment"
|
||||
xmlns:qualification="http://www.orcid.org/ns/qualification"
|
||||
xmlns:service="http://www.orcid.org/ns/service" xmlns:person="http://www.orcid.org/ns/person"
|
||||
xmlns:activities="http://www.orcid.org/ns/activities"
|
||||
xmlns:researcher-url="http://www.orcid.org/ns/researcher-url"
|
||||
xmlns:peer-review="http://www.orcid.org/ns/peer-review" xmlns:bulk="http://www.orcid.org/ns/bulk"
|
||||
xmlns:research-resource="http://www.orcid.org/ns/research-resource">
|
||||
<common:last-modified-date>2025-04-21T22:28:18.862Z</common:last-modified-date>
|
||||
<person:name visibility="public" path="0000-0000-0000-0002">
|
||||
<common:created-date>2025-04-11T15:41:21.340Z</common:created-date>
|
||||
<common:last-modified-date>2025-04-11T15:41:21.340Z</common:last-modified-date>
|
||||
<personal-details:given-names>GivenNames2</personal-details:given-names>
|
||||
<personal-details:family-name>FamilyName2</personal-details:family-name>
|
||||
</person:name>
|
||||
<other-name:other-names path="/0000-0000-0000-0002/other-names"/>
|
||||
<researcher-url:researcher-urls path="/0000-0000-0000-0002/researcher-urls"/>
|
||||
<email:emails path="/0000-0000-0000-0002/email">
|
||||
<common:last-modified-date>2025-04-21T22:28:18.862Z</common:last-modified-date>
|
||||
<email:email visibility="public" verified="true" primary="false">
|
||||
<common:created-date>2025-04-21T22:23:14.698Z</common:created-date>
|
||||
<common:last-modified-date>2025-04-21T22:28:18.862Z</common:last-modified-date>
|
||||
<common:source>
|
||||
<common:source-orcid>
|
||||
<common:uri>https://sandbox.orcid.org/0000-0000-0000-0002</common:uri>
|
||||
<common:path>0000-0000-0000-0002</common:path>
|
||||
<common:host>sandbox.orcid.org</common:host>
|
||||
</common:source-orcid>
|
||||
<common:source-name>GivenNames2 FamilyName2</common:source-name>
|
||||
</common:source>
|
||||
<email:email>person2@email.com</email:email>
|
||||
</email:email>
|
||||
<email:email visibility="public" verified="true" primary="true">
|
||||
<common:created-date>2025-04-21T16:42:54.961Z</common:created-date>
|
||||
<common:last-modified-date>2025-04-21T16:48:32.642Z</common:last-modified-date>
|
||||
<common:source>
|
||||
<common:source-orcid>
|
||||
<common:uri>https://sandbox.orcid.org/0000-0000-0000-0001</common:uri>
|
||||
<common:path>0000-0000-0000-0001</common:path>
|
||||
<common:host>sandbox.orcid.org</common:host>
|
||||
</common:source-orcid>
|
||||
<common:source-name>GivenNames1 FamilyName1</common:source-name>
|
||||
</common:source>
|
||||
<email:email>person2primary@email.com</email:email>
|
||||
</email:email>
|
||||
</email:emails>
|
||||
<address:addresses path="/0000-0000-0000-0002/address"/>
|
||||
<keyword:keywords path="/0000-0000-0000-0002/keywords"/>
|
||||
<external-identifier:external-identifiers path="/0000-0000-0000-0002/external-identifiers"/>
|
||||
</person:person>
|
35
dspace-api/src/test/resources/org/dspace/external/provider/orcid-v3-author/person3.xml
vendored
Normal file
35
dspace-api/src/test/resources/org/dspace/external/provider/orcid-v3-author/person3.xml
vendored
Normal file
@@ -0,0 +1,35 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<person:person path="/0000-0000-0000-0003/person" xmlns:internal="http://www.orcid.org/ns/internal"
|
||||
xmlns:education="http://www.orcid.org/ns/education"
|
||||
xmlns:distinction="http://www.orcid.org/ns/distinction"
|
||||
xmlns:deprecated="http://www.orcid.org/ns/deprecated"
|
||||
xmlns:other-name="http://www.orcid.org/ns/other-name"
|
||||
xmlns:membership="http://www.orcid.org/ns/membership" xmlns:error="http://www.orcid.org/ns/error"
|
||||
xmlns:common="http://www.orcid.org/ns/common" xmlns:record="http://www.orcid.org/ns/record"
|
||||
xmlns:personal-details="http://www.orcid.org/ns/personal-details"
|
||||
xmlns:keyword="http://www.orcid.org/ns/keyword" xmlns:email="http://www.orcid.org/ns/email"
|
||||
xmlns:external-identifier="http://www.orcid.org/ns/external-identifier"
|
||||
xmlns:funding="http://www.orcid.org/ns/funding" xmlns:preferences="http://www.orcid.org/ns/preferences"
|
||||
xmlns:address="http://www.orcid.org/ns/address"
|
||||
xmlns:invited-position="http://www.orcid.org/ns/invited-position"
|
||||
xmlns:work="http://www.orcid.org/ns/work" xmlns:history="http://www.orcid.org/ns/history"
|
||||
xmlns:employment="http://www.orcid.org/ns/employment"
|
||||
xmlns:qualification="http://www.orcid.org/ns/qualification"
|
||||
xmlns:service="http://www.orcid.org/ns/service" xmlns:person="http://www.orcid.org/ns/person"
|
||||
xmlns:activities="http://www.orcid.org/ns/activities"
|
||||
xmlns:researcher-url="http://www.orcid.org/ns/researcher-url"
|
||||
xmlns:peer-review="http://www.orcid.org/ns/peer-review" xmlns:bulk="http://www.orcid.org/ns/bulk"
|
||||
xmlns:research-resource="http://www.orcid.org/ns/research-resource">
|
||||
<person:name visibility="public" path="0000-0000-0000-0003">
|
||||
<common:created-date>2024-06-11T20:01:28.538Z</common:created-date>
|
||||
<common:last-modified-date>2024-06-11T20:01:28.538Z</common:last-modified-date>
|
||||
<personal-details:given-names>GivenNames3</personal-details:given-names>
|
||||
<personal-details:family-name>FamilyName3</personal-details:family-name>
|
||||
</person:name>
|
||||
<other-name:other-names path="/0000-0000-0000-0003/other-names"/>
|
||||
<researcher-url:researcher-urls path="/0000-0000-0000-0003/researcher-urls"/>
|
||||
<email:emails path="/0000-0000-0000-0003/email"/>
|
||||
<address:addresses path="/0000-0000-0000-0003/address"/>
|
||||
<keyword:keywords path="/0000-0000-0000-0003/keywords"/>
|
||||
<external-identifier:external-identifiers path="/0000-0000-0000-0003/external-identifiers"/>
|
||||
</person:person>
|
25
dspace-api/src/test/resources/org/dspace/external/provider/orcid-v3-author/search.xml
vendored
Normal file
25
dspace-api/src/test/resources/org/dspace/external/provider/orcid-v3-author/search.xml
vendored
Normal file
@@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<search:search num-found="12967" xmlns:search="http://www.orcid.org/ns/search"
|
||||
xmlns:common="http://www.orcid.org/ns/common">
|
||||
<search:result>
|
||||
<common:orcid-identifier>
|
||||
<common:uri>https://sandbox.orcid.org/0000-0000-0000-0001</common:uri>
|
||||
<common:path>0000-0000-0000-0001</common:path>
|
||||
<common:host>sandbox.orcid.org</common:host>
|
||||
</common:orcid-identifier>
|
||||
</search:result>
|
||||
<search:result>
|
||||
<common:orcid-identifier>
|
||||
<common:uri>https://sandbox.orcid.org/0000-0000-0000-0002</common:uri>
|
||||
<common:path>0000-0000-0000-0002</common:path>
|
||||
<common:host>sandbox.orcid.org</common:host>
|
||||
</common:orcid-identifier>
|
||||
</search:result>
|
||||
<search:result>
|
||||
<common:orcid-identifier>
|
||||
<common:uri>https://sandbox.orcid.org/0000-0000-0000-0003</common:uri>
|
||||
<common:path>0000-0000-0000-0003</common:path>
|
||||
<common:host>sandbox.orcid.org</common:host>
|
||||
</common:orcid-identifier>
|
||||
</search:result>
|
||||
</search:search>
|
Reference in New Issue
Block a user