From 30e85ec82e29ad56184734feb9d38a13ddb130b4 Mon Sep 17 00:00:00 2001
From: Martin Weise <martin.weise@tuwien.ac.at>
Date: Thu, 4 May 2023 17:28:39 +0200
Subject: [PATCH] Fixed the datacite unit test rollback

---
 .../tuwien/service/DataCiteIdentifierServiceUnitTest.java  | 7 ++++++-
 .../tuwien/service/impl/DataCiteIdentifierServiceImpl.java | 6 ++----
 2 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/dbrepo-identifier-service/rest-service/src/test/java/at/tuwien/service/DataCiteIdentifierServiceUnitTest.java b/dbrepo-identifier-service/rest-service/src/test/java/at/tuwien/service/DataCiteIdentifierServiceUnitTest.java
index 368b48e24a..c38f19bb74 100644
--- a/dbrepo-identifier-service/rest-service/src/test/java/at/tuwien/service/DataCiteIdentifierServiceUnitTest.java
+++ b/dbrepo-identifier-service/rest-service/src/test/java/at/tuwien/service/DataCiteIdentifierServiceUnitTest.java
@@ -89,7 +89,6 @@ public class DataCiteIdentifierServiceUnitTest extends BaseUnitTest {
         imageRepository.save(IMAGE_1);
         containerRepository.save(CONTAINER_1);
         databaseRepository.save(DATABASE_1);
-        when(restTemplateBuilder.build()).thenReturn(restTemplate);
     }
 
     @Test
@@ -108,6 +107,7 @@ public class DataCiteIdentifierServiceUnitTest extends BaseUnitTest {
         when(restTemplate.exchange(anyString(), eq(HttpMethod.POST), any(HttpEntity.class),
                 any(ParameterizedTypeReference.class)))
                 .thenReturn(ResponseEntity.status(HttpStatus.CREATED).body(response));
+        when(restTemplateBuilder.build()).thenReturn(restTemplate);
 
         /* test */
         Identifier result = dataCiteIdentifierService.create(IDENTIFIER_1_DTO_REQUEST, principal, bearer);
@@ -129,6 +129,7 @@ public class DataCiteIdentifierServiceUnitTest extends BaseUnitTest {
         when(restTemplate.exchange(anyString(), eq(HttpMethod.POST), any(HttpEntity.class),
                 any(ParameterizedTypeReference.class)))
                 .thenThrow(HttpClientErrorException.BadRequest.class);
+        when(restTemplateBuilder.build()).thenReturn(restTemplate);
 
         /* test */
         assertThrows(IdentifierRequestException.class, () -> {
@@ -151,6 +152,7 @@ public class DataCiteIdentifierServiceUnitTest extends BaseUnitTest {
         when(restTemplate.exchange(anyString(), eq(HttpMethod.POST), any(HttpEntity.class),
                 any(ParameterizedTypeReference.class)))
                 .thenThrow(RestClientException.class);
+        when(restTemplateBuilder.build()).thenReturn(restTemplate);
 
         /* test */
         assertThrows(InternalError.class, () -> {
@@ -171,6 +173,7 @@ public class DataCiteIdentifierServiceUnitTest extends BaseUnitTest {
         when(restTemplate.exchange(anyString(), eq(HttpMethod.PUT), any(HttpEntity.class),
                 any(ParameterizedTypeReference.class), eq(IDENTIFIER_1_DOI_NOT_NULL)))
                 .thenReturn(ResponseEntity.ok(response));
+        when(restTemplateBuilder.build()).thenReturn(restTemplate);
 
         /* test */
         Identifier result = dataCiteIdentifierService.update(IDENTIFIER_1_ID, IDENTIFIER_1_DTO_UPDATE_REQUEST);
@@ -187,6 +190,7 @@ public class DataCiteIdentifierServiceUnitTest extends BaseUnitTest {
         when(restTemplate.exchange(anyString(), eq(HttpMethod.PUT), any(HttpEntity.class),
                 any(ParameterizedTypeReference.class), eq(IDENTIFIER_1_DOI_NOT_NULL)))
                 .thenThrow(HttpClientErrorException.BadRequest.class);
+        when(restTemplateBuilder.build()).thenReturn(restTemplate);
 
         /* test */
         assertThrows(IdentifierRequestException.class, () -> {
@@ -204,6 +208,7 @@ public class DataCiteIdentifierServiceUnitTest extends BaseUnitTest {
         when(restTemplate.exchange(anyString(), eq(HttpMethod.PUT), any(HttpEntity.class),
                 any(ParameterizedTypeReference.class), eq(IDENTIFIER_1_DOI_NOT_NULL)))
                 .thenThrow(RestClientException.class);
+        when(restTemplateBuilder.build()).thenReturn(restTemplate);
 
         /* test */
         assertThrows(InternalError.class, () -> {
diff --git a/dbrepo-identifier-service/services/src/main/java/at/tuwien/service/impl/DataCiteIdentifierServiceImpl.java b/dbrepo-identifier-service/services/src/main/java/at/tuwien/service/impl/DataCiteIdentifierServiceImpl.java
index a6568c82b8..b83724e483 100644
--- a/dbrepo-identifier-service/services/src/main/java/at/tuwien/service/impl/DataCiteIdentifierServiceImpl.java
+++ b/dbrepo-identifier-service/services/src/main/java/at/tuwien/service/impl/DataCiteIdentifierServiceImpl.java
@@ -76,8 +76,7 @@ public class DataCiteIdentifierServiceImpl implements IdentifierService {
     }
 
     @Override
-    @Transactional
-    @javax.transaction.Transactional(rollbackOn = {Exception.class})
+    @Transactional(rollbackFor = {Exception.class})
     public Identifier create(IdentifierCreateDto data, Principal principal, String authorization)
             throws IdentifierPublishingNotAllowedException, QueryNotFoundException, RemoteUnavailableException,
             IdentifierAlreadyExistsException, UserNotFoundException, DatabaseNotFoundException,
@@ -153,8 +152,7 @@ public class DataCiteIdentifierServiceImpl implements IdentifierService {
     }
 
     @Override
-    @Transactional
-    @javax.transaction.Transactional(rollbackOn = {Exception.class})
+    @Transactional(rollbackFor = {Exception.class})
     public Identifier update(Long identifierId, IdentifierUpdateDto data)
             throws IdentifierNotFoundException, IdentifierRequestException {
         Identifier identifier = identifierService.update(identifierId, data);
-- 
GitLab