use of org.orcid.persistence.jpa.entities.OrgEntity in project ORCID-Source by ORCID.
the class LoadRinggoldData method generateOrganizationFromInstitutionNode.
private void generateOrganizationFromInstitutionNode(OrgDisambiguatedEntity disambiguatedEntity, String name, Iso3166Country country, String city, String region) {
Date now = new Date();
// Not happy with line below. Can steal from other ORG ID types.
OrgEntity existingOrg = orgDao.findByNameCityRegionAndCountry(name, city, region, country);
if (existingOrg != null) {
if (existingOrg.getOrgDisambiguated() == null) {
existingOrg.setOrgDisambiguated(disambiguatedEntity);
existingOrg.setLastModified(now);
orgDao.merge(existingOrg);
numUpdatedOrgs++;
}
} else {
OrgEntity newOrg = new OrgEntity();
newOrg.setDateCreated(now);
newOrg.setLastModified(now);
newOrg.setRegion(region);
newOrg.setCity(city);
newOrg.setCountry(country);
newOrg.setName(name);
newOrg.setOrgDisambiguated(disambiguatedEntity);
orgDao.persist(newOrg);
numAddedOrgs++;
}
}
use of org.orcid.persistence.jpa.entities.OrgEntity in project ORCID-Source by ORCID.
the class Jpa2JaxbAdapterTest method testProfileEntityToOrcidMessage.
@Test
public void testProfileEntityToOrcidMessage() {
String userOrcid = "0000-0000-0000-1234";
String clientId = "APP-5555555555555555";
ProfileEntity profile = new ProfileEntity(userOrcid);
// Set default visibility
profile.setActivitiesVisibilityDefault(org.orcid.jaxb.model.common_v2.Visibility.LIMITED);
// Set name
RecordNameEntity name = new RecordNameEntity();
name.setCreditName("My credit name");
name.setFamilyName("My family name");
name.setGivenNames("My given names");
name.setVisibility(org.orcid.jaxb.model.common_v2.Visibility.PUBLIC);
profile.setRecordNameEntity(name);
// Set biography
BiographyEntity bio = new BiographyEntity();
bio.setBiography("This is my biography");
bio.setVisibility(org.orcid.jaxb.model.common_v2.Visibility.PUBLIC);
profile.setBiographyEntity(bio);
// Set other names
TreeSet<OtherNameEntity> otherNames = new TreeSet<OtherNameEntity>();
OtherNameEntity otherName = new OtherNameEntity();
otherName.setDisplayName("My other name");
otherName.setVisibility(org.orcid.jaxb.model.common_v2.Visibility.PUBLIC);
otherName.setDisplayIndex(20000L);
otherName.setClientSourceId(clientId);
otherName.setId(24816L);
otherNames.add(otherName);
profile.setOtherNames(otherNames);
// Set address
Set<AddressEntity> addresses = new HashSet<AddressEntity>();
AddressEntity address = new AddressEntity();
address.setIso2Country(Iso3166Country.US);
address.setVisibility(org.orcid.jaxb.model.common_v2.Visibility.PUBLIC);
address.setDisplayIndex(20000L);
address.setClientSourceId(clientId);
address.setId(24816L);
addresses.add(address);
profile.setAddresses(addresses);
// Set keywords
TreeSet<ProfileKeywordEntity> keywords = new TreeSet<ProfileKeywordEntity>();
ProfileKeywordEntity keyword = new ProfileKeywordEntity();
keyword.setKeywordName("My keyword");
keyword.setVisibility(org.orcid.jaxb.model.common_v2.Visibility.PUBLIC);
keyword.setDisplayIndex(20000L);
keyword.setClientSourceId(clientId);
keyword.setId(24816L);
keywords.add(keyword);
profile.setKeywords(keywords);
// Set researcher urls
TreeSet<ResearcherUrlEntity> rUrls = new TreeSet<ResearcherUrlEntity>();
ResearcherUrlEntity rUrl = new ResearcherUrlEntity();
rUrl.setUrl("http://orcid.org");
rUrl.setUrlName("My rUrl");
rUrl.setVisibility(org.orcid.jaxb.model.common_v2.Visibility.PUBLIC);
rUrl.setDisplayIndex(20000L);
rUrl.setClientSourceId(clientId);
rUrl.setId(24816L);
rUrls.add(rUrl);
profile.setResearcherUrls(rUrls);
// Set external identifiers
Set<ExternalIdentifierEntity> extIds = new HashSet<ExternalIdentifierEntity>();
ExternalIdentifierEntity extId = new ExternalIdentifierEntity();
extId.setExternalIdCommonName("My common name");
extId.setExternalIdReference("My refrence");
extId.setExternalIdUrl("http://orcid.org");
extId.setVisibility(org.orcid.jaxb.model.common_v2.Visibility.PUBLIC);
extId.setDisplayIndex(20000L);
extId.setClientSourceId(clientId);
extId.setId(24816L);
extIds.add(extId);
profile.setExternalIdentifiers(extIds);
// Set works
TreeSet<WorkEntity> works = new TreeSet<WorkEntity>();
WorkEntity work = new WorkEntity();
work.setWorkType(WorkType.OTHER);
work.setTitle("My work title");
work.setVisibility(org.orcid.jaxb.model.common_v2.Visibility.PUBLIC);
work.setDisplayIndex(20000L);
work.setClientSourceId(clientId);
work.setId(24816L);
work.setOrcid(profile.getId());
works.add(work);
when(mockWorkEntityCacheManager.retrieveFullWorks(userOrcid, 0)).thenReturn(new ArrayList<>(works));
// Existing org
OrgEntity newOrg = new OrgEntity();
newOrg.setId(1234L);
newOrg.setCity("San Jose");
newOrg.setCountry(org.orcid.jaxb.model.message.Iso3166Country.CR);
newOrg.setName("My org name");
// Set funding
TreeSet<ProfileFundingEntity> fundings = new TreeSet<ProfileFundingEntity>();
ProfileFundingEntity funding = new ProfileFundingEntity();
funding.setOrg(newOrg);
funding.setTitle("My funding title");
funding.setVisibility(org.orcid.jaxb.model.common_v2.Visibility.PUBLIC);
funding.setDisplayIndex(20000L);
funding.setClientSourceId(clientId);
funding.setId(24816L);
fundings.add(funding);
profile.setProfileFunding(fundings);
// Set affiliations
TreeSet<OrgAffiliationRelationEntity> affiliations = new TreeSet<OrgAffiliationRelationEntity>();
OrgAffiliationRelationEntity affiliation = new OrgAffiliationRelationEntity();
affiliation.setAffiliationType(org.orcid.jaxb.model.v3.dev1.record.AffiliationType.EDUCATION);
affiliation.setOrg(newOrg);
affiliation.setVisibility(org.orcid.jaxb.model.common_v2.Visibility.PUBLIC);
affiliation.setClientSourceId(clientId);
affiliation.setId(24816L);
affiliations.add(affiliation);
profile.setOrgAffiliationRelations(affiliations);
OrcidProfile orcidProfile = adapter.toOrcidProfile(profile, LoadOptions.ALL);
// Check profile
assertNotNull(orcidProfile);
assertNotNull(orcidProfile.getOrcidIdentifier());
assertEquals("http://orcid.org/" + userOrcid, orcidProfile.getOrcidIdentifier().getUri());
assertEquals("orcid.org", orcidProfile.getOrcidIdentifier().getHost());
assertEquals(userOrcid, orcidProfile.getOrcidIdentifier().getPath());
// Check activities
assertNotNull(orcidProfile.getOrcidActivities());
// Check works
assertNotNull(orcidProfile.getOrcidActivities().getOrcidWorks());
assertNotNull(orcidProfile.getOrcidActivities().getOrcidWorks().getOrcidWork());
assertEquals(1, orcidProfile.getOrcidActivities().getOrcidWorks().getOrcidWork().size());
assertEquals("My work title", orcidProfile.getOrcidActivities().getOrcidWorks().getOrcidWork().get(0).getWorkTitle().getTitle().getContent());
assertEquals("24816", orcidProfile.getOrcidActivities().getOrcidWorks().getOrcidWork().get(0).getPutCode());
assertEquals(org.orcid.jaxb.model.message.Visibility.PUBLIC, orcidProfile.getOrcidActivities().getOrcidWorks().getOrcidWork().get(0).getVisibility());
checkSource(orcidProfile.getOrcidActivities().getOrcidWorks().getOrcidWork().get(0).getSource(), clientId);
// Check fundings
assertNotNull(orcidProfile.getOrcidActivities().getFundings());
assertNotNull(orcidProfile.getOrcidActivities().getFundings().getFundings());
assertEquals(1, orcidProfile.getOrcidActivities().getFundings().getFundings().size());
assertEquals("My funding title", orcidProfile.getOrcidActivities().getFundings().getFundings().get(0).getTitle().getTitle().getContent());
assertEquals("24816", orcidProfile.getOrcidActivities().getFundings().getFundings().get(0).getPutCode());
assertEquals(org.orcid.jaxb.model.message.Visibility.PUBLIC, orcidProfile.getOrcidActivities().getFundings().getFundings().get(0).getVisibility());
checkSource(orcidProfile.getOrcidActivities().getFundings().getFundings().get(0).getSource(), clientId);
// Check affiliations
assertNotNull(orcidProfile.getOrcidActivities().getAffiliations());
assertNotNull(orcidProfile.getOrcidActivities().getAffiliations().getAffiliation());
assertEquals(1, orcidProfile.getOrcidActivities().getAffiliations().getAffiliation().size());
assertEquals(AffiliationType.EDUCATION, orcidProfile.getOrcidActivities().getAffiliations().getAffiliation().get(0).getType());
assertEquals("My org name", orcidProfile.getOrcidActivities().getAffiliations().getAffiliation().get(0).getOrganization().getName());
assertEquals("San Jose", orcidProfile.getOrcidActivities().getAffiliations().getAffiliation().get(0).getOrganization().getAddress().getCity());
assertEquals(org.orcid.jaxb.model.message.Iso3166Country.CR, orcidProfile.getOrcidActivities().getAffiliations().getAffiliation().get(0).getOrganization().getAddress().getCountry());
assertEquals("24816", orcidProfile.getOrcidActivities().getAffiliations().getAffiliation().get(0).getPutCode());
assertEquals(org.orcid.jaxb.model.message.Visibility.PUBLIC, orcidProfile.getOrcidActivities().getAffiliations().getAffiliation().get(0).getVisibility());
checkSource(orcidProfile.getOrcidActivities().getAffiliations().getAffiliation().get(0).getSource(), clientId);
// Check biography
assertNotNull(orcidProfile.getOrcidBio());
// Check name
assertNotNull(orcidProfile.getOrcidBio().getPersonalDetails());
assertNotNull(orcidProfile.getOrcidBio().getPersonalDetails().getCreditName());
assertEquals("My credit name", orcidProfile.getOrcidBio().getPersonalDetails().getCreditName().getContent());
assertEquals(org.orcid.jaxb.model.message.Visibility.PUBLIC, orcidProfile.getOrcidBio().getPersonalDetails().getCreditName().getVisibility());
assertNotNull(orcidProfile.getOrcidBio().getPersonalDetails().getGivenNames());
assertEquals("My given names", orcidProfile.getOrcidBio().getPersonalDetails().getGivenNames().getContent());
assertEquals(org.orcid.jaxb.model.message.Visibility.PUBLIC, orcidProfile.getOrcidBio().getPersonalDetails().getGivenNames().getVisibility());
assertNotNull(orcidProfile.getOrcidBio().getPersonalDetails().getFamilyName());
assertEquals("My family name", orcidProfile.getOrcidBio().getPersonalDetails().getFamilyName().getContent());
assertEquals(org.orcid.jaxb.model.message.Visibility.PUBLIC, orcidProfile.getOrcidBio().getPersonalDetails().getFamilyName().getVisibility());
// Check other names
assertNotNull(orcidProfile.getOrcidBio().getPersonalDetails().getOtherNames());
assertNotNull(orcidProfile.getOrcidBio().getPersonalDetails().getOtherNames().getOtherName());
assertEquals(org.orcid.jaxb.model.message.Visibility.PUBLIC, orcidProfile.getOrcidBio().getPersonalDetails().getOtherNames().getVisibility());
assertEquals(1, orcidProfile.getOrcidBio().getPersonalDetails().getOtherNames().getOtherName().size());
// Check biography
assertNotNull(orcidProfile.getOrcidBio().getBiography());
assertEquals("This is my biography", orcidProfile.getOrcidBio().getBiography().getContent());
assertEquals(org.orcid.jaxb.model.message.Visibility.PUBLIC, orcidProfile.getOrcidBio().getBiography().getVisibility());
// Check address
assertNotNull(orcidProfile.getOrcidBio().getContactDetails());
assertNotNull(orcidProfile.getOrcidBio().getContactDetails().getAddress());
assertNotNull(orcidProfile.getOrcidBio().getContactDetails().getAddress().getCountry());
assertEquals(org.orcid.jaxb.model.message.Iso3166Country.US, orcidProfile.getOrcidBio().getContactDetails().getAddress().getCountry().getValue());
assertEquals(org.orcid.jaxb.model.message.Visibility.PUBLIC, orcidProfile.getOrcidBio().getContactDetails().getAddress().getCountry().getVisibility());
// Check keywords
assertNotNull(orcidProfile.getOrcidBio().getKeywords());
assertNotNull(orcidProfile.getOrcidBio().getKeywords().getKeyword());
assertEquals(1, orcidProfile.getOrcidBio().getKeywords().getKeyword().size());
assertEquals(org.orcid.jaxb.model.message.Visibility.PUBLIC, orcidProfile.getOrcidBio().getKeywords().getVisibility());
assertEquals("My keyword", orcidProfile.getOrcidBio().getKeywords().getKeyword().get(0).getContent());
// Check researcher urls
assertNotNull(orcidProfile.getOrcidBio().getResearcherUrls());
assertNotNull(orcidProfile.getOrcidBio().getResearcherUrls().getResearcherUrl());
assertEquals(org.orcid.jaxb.model.message.Visibility.PUBLIC, orcidProfile.getOrcidBio().getResearcherUrls().getVisibility());
assertEquals(1, orcidProfile.getOrcidBio().getResearcherUrls().getResearcherUrl().size());
assertEquals("My rUrl", orcidProfile.getOrcidBio().getResearcherUrls().getResearcherUrl().get(0).getUrlName().getContent());
assertEquals("http://orcid.org", orcidProfile.getOrcidBio().getResearcherUrls().getResearcherUrl().get(0).getUrl().getValue());
// Check external identifiers
assertNotNull(orcidProfile.getOrcidBio().getExternalIdentifiers());
assertNotNull(orcidProfile.getOrcidBio().getExternalIdentifiers().getExternalIdentifier());
assertEquals(1, orcidProfile.getOrcidBio().getExternalIdentifiers().getExternalIdentifier().size());
assertEquals("My common name", orcidProfile.getOrcidBio().getExternalIdentifiers().getExternalIdentifier().get(0).getExternalIdCommonName().getContent());
assertEquals("My refrence", orcidProfile.getOrcidBio().getExternalIdentifiers().getExternalIdentifier().get(0).getExternalIdReference().getContent());
assertEquals("http://orcid.org", orcidProfile.getOrcidBio().getExternalIdentifiers().getExternalIdentifier().get(0).getExternalIdUrl().getValue());
assertEquals(org.orcid.jaxb.model.message.Visibility.PUBLIC, orcidProfile.getOrcidBio().getExternalIdentifiers().getExternalIdentifier().get(0).getVisibility());
checkSource(orcidProfile.getOrcidBio().getExternalIdentifiers().getExternalIdentifier().get(0).getSource(), clientId);
}
use of org.orcid.persistence.jpa.entities.OrgEntity in project ORCID-Source by ORCID.
the class LoadLEIDataTest method testUpdate.
@Test
public void testUpdate() throws URISyntaxException, FileNotFoundException, XMLStreamException {
Path path = Paths.get(getClass().getClassLoader().getResource("lei/complex.xml").toURI());
File testFile = path.toFile();
// fake finding existing
OrgDisambiguatedEntity found = new OrgDisambiguatedEntity();
found.setSourceId("213800ZH4VUOQOUVYX93");
found.setSourceType("LEI");
Mockito.when(orgDisambiguatedDao.findBySourceIdAndSourceType(Mockito.anyString(), Mockito.anyString())).thenReturn(found);
// capture merge
ArgumentCaptor<OrgDisambiguatedEntity> argument = ArgumentCaptor.forClass(OrgDisambiguatedEntity.class);
Mockito.when(orgDisambiguatedDao.merge(argument.capture())).then(AdditionalAnswers.returnsFirstArg());
// fake finding existing org
Mockito.when(orgDao.findByAddressAndDisambiguatedOrg(Mockito.anyString(), Mockito.anyString(), Mockito.anyString(), Mockito.anyObject(), Mockito.anyObject())).thenReturn(new OrgEntity());
// make sure we're not calling the wrong things
doThrow(new RuntimeException()).when(orgDao).persist(Mockito.anyObject());
doThrow(new RuntimeException()).when(orgDao).merge(Mockito.anyObject());
doThrow(new RuntimeException()).when(orgDisambiguatedDao).persist(Mockito.anyObject());
loadLeiData.setFileToLoad(testFile);
loadLeiData.execute();
assertEquals("213800ZH4VUOQOUVYX93", argument.getValue().getSourceId());
assertEquals("МОНБАТ АД", argument.getValue().getName());
assertEquals("SOFIA", argument.getValue().getCity());
assertEquals("BG", argument.getValue().getCountry().value());
assertEquals("AKTSIONERNO DRUZHESTVO", argument.getValue().getOrgType());
assertEquals("BG-22", argument.getValue().getRegion());
assertEquals("PENDING", argument.getValue().getIndexingStatus().toString());
assertEquals(null, argument.getValue().getStatus());
assertEquals("LEI", argument.getValue().getSourceType());
}
use of org.orcid.persistence.jpa.entities.OrgEntity in project ORCID-Source by ORCID.
the class LoadLEIDataTest method testAddComplexRecord.
@Test
public void testAddComplexRecord() throws XMLStreamException, URISyntaxException, FileNotFoundException {
Path path = Paths.get(getClass().getClassLoader().getResource("lei/complex.xml").toURI());
File testFile = path.toFile();
ArgumentCaptor<OrgDisambiguatedEntity> argument = ArgumentCaptor.forClass(OrgDisambiguatedEntity.class);
doNothing().when(orgDisambiguatedDao).persist(argument.capture());
;
ArgumentCaptor<OrgEntity> orgArgument = ArgumentCaptor.forClass(OrgEntity.class);
doNothing().when(orgDao).persist(orgArgument.capture());
loadLeiData.setFileToLoad(testFile);
loadLeiData.execute();
assertEquals("213800ZH4VUOQOUVYX93", argument.getValue().getSourceId());
assertEquals("МОНБАТ АД", argument.getValue().getName());
assertEquals("SOFIA", argument.getValue().getCity());
assertEquals("BG", argument.getValue().getCountry().value());
assertEquals("AKTSIONERNO DRUZHESTVO", argument.getValue().getOrgType());
assertEquals("BG-22", argument.getValue().getRegion());
assertEquals("PENDING", argument.getValue().getIndexingStatus().toString());
assertEquals(null, argument.getValue().getStatus());
assertEquals("LEI", argument.getValue().getSourceType());
assertEquals("MONBAT PLC", orgArgument.getAllValues().get(0).getName());
assertEquals("SOFIA", orgArgument.getAllValues().get(0).getCity());
assertEquals("BG", orgArgument.getAllValues().get(0).getCountry().value());
assertEquals("BG-22", orgArgument.getAllValues().get(0).getRegion());
assertEquals("213800ZH4VUOQOUVYX93", orgArgument.getAllValues().get(0).getOrgDisambiguated().getSourceId());
}
use of org.orcid.persistence.jpa.entities.OrgEntity in project ORCID-Source by ORCID.
the class LoadRinggoldDataTest method test_LinkExistingOrgToNewDisambiguatedOrg.
@Test
public void test_LinkExistingOrgToNewDisambiguatedOrg() throws URISyntaxException {
setupInitialMocks();
Path path = Paths.get(getClass().getClassLoader().getResource("ringgold/test_LinkExistingOrgToNewDisambiguatedOrg/").toURI());
File testDirectory = path.toFile();
assertTrue(testDirectory.exists());
loader.setDirectory(testDirectory);
loader.execute();
verify(mockOrgDisambiguatedDao, times(0)).persist(any());
verify(mockOrgDisambiguatedDao, times(0)).merge(any());
verify(mockOrgDisambiguatedExternalIdentifierDao, times(0)).persist(any());
verify(mockOrgDisambiguatedExternalIdentifierDao, times(0)).merge(any());
verify(mockOrgDisambiguatedExternalIdentifierDao, times(0)).remove(anyLong());
ArgumentCaptor<OrgEntity> captor = ArgumentCaptor.forClass(OrgEntity.class);
verify(mockOrgDao, times(0)).persist(any());
verify(mockOrgDao, times(1)).merge(captor.capture());
List<OrgEntity> list = captor.getAllValues();
assertEquals(1, list.size());
OrgEntity entity = list.get(0);
assertEquals("AltCity#3", entity.getCity());
assertEquals(Iso3166Country.CR, entity.getCountry());
assertEquals("Testing Org", entity.getName());
assertEquals(Long.valueOf(3000), entity.getOrgDisambiguated().getId());
assertEquals(null, entity.getRegion());
}
Aggregations