Skip to content
Snippets Groups Projects
Verified Commit ea5cfdb6 authored by Tobias Grantner's avatar Tobias Grantner
Browse files

Changed tests to not alter obects in BaseTest, which can produce side effects

parent f714e7e8
No related branches found
No related tags found
2 merge requests!163Relase 1.3.0,!150Resolve "Use DOIs as PIDs"
......@@ -98,9 +98,8 @@ public class DataCiteIdentifierServiceUnitTest extends BaseUnitTest {
IdentifierRequestException {
final Principal principal = new BasicUserPrincipal(USER_1_USERNAME);
final String bearer = "Bearer abcxyz";
final String doi = "10.000/thisisadoi";
final DataCiteBody<DataCiteDoi> response =
new DataCiteBody<>(new DataCiteData<>(null, "dois", new DataCiteDoi(doi)));
new DataCiteBody<>(new DataCiteData<>(null, "dois", new DataCiteDoi(IDENTIFIER_1_DOI_NOT_NULL)));
/* mock */
when(identifierService.create(any(IdentifierCreateDto.class), eq(principal), eq(bearer)))
......@@ -112,7 +111,7 @@ public class DataCiteIdentifierServiceUnitTest extends BaseUnitTest {
/* test */
Identifier result = dataCiteIdentifierService.create(IDENTIFIER_1_DTO_REQUEST, principal, bearer);
assertTrue(identifierRepository.existsById(result.getId()));
assertEquals(doi, result.getDoi());
assertEquals(IDENTIFIER_1_DOI_NOT_NULL, result.getDoi());
}
@Test
......@@ -162,42 +161,36 @@ public class DataCiteIdentifierServiceUnitTest extends BaseUnitTest {
@Test
public void update_existing_succeeds()
throws IdentifierRequestException, IdentifierNotFoundException {
final String doi = "10.000/thisisanotherdoi";
final DataCiteBody<DataCiteDoi> response =
new DataCiteBody<>(new DataCiteData<>(null, "dois", new DataCiteDoi(doi)));
IDENTIFIER_1.setDoi(doi);
new DataCiteBody<>(new DataCiteData<>(null, "dois", new DataCiteDoi(IDENTIFIER_1_DOI_NOT_NULL)));
/* mock */
when(identifierService.update(eq(IDENTIFIER_1_ID), any(IdentifierDto.class)))
.thenAnswer((i) -> identifierRepository.save(IDENTIFIER_1));
.thenAnswer((i) -> identifierRepository.save(IDENTIFIER_1_WITH_DOI));
when(restTemplate.exchange(anyString(), eq(HttpMethod.PUT), any(HttpEntity.class),
any(ParameterizedTypeReference.class), eq(doi)))
any(ParameterizedTypeReference.class), eq(IDENTIFIER_1_DOI_NOT_NULL)))
.thenReturn(ResponseEntity.ok(response));
/* test */
Identifier result = dataCiteIdentifierService.update(IDENTIFIER_1_ID, IDENTIFIER_1_DTO);
Identifier result = dataCiteIdentifierService.update(IDENTIFIER_1_ID, IDENTIFIER_1_WITH_DOI_DTO);
assertTrue(identifierRepository.existsById(IDENTIFIER_1_ID));
assertEquals(doi, result.getDoi());
assertEquals(IDENTIFIER_1_DOI_NOT_NULL, result.getDoi());
}
@Test
public void update_invalidMetadata_fails()
throws IdentifierRequestException, IdentifierNotFoundException {
final String doi = "10.000/thisisanotherdoi";
final DataCiteBody<DataCiteDoi> response =
new DataCiteBody<>(new DataCiteData<>(null, "dois", new DataCiteDoi(doi)));
IDENTIFIER_1.setDoi(doi);
/* mock */
when(identifierService.update(eq(IDENTIFIER_1_ID), any(IdentifierDto.class)))
.thenAnswer((i) -> identifierRepository.save(IDENTIFIER_1));
.thenAnswer((i) -> identifierRepository.save(IDENTIFIER_1_WITH_DOI));
when(restTemplate.exchange(anyString(), eq(HttpMethod.PUT), any(HttpEntity.class),
any(ParameterizedTypeReference.class), eq(doi)))
any(ParameterizedTypeReference.class), eq(IDENTIFIER_1_DOI_NOT_NULL)))
.thenThrow(HttpClientErrorException.BadRequest.class);
/* test */
assertThrows(IdentifierRequestException.class, () -> {
dataCiteIdentifierService.update(IDENTIFIER_1_ID, IDENTIFIER_1_DTO);
dataCiteIdentifierService.update(IDENTIFIER_1_ID, IDENTIFIER_1_WITH_DOI_DTO);
});
assertEquals(0, identifierRepository.count());
}
......@@ -205,21 +198,17 @@ public class DataCiteIdentifierServiceUnitTest extends BaseUnitTest {
@Test
public void update_restClientException_fails()
throws IdentifierRequestException, IdentifierNotFoundException {
final String doi = "10.000/thisisanotherdoi";
final DataCiteBody<DataCiteDoi> response =
new DataCiteBody<>(new DataCiteData<>(null, "dois", new DataCiteDoi(doi)));
IDENTIFIER_1.setDoi(doi);
/* mock */
when(identifierService.update(eq(IDENTIFIER_1_ID), any(IdentifierDto.class)))
.thenAnswer((i) -> identifierRepository.save(IDENTIFIER_1));
.thenAnswer((i) -> identifierRepository.save(IDENTIFIER_1_WITH_DOI));
when(restTemplate.exchange(anyString(), eq(HttpMethod.PUT), any(HttpEntity.class),
any(ParameterizedTypeReference.class), eq(doi)))
any(ParameterizedTypeReference.class), eq(IDENTIFIER_1_DOI_NOT_NULL)))
.thenThrow(RestClientException.class);
/* test */
assertThrows(InternalError.class, () -> {
dataCiteIdentifierService.update(IDENTIFIER_1_ID, IDENTIFIER_1_DTO);
dataCiteIdentifierService.update(IDENTIFIER_1_ID, IDENTIFIER_1_WITH_DOI_DTO);
});
assertEquals(0, identifierRepository.count());
}
......
......@@ -190,16 +190,15 @@ public class IdentifierServiceUnitTest extends BaseUnitTest {
@Test
public void update_doiChange_fails() {
Identifier identifier = Identifier.builder().id(IDENTIFIER_1_ID).doi("10.000/thisisadoi").build();
IdentifierDto identifierDto = IdentifierDto.builder().id(IDENTIFIER_1_ID).visibility(VisibilityTypeDto.EVERYONE).doi("10.000/thisisadifferentdoi").build();
IdentifierDto identifierWithNewDoiDto = IdentifierDto.builder().id(IDENTIFIER_1_ID).visibility(VisibilityTypeDto.EVERYONE).doi("10.000/thisisadifferentdoi").build();
/* mock */
when(identifierRepository.findById(IDENTIFIER_1_ID))
.thenReturn(Optional.of(identifier));
.thenReturn(Optional.of(IDENTIFIER_1_WITH_DOI));
/* test */
assertThrows(IdentifierRequestException.class, () -> {
identifierService.update(IDENTIFIER_1_ID, identifierDto);
identifierService.update(IDENTIFIER_1_ID, identifierWithNewDoiDto);
});
}
......@@ -319,11 +318,9 @@ public class IdentifierServiceUnitTest extends BaseUnitTest {
@Test
public void delete_withDoi_fails() {
Identifier identifier = Identifier.builder().id(IDENTIFIER_1_ID).doi("10.000/thisisadoi").build();
/* mock */
when(identifierRepository.findById(IDENTIFIER_1_ID))
.thenReturn(Optional.of(identifier));
.thenReturn(Optional.of(IDENTIFIER_1_WITH_DOI));
doNothing()
.when(identifierRepository)
.delete(IDENTIFIER_1);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment