Search in sources :

Example 46 with Keyword

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

the class ProfileKeywordManagerImpl method updateKeywords.

@Override
@Transactional
public Keywords updateKeywords(String orcid, Keywords keywords) {
    List<ProfileKeywordEntity> existingKeywordsList = profileKeywordDao.getProfileKeywords(orcid, getLastModified(orcid));
    // Delete the deleted ones
    for (ProfileKeywordEntity existing : existingKeywordsList) {
        boolean deleteMe = true;
        if (keywords.getKeywords() != null) {
            for (Keyword updatedOrNew : keywords.getKeywords()) {
                if (existing.getId().equals(updatedOrNew.getPutCode())) {
                    deleteMe = false;
                    break;
                }
            }
        }
        if (deleteMe) {
            try {
                profileKeywordDao.deleteProfileKeyword(existing);
            } catch (Exception e) {
                throw new ApplicationException("Unable to delete keyword " + existing.getId(), e);
            }
        }
    }
    if (keywords != null && keywords.getKeywords() != null) {
        for (Keyword updatedOrNew : keywords.getKeywords()) {
            if (updatedOrNew.getPutCode() != null) {
                // Update the existing ones
                for (ProfileKeywordEntity existingKeyword : existingKeywordsList) {
                    if (existingKeyword.getId().equals(updatedOrNew.getPutCode())) {
                        existingKeyword.setLastModified(new Date());
                        existingKeyword.setVisibility(org.orcid.jaxb.model.common_v2.Visibility.fromValue(updatedOrNew.getVisibility().value()));
                        existingKeyword.setKeywordName(updatedOrNew.getContent());
                        existingKeyword.setDisplayIndex(updatedOrNew.getDisplayIndex());
                        profileKeywordDao.merge(existingKeyword);
                    }
                }
            } else {
                // Add the new ones
                ProfileKeywordEntity newKeyword = adapter.toProfileKeywordEntity(updatedOrNew);
                SourceEntity sourceEntity = sourceManager.retrieveSourceEntity();
                ProfileEntity profile = new ProfileEntity(orcid);
                newKeyword.setProfile(profile);
                newKeyword.setDateCreated(new Date());
                // Set the source
                if (sourceEntity.getSourceProfile() != null) {
                    newKeyword.setSourceId(sourceEntity.getSourceProfile().getId());
                }
                if (sourceEntity.getSourceClient() != null) {
                    newKeyword.setClientSourceId(sourceEntity.getSourceClient().getId());
                }
                newKeyword.setVisibility(org.orcid.jaxb.model.common_v2.Visibility.fromValue(updatedOrNew.getVisibility().value()));
                newKeyword.setDisplayIndex(updatedOrNew.getDisplayIndex());
                profileKeywordDao.persist(newKeyword);
            }
        }
    }
    return keywords;
}
Also used : ProfileKeywordEntity(org.orcid.persistence.jpa.entities.ProfileKeywordEntity) ApplicationException(org.orcid.core.exception.ApplicationException) Keyword(org.orcid.jaxb.model.v3.dev1.record.Keyword) SourceEntity(org.orcid.persistence.jpa.entities.SourceEntity) ApplicationException(org.orcid.core.exception.ApplicationException) OrcidDuplicatedElementException(org.orcid.core.exception.OrcidDuplicatedElementException) Date(java.util.Date) ProfileEntity(org.orcid.persistence.jpa.entities.ProfileEntity) Transactional(javax.transaction.Transactional)

Example 47 with Keyword

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

the class ValidateV3_dev1SamplesTest method testUnmarshallPerson.

@Test
public void testUnmarshallPerson() throws SAXException, URISyntaxException {
    Person person = (Person) unmarshallFromPath("/record_3.0_dev1/samples/read_samples/person-3.0_dev1.xml", Person.class, "/record_3.0_dev1/person-3.0_dev1.xsd");
    assertNotNull(person);
    assertNotNull(person.getName());
    assertEquals("give-names", person.getName().getGivenNames().getContent());
    assertEquals("family-name", person.getName().getFamilyName().getContent());
    assertEquals("credit-name", person.getName().getCreditName().getContent());
    assertEquals(Visibility.PUBLIC, person.getName().getVisibility());
    assertNotNull(person.getOtherNames());
    assertNotNull(person.getOtherNames().getOtherNames());
    assertEquals(1, person.getOtherNames().getOtherNames().size());
    OtherName otherName = person.getOtherNames().getOtherNames().get(0);
    assertEquals("other-name-1", otherName.getContent());
    assertNotNull(otherName.getCreatedDate());
    assertNotNull(otherName.getCreatedDate().getValue());
    assertEquals(2001, otherName.getCreatedDate().getValue().getYear());
    assertEquals(12, otherName.getCreatedDate().getValue().getMonth());
    assertEquals(31, otherName.getCreatedDate().getValue().getDay());
    assertNotNull(otherName.getLastModifiedDate().getValue());
    assertEquals(2001, otherName.getLastModifiedDate().getValue().getYear());
    assertEquals(12, otherName.getLastModifiedDate().getValue().getMonth());
    assertEquals(31, otherName.getLastModifiedDate().getValue().getDay());
    assertNotNull(otherName.getSource());
    assertEquals("8888-8888-8888-8880", otherName.getSource().retrieveSourcePath());
    assertNotNull(person.getBiography());
    assertEquals(Visibility.PUBLIC, person.getBiography().getVisibility());
    assertEquals("biography", person.getBiography().getContent());
    assertNotNull(person.getResearcherUrls());
    assertNotNull(person.getResearcherUrls().getResearcherUrls());
    assertEquals(1, person.getResearcherUrls().getResearcherUrls().size());
    ResearcherUrl rUrl = person.getResearcherUrls().getResearcherUrls().get(0);
    assertEquals(Visibility.PUBLIC, rUrl.getVisibility());
    assertEquals(Long.valueOf(1248), rUrl.getPutCode());
    assertEquals("url-name-1", rUrl.getUrlName());
    assertNotNull(rUrl.getUrl());
    assertEquals("http://url.com/", rUrl.getUrl().getValue());
    assertNotNull(rUrl.getCreatedDate());
    assertEquals(2001, rUrl.getCreatedDate().getValue().getYear());
    assertEquals(12, rUrl.getCreatedDate().getValue().getMonth());
    assertEquals(31, rUrl.getCreatedDate().getValue().getDay());
    assertNotNull(rUrl.getLastModifiedDate());
    assertEquals(2001, rUrl.getLastModifiedDate().getValue().getYear());
    assertEquals(12, rUrl.getLastModifiedDate().getValue().getMonth());
    assertEquals(31, rUrl.getLastModifiedDate().getValue().getDay());
    assertNotNull(rUrl.getSource());
    assertEquals("8888-8888-8888-8880", rUrl.getSource().retrieveSourcePath());
    assertNotNull(person.getEmails());
    assertNotNull(person.getEmails().getEmails());
    assertEquals(1, person.getEmails().getEmails().size());
    Email email = person.getEmails().getEmails().get(0);
    assertEquals(Visibility.PUBLIC, email.getVisibility());
    assertEquals("user1@email.com", email.getEmail());
    assertNotNull(email.getCreatedDate());
    assertNotNull(email.getCreatedDate().getValue());
    assertEquals(2001, email.getCreatedDate().getValue().getYear());
    assertEquals(12, email.getCreatedDate().getValue().getMonth());
    assertEquals(31, email.getCreatedDate().getValue().getDay());
    assertNotNull(email.getLastModifiedDate());
    assertNotNull(email.getLastModifiedDate().getValue());
    assertEquals(2001, email.getLastModifiedDate().getValue().getYear());
    assertEquals(12, email.getLastModifiedDate().getValue().getMonth());
    assertEquals(31, email.getLastModifiedDate().getValue().getDay());
    assertNotNull(email.getSource());
    assertEquals("8888-8888-8888-8880", email.retrieveSourcePath());
    assertNotNull(person.getAddresses());
    assertNotNull(person.getAddresses().getAddress());
    assertEquals(1, person.getAddresses().getAddress().size());
    Address address = person.getAddresses().getAddress().get(0);
    assertEquals(Visibility.PUBLIC, address.getVisibility());
    assertEquals(Long.valueOf(1), address.getPutCode());
    assertNotNull(address.getCountry());
    assertEquals(Iso3166Country.US, address.getCountry().getValue());
    assertNotNull(address.getCreatedDate());
    assertNotNull(address.getCreatedDate().getValue());
    assertEquals(2001, address.getCreatedDate().getValue().getYear());
    assertEquals(12, address.getCreatedDate().getValue().getMonth());
    assertEquals(31, address.getCreatedDate().getValue().getDay());
    assertNotNull(address.getLastModifiedDate());
    assertNotNull(address.getLastModifiedDate().getValue());
    assertEquals(2001, address.getLastModifiedDate().getValue().getYear());
    assertEquals(12, address.getLastModifiedDate().getValue().getMonth());
    assertEquals(31, address.getLastModifiedDate().getValue().getDay());
    assertNotNull(address.getSource());
    assertEquals("8888-8888-8888-8880", address.getSource().retrieveSourcePath());
    assertNotNull(person.getKeywords());
    assertNotNull(person.getKeywords().getKeywords());
    assertEquals(1, person.getKeywords().getKeywords().size());
    Keyword keyword = person.getKeywords().getKeywords().get(0);
    assertEquals(Visibility.PUBLIC, keyword.getVisibility());
    assertEquals(Long.valueOf(1), keyword.getPutCode());
    assertEquals("keyword1", keyword.getContent());
    assertNotNull(keyword.getCreatedDate());
    assertNotNull(keyword.getCreatedDate().getValue());
    assertEquals(2001, keyword.getCreatedDate().getValue().getYear());
    assertEquals(12, keyword.getCreatedDate().getValue().getMonth());
    assertEquals(31, keyword.getCreatedDate().getValue().getDay());
    assertNotNull(keyword.getLastModifiedDate());
    assertNotNull(keyword.getLastModifiedDate().getValue());
    assertEquals(2001, keyword.getLastModifiedDate().getValue().getYear());
    assertEquals(12, keyword.getLastModifiedDate().getValue().getMonth());
    assertEquals(31, keyword.getLastModifiedDate().getValue().getDay());
    assertNotNull(keyword.getSource());
    assertEquals("8888-8888-8888-8880", keyword.getSource().retrieveSourcePath());
    assertNotNull(person.getExternalIdentifiers());
    assertNotNull(person.getExternalIdentifiers().getExternalIdentifiers());
    assertEquals(1, person.getExternalIdentifiers().getExternalIdentifiers().size());
    PersonExternalIdentifier extId = person.getExternalIdentifiers().getExternalIdentifiers().get(0);
    assertEquals(Visibility.PUBLIC, extId.getVisibility());
    assertEquals(Long.valueOf(1), extId.getPutCode());
    assertEquals("type-1", extId.getType());
    assertEquals("value-1", extId.getValue());
    assertNotNull(extId.getUrl());
    assertEquals("http://url.com/1", extId.getUrl().getValue());
    assertNotNull(extId.getCreatedDate());
    assertNotNull(extId.getCreatedDate().getValue());
    assertEquals(2001, extId.getCreatedDate().getValue().getYear());
    assertEquals(12, extId.getCreatedDate().getValue().getMonth());
    assertEquals(31, extId.getCreatedDate().getValue().getDay());
    assertNotNull(extId.getLastModifiedDate());
    assertNotNull(extId.getLastModifiedDate().getValue());
    assertEquals(2001, extId.getLastModifiedDate().getValue().getYear());
    assertEquals(12, extId.getLastModifiedDate().getValue().getMonth());
    assertEquals(31, extId.getLastModifiedDate().getValue().getDay());
    assertNotNull(extId.getSource());
    assertEquals("8888-8888-8888-8880", extId.getSource().retrieveSourcePath());
}
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) Person(org.orcid.jaxb.model.v3.dev1.record.Person) Test(org.junit.Test)

Example 48 with Keyword

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

the class ValidateV3_dev1SamplesTest method unmarshallFromPath.

private Object unmarshallFromPath(String path, Class<?> type, String schemaPath) throws SAXException, URISyntaxException {
    try (Reader reader = new InputStreamReader(getClass().getResourceAsStream(path))) {
        Object obj = unmarshall(reader, type, schemaPath);
        Object result = null;
        if (ResearcherUrls.class.equals(type)) {
            result = (ResearcherUrls) obj;
        } else if (ResearcherUrl.class.equals(type)) {
            result = (ResearcherUrl) obj;
        } else if (PersonalDetails.class.equals(type)) {
            result = (PersonalDetails) obj;
        } else if (PersonExternalIdentifier.class.equals(type)) {
            result = (PersonExternalIdentifier) obj;
        } else if (PersonExternalIdentifiers.class.equals(type)) {
            result = (PersonExternalIdentifiers) obj;
        } else if (Biography.class.equals(type)) {
            result = (Biography) obj;
        } else if (Name.class.equals(type)) {
            result = (Name) obj;
        } else if (CreditName.class.equals(type)) {
            result = (CreditName) obj;
        } else if (OtherName.class.equals(type)) {
            result = (OtherName) obj;
        } else if (OtherNames.class.equals(type)) {
            result = (OtherNames) obj;
        } else if (Keywords.class.equals(type)) {
            result = (Keywords) obj;
        } else if (Keyword.class.equals(type)) {
            result = (Keyword) obj;
        } else if (Addresses.class.equals(type)) {
            result = (Addresses) obj;
        } else if (Address.class.equals(type)) {
            result = (Address) obj;
        } else if (Emails.class.equals(type)) {
            result = (Emails) obj;
        } else if (Email.class.equals(type)) {
            result = (Email) obj;
        } else if (Person.class.equals(type)) {
            result = (Person) obj;
        } else if (Deprecated.class.equals(type)) {
            result = (Deprecated) obj;
        } else if (Preferences.class.equals(type)) {
            result = (Preferences) obj;
        } else if (History.class.equals(type)) {
            result = (History) obj;
        } else if (Record.class.equals(type)) {
            result = (Record) obj;
        } else if (ActivitiesSummary.class.equals(type)) {
            result = (ActivitiesSummary) obj;
        } else if (Works.class.equals(type)) {
            result = (Works) obj;
        } else if (Education.class.equals(type)) {
            result = (Education) obj;
        } else if (Educations.class.equals(type)) {
            result = (Educations) obj;
        } else if (Employment.class.equals(type)) {
            result = (Employment) obj;
        } else if (Employments.class.equals(type)) {
            result = (Employments) obj;
        } else if (Distinction.class.equals(type)) {
            result = (Distinction) obj;
        } else if (Distinctions.class.equals(type)) {
            result = (Distinctions) obj;
        } else if (InvitedPosition.class.equals(type)) {
            result = (InvitedPosition) obj;
        } else if (InvitedPositions.class.equals(type)) {
            result = (InvitedPositions) obj;
        } else if (Membership.class.equals(type)) {
            result = (Membership) obj;
        } else if (Memberships.class.equals(type)) {
            result = (Memberships) obj;
        } else if (Qualification.class.equals(type)) {
            result = (Qualification) obj;
        } else if (Qualifications.class.equals(type)) {
            result = (Qualifications) obj;
        } else if (Service.class.equals(type)) {
            result = (Service) obj;
        } else if (Services.class.equals(type)) {
            result = (Services) obj;
        }
        return result;
    } catch (IOException e) {
        throw new RuntimeException("Error reading notification from classpath", e);
    }
}
Also used : Email(org.orcid.jaxb.model.v3.dev1.record.Email) InputStreamReader(java.io.InputStreamReader) Keyword(org.orcid.jaxb.model.v3.dev1.record.Keyword) Address(org.orcid.jaxb.model.v3.dev1.record.Address) OtherNames(org.orcid.jaxb.model.v3.dev1.record.OtherNames) InvitedPosition(org.orcid.jaxb.model.v3.dev1.record.InvitedPosition) CreditName(org.orcid.jaxb.model.v3.dev1.record.CreditName) Reader(java.io.Reader) InputStreamReader(java.io.InputStreamReader) Service(org.orcid.jaxb.model.v3.dev1.record.Service) IOException(java.io.IOException) PersonExternalIdentifier(org.orcid.jaxb.model.v3.dev1.record.PersonExternalIdentifier) History(org.orcid.jaxb.model.v3.dev1.record.History) ActivitiesSummary(org.orcid.jaxb.model.v3.dev1.record.summary.ActivitiesSummary) Qualification(org.orcid.jaxb.model.v3.dev1.record.Qualification) Deprecated(org.orcid.jaxb.model.v3.dev1.record.Deprecated) Education(org.orcid.jaxb.model.v3.dev1.record.Education) Employment(org.orcid.jaxb.model.v3.dev1.record.Employment) Biography(org.orcid.jaxb.model.v3.dev1.record.Biography) Membership(org.orcid.jaxb.model.v3.dev1.record.Membership) ResearcherUrl(org.orcid.jaxb.model.v3.dev1.record.ResearcherUrl) Distinction(org.orcid.jaxb.model.v3.dev1.record.Distinction)

Example 49 with Keyword

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

the class PublicProfileControllerTest method testViewValidUser.

@SuppressWarnings("unchecked")
@Test
public void testViewValidUser() {
    ModelAndView mav = publicProfileController.publicPreview(request, response, 1, 0, 15, userOrcid);
    assertEquals("public_profile_v3", mav.getViewName());
    Map<String, Object> model = mav.getModel();
    assertNotNull(model);
    assertTrue(model.containsKey("isPublicProfile"));
    assertTrue(model.containsKey("effectiveUserOrcid"));
    assertEquals(userOrcid, model.get("effectiveUserOrcid"));
    assertTrue(model.containsKey("biography"));
    Biography biography = (Biography) model.get("biography");
    assertEquals("Biography for 0000-0000-0000-0003", biography.getContent());
    assertTrue(model.containsKey("displayName"));
    String displayName = (String) model.get("displayName");
    assertEquals("Credit Name", displayName);
    assertTrue(model.containsKey("title"));
    assertEquals(localeManager.resolveMessage("layout.public-layout.title", displayName, userOrcid), model.get("title"));
    assertTrue(model.containsKey("publicGroupedOtherNames"));
    Map<String, List<OtherName>> groupedOtherNames = (Map<String, List<OtherName>>) model.get("publicGroupedOtherNames");
    assertNotNull(groupedOtherNames);
    assertEquals(1, groupedOtherNames.keySet().size());
    assertTrue(groupedOtherNames.containsKey("Other Name PUBLIC"));
    List<OtherName> publicOtherNames = groupedOtherNames.get("Other Name PUBLIC");
    assertEquals(1, publicOtherNames.size());
    assertEquals(Long.valueOf(13), publicOtherNames.get(0).getPutCode());
    assertEquals("Other Name PUBLIC", publicOtherNames.get(0).getContent());
    assertEquals(Visibility.PUBLIC, publicOtherNames.get(0).getVisibility());
    assertTrue(model.containsKey("publicGroupedAddresses"));
    Map<String, List<Address>> groupedAddresses = (Map<String, List<Address>>) model.get("publicGroupedAddresses");
    assertNotNull(groupedAddresses);
    assertEquals(1, groupedAddresses.keySet().size());
    assertTrue(groupedAddresses.containsKey("US"));
    List<Address> publicAddresses = groupedAddresses.get("US");
    assertEquals(1, publicAddresses.size());
    assertEquals(Long.valueOf(9), publicAddresses.get(0).getPutCode());
    assertEquals(Iso3166Country.US, publicAddresses.get(0).getCountry().getValue());
    assertEquals(Visibility.PUBLIC, publicAddresses.get(0).getVisibility());
    assertTrue(model.containsKey("countryNames"));
    Map<String, String> countryNames = (Map<String, String>) model.get("countryNames");
    Map<String, String> testCountry = new HashMap<String, String>();
    testCountry.put("US", localeManager.resolveMessage("org.orcid.persistence.jpa.entities.CountryIsoEntity.US"));
    assertEquals(testCountry, countryNames);
    assertTrue(model.containsKey("publicGroupedKeywords"));
    Map<String, List<Keyword>> groupedKeywords = (Map<String, List<Keyword>>) model.get("publicGroupedKeywords");
    assertNotNull(groupedKeywords);
    assertEquals(1, groupedKeywords.keySet().size());
    assertTrue(groupedKeywords.containsKey("PUBLIC"));
    List<Keyword> publicKeywords = groupedKeywords.get("PUBLIC");
    assertEquals(1, publicKeywords.size());
    assertEquals(Long.valueOf(9), publicKeywords.get(0).getPutCode());
    assertEquals("PUBLIC", publicKeywords.get(0).getContent());
    assertEquals(Visibility.PUBLIC, publicKeywords.get(0).getVisibility());
    assertTrue(model.containsKey("publicGroupedResearcherUrls"));
    Map<String, List<ResearcherUrl>> rUrls = (Map<String, List<ResearcherUrl>>) model.get("publicGroupedResearcherUrls");
    assertNotNull(rUrls);
    assertEquals(1, rUrls.keySet().size());
    assertTrue(rUrls.containsKey("http://www.researcherurl.com?id=13"));
    List<ResearcherUrl> publicResearchUrls = rUrls.get("http://www.researcherurl.com?id=13");
    assertEquals(Long.valueOf(13), publicResearchUrls.get(0).getPutCode());
    assertEquals("public_rurl", publicResearchUrls.get(0).getUrlName());
    assertEquals(Visibility.PUBLIC, publicResearchUrls.get(0).getVisibility());
    assertTrue(model.containsKey("publicGroupedEmails"));
    Map<String, List<Email>> emails = (Map<String, List<Email>>) model.get("publicGroupedEmails");
    assertNotNull(emails);
    assertEquals(1, emails.keySet().size());
    assertTrue(emails.containsKey("public_0000-0000-0000-0003@test.orcid.org"));
    List<Email> publicEmails = emails.get("public_0000-0000-0000-0003@test.orcid.org");
    assertEquals("public_0000-0000-0000-0003@test.orcid.org", publicEmails.get(0).getEmail());
    assertEquals(Visibility.PUBLIC, publicEmails.get(0).getVisibility());
    assertTrue(model.containsKey("publicGroupedPersonExternalIdentifiers"));
    Map<String, List<PersonExternalIdentifier>> extIds = (Map<String, List<PersonExternalIdentifier>>) model.get("publicGroupedPersonExternalIdentifiers");
    assertNotNull(extIds);
    assertEquals(1, extIds.keySet().size());
    assertTrue(extIds.containsKey("public_type:public_ref"));
    List<PersonExternalIdentifier> publicExternalIdentifiers = extIds.get("public_type:public_ref");
    assertEquals(Long.valueOf(13), publicExternalIdentifiers.get(0).getPutCode());
    assertEquals("http://ext-id/public_ref", publicExternalIdentifiers.get(0).getUrl().getValue());
    assertEquals(Visibility.PUBLIC, publicExternalIdentifiers.get(0).getVisibility());
    assertTrue(model.containsKey("affiliationIdsJson"));
    assertEquals("[17,47,42,37,32,27,20]", model.get("affiliationIdsJson"));
    assertTrue(model.containsKey("fundingIdsJson"));
    assertEquals("[10]", model.get("fundingIdsJson"));
    assertTrue(model.containsKey("peerReviewIdsJson"));
    assertEquals("[9]", model.get("peerReviewIdsJson"));
    assertTrue(model.containsKey("isProfileEmpty"));
    Boolean isProfileEmpty = (Boolean) model.get("isProfileEmpty");
    assertFalse(isProfileEmpty);
    assertFalse(model.containsKey("noIndex"));
}
Also used : Email(org.orcid.jaxb.model.v3.dev1.record.Email) Address(org.orcid.jaxb.model.v3.dev1.record.Address) HashMap(java.util.HashMap) ModelAndView(org.springframework.web.servlet.ModelAndView) Biography(org.orcid.jaxb.model.v3.dev1.record.Biography) List(java.util.List) ResearcherUrl(org.orcid.jaxb.model.v3.dev1.record.ResearcherUrl) Keyword(org.orcid.jaxb.model.v3.dev1.record.Keyword) OtherName(org.orcid.jaxb.model.v3.dev1.record.OtherName) PersonExternalIdentifier(org.orcid.jaxb.model.v3.dev1.record.PersonExternalIdentifier) HashMap(java.util.HashMap) Map(java.util.Map) DBUnitTest(org.orcid.test.DBUnitTest) Test(org.junit.Test)

Example 50 with Keyword

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

the class PublicProfileControllerTest method testViewClaimedUserWhenIsLongEnough.

@Test
public void testViewClaimedUserWhenIsLongEnough() {
    // Update the submission date so it is long enough
    ProfileEntity profileEntity = profileDao.find(unclaimedUserOrcid);
    profileEntity.setSubmissionDate(DateUtils.addDays(new Date(), -10));
    profileDao.merge(profileEntity);
    profileDao.flush();
    ModelAndView mav = publicProfileController.publicPreview(request, response, 1, 0, 15, unclaimedUserOrcid);
    assertEquals("public_profile_v3", mav.getViewName());
    Map<String, Object> model = mav.getModel();
    assertNotNull(model);
    assertTrue(model.containsKey("isPublicProfile"));
    assertTrue(model.containsKey("effectiveUserOrcid"));
    assertEquals(unclaimedUserOrcid, model.get("effectiveUserOrcid"));
    assertTrue(!model.containsKey("biography"));
    assertFalse(model.containsKey("displayName"));
    assertFalse(model.containsKey("title"));
    assertTrue(model.containsKey("publicGroupedOtherNames"));
    Map<String, List<OtherName>> groupedOtherNames = (Map<String, List<OtherName>>) model.get("publicGroupedOtherNames");
    assertNotNull(groupedOtherNames);
    assertEquals(1, groupedOtherNames.keySet().size());
    List<OtherName> publicOtherNames = groupedOtherNames.get("PUBLIC");
    assertEquals(1, publicOtherNames.size());
    assertEquals(Long.valueOf(18), publicOtherNames.get(0).getPutCode());
    assertEquals("PUBLIC", publicOtherNames.get(0).getContent());
    assertEquals(Visibility.PUBLIC, publicOtherNames.get(0).getVisibility());
    assertTrue(model.containsKey("publicGroupedAddresses"));
    Map<String, List<Address>> groupedAddresses = (Map<String, List<Address>>) model.get("publicGroupedAddresses");
    assertNotNull(groupedAddresses);
    assertEquals(1, groupedAddresses.keySet().size());
    assertTrue(groupedAddresses.containsKey("US"));
    List<Address> publicAddresses = groupedAddresses.get("US");
    assertEquals(1, publicAddresses.size());
    assertEquals(Long.valueOf(14), publicAddresses.get(0).getPutCode());
    assertEquals(Iso3166Country.US, publicAddresses.get(0).getCountry().getValue());
    assertEquals(Visibility.PUBLIC, publicAddresses.get(0).getVisibility());
    assertTrue(model.containsKey("publicGroupedKeywords"));
    Map<String, List<Keyword>> groupedKeywords = (Map<String, List<Keyword>>) model.get("publicGroupedKeywords");
    assertNotNull(groupedKeywords);
    assertEquals(1, groupedKeywords.keySet().size());
    List<Keyword> publicKeywords = groupedKeywords.get("PUBLIC");
    assertEquals(Long.valueOf(14), publicKeywords.get(0).getPutCode());
    assertEquals("PUBLIC", publicKeywords.get(0).getContent());
    assertEquals(Visibility.PUBLIC, publicKeywords.get(0).getVisibility());
    assertTrue(model.containsKey("publicGroupedResearcherUrls"));
    Map<String, List<ResearcherUrl>> rUrls = (Map<String, List<ResearcherUrl>>) model.get("publicGroupedResearcherUrls");
    assertNotNull(rUrls);
    assertEquals(1, rUrls.keySet().size());
    assertTrue(rUrls.containsKey("http://www.researcherurl.com?id=18"));
    List<ResearcherUrl> publicResearchUrls = rUrls.get("http://www.researcherurl.com?id=18");
    assertEquals(Long.valueOf(18), publicResearchUrls.get(0).getPutCode());
    assertEquals("public", publicResearchUrls.get(0).getUrlName());
    assertEquals(Visibility.PUBLIC, publicResearchUrls.get(0).getVisibility());
    assertTrue(model.containsKey("publicGroupedEmails"));
    Map<String, List<Email>> emails = (Map<String, List<Email>>) model.get("publicGroupedEmails");
    assertNotNull(emails);
    assertEquals(1, emails.keySet().size());
    List<Email> groupedEmails = emails.get("public_0000-0000-0000-0001@test.orcid.org");
    assertEquals("public_0000-0000-0000-0001@test.orcid.org", groupedEmails.get(0).getEmail());
    assertEquals(Visibility.PUBLIC, groupedEmails.get(0).getVisibility());
    assertTrue(model.containsKey("publicGroupedPersonExternalIdentifiers"));
    Map<String, List<PersonExternalIdentifier>> extIds = (Map<String, List<PersonExternalIdentifier>>) model.get("publicGroupedPersonExternalIdentifiers");
    assertNotNull(extIds);
    assertEquals(1, extIds.keySet().size());
    assertTrue(extIds.containsKey("public:public"));
    List<PersonExternalIdentifier> publicExternalIdentifiers = extIds.get("public:public");
    assertEquals(Long.valueOf(18), publicExternalIdentifiers.get(0).getPutCode());
    assertEquals("http://ext-id/self/public", publicExternalIdentifiers.get(0).getUrl().getValue());
    assertEquals(Visibility.PUBLIC, publicExternalIdentifiers.get(0).getVisibility());
    assertTrue(model.containsKey("isProfileEmpty"));
    Boolean isProfileEmpty = (Boolean) model.get("isProfileEmpty");
    assertTrue(isProfileEmpty);
    assertFalse(model.containsKey("noIndex"));
    // Update the submission date so it is not long enough
    profileEntity = profileDao.find(unclaimedUserOrcid);
    profileEntity.setSubmissionDate(new Date());
    profileDao.merge(profileEntity);
    profileDao.flush();
}
Also used : Email(org.orcid.jaxb.model.v3.dev1.record.Email) Address(org.orcid.jaxb.model.v3.dev1.record.Address) ModelAndView(org.springframework.web.servlet.ModelAndView) List(java.util.List) ResearcherUrl(org.orcid.jaxb.model.v3.dev1.record.ResearcherUrl) Keyword(org.orcid.jaxb.model.v3.dev1.record.Keyword) OtherName(org.orcid.jaxb.model.v3.dev1.record.OtherName) PersonExternalIdentifier(org.orcid.jaxb.model.v3.dev1.record.PersonExternalIdentifier) ProfileEntity(org.orcid.persistence.jpa.entities.ProfileEntity) Date(java.util.Date) HashMap(java.util.HashMap) Map(java.util.Map) DBUnitTest(org.orcid.test.DBUnitTest) Test(org.junit.Test)

Aggregations

Keyword (org.orcid.jaxb.model.v3.dev1.record.Keyword)75 Test (org.junit.Test)59 Keywords (org.orcid.jaxb.model.v3.dev1.record.Keywords)40 Address (org.orcid.jaxb.model.v3.dev1.record.Address)39 OtherName (org.orcid.jaxb.model.v3.dev1.record.OtherName)39 PersonExternalIdentifier (org.orcid.jaxb.model.v3.dev1.record.PersonExternalIdentifier)39 ResearcherUrl (org.orcid.jaxb.model.v3.dev1.record.ResearcherUrl)39 Email (org.orcid.jaxb.model.v3.dev1.record.Email)36 Biography (org.orcid.jaxb.model.v3.dev1.record.Biography)31 OtherNames (org.orcid.jaxb.model.v3.dev1.record.OtherNames)31 Addresses (org.orcid.jaxb.model.v3.dev1.record.Addresses)30 Emails (org.orcid.jaxb.model.v3.dev1.record.Emails)30 PersonExternalIdentifiers (org.orcid.jaxb.model.v3.dev1.record.PersonExternalIdentifiers)30 ResearcherUrls (org.orcid.jaxb.model.v3.dev1.record.ResearcherUrls)30 Person (org.orcid.jaxb.model.v3.dev1.record.Person)28 Name (org.orcid.jaxb.model.v3.dev1.record.Name)27 DBUnitTest (org.orcid.test.DBUnitTest)20 Response (javax.ws.rs.core.Response)18 Record (org.orcid.jaxb.model.v3.dev1.record.Record)15 EducationSummary (org.orcid.jaxb.model.v3.dev1.record.summary.EducationSummary)15