Skip to content
Snippets Groups Projects

feat: validate metadata dates

Merged Alicia.DeDiosFuente requested to merge adf-289-validate-dates into master
Files
5
@@ -517,6 +517,127 @@ public class PublicationAsUserIT extends PublicationIT {
assertEquals(this.CONTRIBUTOR5_LASTNAME, contributorOptional5.get().getLastname());
}
@Test
public void transformUnigeContributorToNonUnigeContributorTest() {
Map<String, Object> properties = new HashMap<>();
properties.put("title", "(non)unige contributor test");
properties.put("type", this.PUBLICATION_TYPE_DIPLOME_NAME);
properties.put("subtype", this.PUBLICATION_SUBTYPE_THESE_NAME);
/************************
* create with 2 UNIGE contributors (= with cnIndividu)
*/
List<ContributorDTO> contributorDTOs = new ArrayList<>();
ContributorDTO contributorDto1 = new ContributorDTO();
contributorDto1.setFirstname(this.CONTRIBUTOR1_FIRSTNAME);
contributorDto1.setLastname(this.CONTRIBUTOR1_LASTNAME);
contributorDto1.setRole("author");
contributorDto1.setCnIndividu(this.CONTRIBUTOR1_CN_INDIVIDU);
contributorDTOs.add(contributorDto1);
ContributorDTO contributorDto2 = new ContributorDTO();
contributorDto2.setFirstname(this.CONTRIBUTOR2_FIRSTNAME);
contributorDto2.setLastname(this.CONTRIBUTOR2_LASTNAME);
contributorDto2.setRole("director");
contributorDto2.setCnIndividu(this.CONTRIBUTOR2_CN_INDIVIDU);
contributorDTOs.add(contributorDto2);
properties.put("contributors", contributorDTOs);
String xmlMetadata = this.getMetadata(properties);
Publication publication = new Publication();
publication.setMetadata(xmlMetadata);
publication = this.publicationService.create(publication);
List<Contributor> contributors = this.publicationService.getContributors(publication.getResId());
assertEquals(contributors.size(), 2);
Optional<Contributor> contributorOptional1 = contributors.stream()
.filter(contributor -> this.CONTRIBUTOR1_FIRSTNAME.equals(contributor.getFirstname())).findFirst();
Optional<Contributor> contributorOptional2 = contributors.stream()
.filter(contributor -> this.CONTRIBUTOR2_FIRSTNAME.equals(contributor.getFirstname())).findFirst();
assertTrue(contributorOptional1.isPresent());
Contributor contributor1 = contributorOptional1.get();
assertEquals(this.CONTRIBUTOR1_CN_INDIVIDU, contributor1.getCnIndividu());
assertEquals(this.CONTRIBUTOR1_FIRSTNAME, contributor1.getFirstname());
assertEquals(this.CONTRIBUTOR1_LASTNAME, contributor1.getLastname());
assertTrue(contributorOptional2.isPresent());
Contributor contributor2 = contributorOptional2.get();
assertEquals(this.CONTRIBUTOR2_CN_INDIVIDU, contributor2.getCnIndividu());
assertEquals(this.CONTRIBUTOR2_FIRSTNAME, contributor2.getFirstname());
assertEquals(this.CONTRIBUTOR2_LASTNAME, contributor2.getLastname());
/************************
* Remove cnIndividu from first UNIGE contributor
*/
contributorDTOs.get(0).setCnIndividu(null);
xmlMetadata = this.getMetadata(properties);
publication.setMetadata(xmlMetadata);
this.publicationService.update(publication.getResId(), publication);
List<Contributor> contributors2 = this.publicationService.getContributors(publication.getResId());
assertEquals(contributors2.size(), 2);
Optional<Contributor> updatedContributorOptional1 = contributors2.stream()
.filter(contributor -> this.CONTRIBUTOR1_FIRSTNAME.equals(contributor.getFirstname())).findFirst();
Optional<Contributor> updatedContributorOptional2 = contributors2.stream()
.filter(contributor -> this.CONTRIBUTOR2_FIRSTNAME.equals(contributor.getFirstname())).findFirst();
assertTrue(updatedContributorOptional1.isPresent());
Contributor updatedContributor1 = updatedContributorOptional1.get();
assertNull(updatedContributor1.getCnIndividu());
assertEquals(this.CONTRIBUTOR1_FIRSTNAME, updatedContributor1.getFirstname());
assertEquals(this.CONTRIBUTOR1_LASTNAME, updatedContributor1.getLastname());
// check that a new contributor homonym has been created in database
assertNotEquals(contributor1.getResId(), updatedContributor1.getResId());
assertTrue(updatedContributorOptional2.isPresent());
Contributor updatedContributor2 = updatedContributorOptional2.get();
assertEquals(this.CONTRIBUTOR2_CN_INDIVIDU, updatedContributor2.getCnIndividu());
assertEquals(this.CONTRIBUTOR2_FIRSTNAME, updatedContributor2.getFirstname());
assertEquals(this.CONTRIBUTOR2_LASTNAME, updatedContributor2.getLastname());
/************************
* Make first contributor UNIGE member again --> must use the same existing contributor
*/
contributorDTOs.get(0).setCnIndividu(this.CONTRIBUTOR1_CN_INDIVIDU);
xmlMetadata = this.getMetadata(properties);
publication.setMetadata(xmlMetadata);
this.publicationService.update(publication.getResId(), publication);
List<Contributor> contributors3 = this.publicationService.getContributors(publication.getResId());
assertEquals(contributors3.size(), 2);
Optional<Contributor> updatedAgainContributorOptional1 = contributors3.stream()
.filter(contributor -> this.CONTRIBUTOR1_FIRSTNAME.equals(contributor.getFirstname())).findFirst();
Optional<Contributor> updatedAgainContributorOptional2 = contributors3.stream()
.filter(contributor -> this.CONTRIBUTOR2_FIRSTNAME.equals(contributor.getFirstname())).findFirst();
assertTrue(updatedAgainContributorOptional1.isPresent());
Contributor updatedAgainContributor1 = updatedAgainContributorOptional1.get();
assertEquals(this.CONTRIBUTOR1_CN_INDIVIDU, updatedAgainContributor1.getCnIndividu());
assertEquals(this.CONTRIBUTOR1_FIRSTNAME, updatedAgainContributor1.getFirstname());
assertEquals(this.CONTRIBUTOR1_LASTNAME, updatedAgainContributor1.getLastname());
// check that the same UNIGE contributor has been used in database
assertEquals(contributor1.getResId(), updatedAgainContributor1.getResId());
assertTrue(updatedAgainContributorOptional2.isPresent());
Contributor updatedAgainContributor2 = updatedAgainContributorOptional2.get();
assertEquals(this.CONTRIBUTOR2_CN_INDIVIDU, updatedAgainContributor2.getCnIndividu());
assertEquals(this.CONTRIBUTOR2_FIRSTNAME, updatedAgainContributor2.getFirstname());
assertEquals(this.CONTRIBUTOR2_LASTNAME, updatedAgainContributor2.getLastname());
}
@Test
public void deleteContributorsTest() {
Map<String, Object> properties = new HashMap<>();
@@ -614,30 +735,6 @@ public class PublicationAsUserIT extends PublicationIT {
this.checkFirstContributors(contributors);
}
private void checkFirstContributors(List<Contributor> contributors) {
Optional<Contributor> contributorOptional1 = contributors.stream()
.filter(contributor -> this.CONTRIBUTOR1_CN_INDIVIDU.equals(contributor.getCnIndividu())).findFirst();
Optional<Contributor> contributorOptional2 = contributors.stream()
.filter(contributor -> this.CONTRIBUTOR2_CN_INDIVIDU.equals(contributor.getCnIndividu())).findFirst();
Optional<Contributor> contributorOptional3 = contributors.stream()
.filter(contributor -> this.CONTRIBUTOR3_LASTNAME.equals(contributor.getLastname())).findFirst();
assertTrue(contributorOptional1.isPresent());
assertEquals(this.CONTRIBUTOR1_CN_INDIVIDU, contributorOptional1.get().getCnIndividu());
assertEquals(this.CONTRIBUTOR1_FIRSTNAME, contributorOptional1.get().getFirstname());
assertEquals(this.CONTRIBUTOR1_LASTNAME, contributorOptional1.get().getLastname());
assertTrue(contributorOptional2.isPresent());
assertEquals(this.CONTRIBUTOR2_CN_INDIVIDU, contributorOptional2.get().getCnIndividu());
assertEquals(this.CONTRIBUTOR2_FIRSTNAME, contributorOptional2.get().getFirstname());
assertEquals(this.CONTRIBUTOR2_LASTNAME, contributorOptional2.get().getLastname());
assertTrue(contributorOptional3.isPresent());
assertEquals(null, contributorOptional3.get().getCnIndividu());
assertEquals(this.CONTRIBUTOR3_FIRSTNAME, contributorOptional3.get().getFirstname());
assertEquals(this.CONTRIBUTOR3_LASTNAME, contributorOptional3.get().getLastname());
}
@Test
public void submitForApprovalTest() {
Publication createdPublication = this.testPublicationCreation("test publication ask for feedback");
@@ -684,6 +781,16 @@ public class PublicationAsUserIT extends PublicationIT {
this.restClientTool.exitSudo();
}
@Test
public void deleteTest() {
Publication publication = this.testPublicationCreation("test publication ask for feedback");
assertNotNull(publication);
this.publicationService.delete(publication.getResId());
publication = this.publicationService.findOne(publication.getResId());
assertNull(publication);
}
@Test
public void updatePublicationAsContributorTest() {
User myUser = this.userService.getAuthenticatedUser();
@@ -719,13 +826,27 @@ public class PublicationAsUserIT extends PublicationIT {
assertEquals(publicationUpdate.getTitle(), titleToUpdate);
}
@Test
public void deleteTest() {
Publication publication = this.testPublicationCreation("test publication ask for feedback");
assertNotNull(publication);
this.publicationService.delete(publication.getResId());
private void checkFirstContributors(List<Contributor> contributors) {
Optional<Contributor> contributorOptional1 = contributors.stream()
.filter(contributor -> this.CONTRIBUTOR1_CN_INDIVIDU.equals(contributor.getCnIndividu())).findFirst();
Optional<Contributor> contributorOptional2 = contributors.stream()
.filter(contributor -> this.CONTRIBUTOR2_CN_INDIVIDU.equals(contributor.getCnIndividu())).findFirst();
Optional<Contributor> contributorOptional3 = contributors.stream()
.filter(contributor -> this.CONTRIBUTOR3_LASTNAME.equals(contributor.getLastname())).findFirst();
publication = this.publicationService.findOne(publication.getResId());
assertNull(publication);
assertTrue(contributorOptional1.isPresent());
assertEquals(this.CONTRIBUTOR1_CN_INDIVIDU, contributorOptional1.get().getCnIndividu());
assertEquals(this.CONTRIBUTOR1_FIRSTNAME, contributorOptional1.get().getFirstname());
assertEquals(this.CONTRIBUTOR1_LASTNAME, contributorOptional1.get().getLastname());
assertTrue(contributorOptional2.isPresent());
assertEquals(this.CONTRIBUTOR2_CN_INDIVIDU, contributorOptional2.get().getCnIndividu());
assertEquals(this.CONTRIBUTOR2_FIRSTNAME, contributorOptional2.get().getFirstname());
assertEquals(this.CONTRIBUTOR2_LASTNAME, contributorOptional2.get().getLastname());
assertTrue(contributorOptional3.isPresent());
assertNull(contributorOptional3.get().getCnIndividu());
assertEquals(this.CONTRIBUTOR3_FIRSTNAME, contributorOptional3.get().getFirstname());
assertEquals(this.CONTRIBUTOR3_LASTNAME, contributorOptional3.get().getLastname());
}
}
Loading