diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/config/RabbitConfig.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/config/RabbitConfig.java index 70e6c53c28a9f42c883e0e0b9dbf38316eab452b..ddff982be51e7cfade051dd28ed8c70142d8bc8f 100644 --- a/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/config/RabbitConfig.java +++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/config/RabbitConfig.java @@ -4,14 +4,7 @@ import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest; import lombok.Getter; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Primary; -import org.springframework.http.client.support.BasicAuthenticationInterceptor; -import org.springframework.web.client.RestTemplate; -import org.springframework.web.util.DefaultUriBuilderFactory; - -import java.io.IOException; @Getter @Slf4j @@ -30,14 +23,4 @@ public class RabbitConfig extends BaseTest { @Value("${dbrepo.endpoints.brokerService}") private String brokerEndpoint; - @Bean - @Primary - public RestTemplate brokerRestTemplate() { - final RestTemplate restTemplate = new RestTemplate(); - restTemplate.setUriTemplateHandler(new DefaultUriBuilderFactory(brokerEndpoint)); - restTemplate.getInterceptors() - .add(new BasicAuthenticationInterceptor(USER_1_USERNAME, USER_1_PASSWORD)); - return restTemplate; - } - } diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/IdentifierEndpointUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/IdentifierEndpointUnitTest.java index 054c96e3d925412cc746a81c97e9f8d3d448d7bc..6f818d39b870571db464289895cefde419b98644 100644 --- a/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/IdentifierEndpointUnitTest.java +++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoints/IdentifierEndpointUnitTest.java @@ -967,7 +967,7 @@ public class IdentifierEndpointUnitTest extends BaseTest { /* test */ final ResponseEntity<IdentifierDto> response = identifierEndpoint.publish(IDENTIFIER_1_ID); - assertEquals(HttpStatus.CREATED, response.getStatusCode()); + assertEquals(HttpStatus.ACCEPTED, response.getStatusCode()); final IdentifierDto body = response.getBody(); assertNotNull(body); } diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/DataCiteIdentifierServicePersistenceTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/DataCiteIdentifierServicePersistenceTest.java index b96bc4bad2611d7a5ce87d44afa007e434c4796e..c91fef0d0d6f2945650164f803a912e6620958a5 100644 --- a/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/DataCiteIdentifierServicePersistenceTest.java +++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/DataCiteIdentifierServicePersistenceTest.java @@ -9,13 +9,12 @@ import at.ac.tuwien.ifs.dbrepo.core.entity.identifier.Identifier; import at.ac.tuwien.ifs.dbrepo.core.entity.identifier.IdentifierStatusType; import at.ac.tuwien.ifs.dbrepo.core.entity.identifier.NameIdentifierSchemeType; import at.ac.tuwien.ifs.dbrepo.core.exception.*; -import at.ac.tuwien.ifs.dbrepo.core.mapper.MetadataMapper; +import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest; import at.ac.tuwien.ifs.dbrepo.gateway.SearchServiceGateway; import at.ac.tuwien.ifs.dbrepo.repository.ContainerRepository; import at.ac.tuwien.ifs.dbrepo.repository.DatabaseRepository; import at.ac.tuwien.ifs.dbrepo.repository.LicenseRepository; import at.ac.tuwien.ifs.dbrepo.repository.UserRepository; -import at.ac.tuwien.ifs.dbrepo.core.test.BaseTest; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; @@ -46,7 +45,7 @@ import static org.mockito.Mockito.when; @ExtendWith(SpringExtension.class) @DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_EACH_TEST_METHOD) -@SpringBootTest(properties = "spring.profiles.active=local,junit,doi") +@SpringBootTest(properties = "spring.profiles.active=doi") public class DataCiteIdentifierServicePersistenceTest extends BaseTest { @MockBean @@ -145,7 +144,10 @@ public class DataCiteIdentifierServicePersistenceTest extends BaseTest { .thenReturn(DATABASE_1_BRIEF_DTO); /* test */ - dataCiteIdentifierService.save(DATABASE_1, USER_1, IDENTIFIER_1_SAVE_DTO); + assertEquals(7, dataCiteIdentifierService.findAll().size()); + final Identifier response = dataCiteIdentifierService.save(DATABASE_1, USER_1, IDENTIFIER_1_SAVE_DTO); + assertEquals(IDENTIFIER_1_DOI, response.getDoi()); + assertEquals(7, dataCiteIdentifierService.findAll().size()); } @Test @@ -185,8 +187,8 @@ public class DataCiteIdentifierServicePersistenceTest extends BaseTest { @Test public void create_succeeds() throws SearchServiceException, MalformedException, DataServiceException, QueryNotFoundException, DataServiceConnectionException, DatabaseNotFoundException, - SearchServiceConnectionException, IdentifierNotFoundException, ViewNotFoundException, - ExternalServiceException { + SearchServiceConnectionException, ViewNotFoundException, ExternalServiceException, + IdentifierNotFoundException { final ResponseEntity<DataCiteBody<DataCiteDoi>> mock = ResponseEntity.status(HttpStatus.CREATED) .body(IDENTIFIER_1_DATA_CITE); @@ -195,15 +197,17 @@ public class DataCiteIdentifierServicePersistenceTest extends BaseTest { .thenReturn(mock); /* test */ + assertEquals(7, dataCiteIdentifierService.findAll().size()); final Identifier response = dataCiteIdentifierService.create(DATABASE_1, USER_1, IDENTIFIER_1_CREATE_DTO); assertNotNull(response.getDoi()); + assertEquals(8, dataCiteIdentifierService.findAll().size()); } @Test public void create_hasDoi_succeeds() throws SearchServiceException, MalformedException, DataServiceException, QueryNotFoundException, DataServiceConnectionException, DatabaseNotFoundException, - SearchServiceConnectionException, ViewNotFoundException, - ExternalServiceException { + SearchServiceConnectionException, ViewNotFoundException, ExternalServiceException, + IdentifierNotFoundException { final ResponseEntity<DataCiteBody<DataCiteDoi>> mock = ResponseEntity.status(HttpStatus.CREATED) .body(IDENTIFIER_1_DATA_CITE); @@ -212,8 +216,10 @@ public class DataCiteIdentifierServicePersistenceTest extends BaseTest { .thenReturn(mock); /* test */ + assertEquals(7, dataCiteIdentifierService.findAll().size()); final Identifier response = dataCiteIdentifierService.create(DATABASE_1, USER_1, IDENTIFIER_1_CREATE_WITH_DOI_DTO); assertEquals(IDENTIFIER_1_DOI, response.getDoi()); + assertEquals(8, dataCiteIdentifierService.findAll().size()); } @Test @@ -227,9 +233,11 @@ public class DataCiteIdentifierServicePersistenceTest extends BaseTest { .thenReturn(mock); /* test */ + assertEquals(7, dataCiteIdentifierService.findAll().size()); final Identifier response = dataCiteIdentifierService.publish(IDENTIFIER_7); assertEquals(IDENTIFIER_7.getId(), response.getId()); assertEquals(IdentifierStatusType.PUBLISHED, response.getStatus()); + assertEquals(7, dataCiteIdentifierService.findAll().size()); } @Test diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/IdentifierServicePersistenceTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/IdentifierServicePersistenceTest.java index a2e01768775e0f81e9cc6eccf9752536ae9e67eb..d67c8898718f03c4eb712f57c7f173e42c56a38e 100644 --- a/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/IdentifierServicePersistenceTest.java +++ b/dbrepo-metadata-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/IdentifierServicePersistenceTest.java @@ -476,7 +476,8 @@ public class IdentifierServicePersistenceTest extends BaseTest { @Test public void create_hasDoi_succeeds() throws SearchServiceException, MalformedException, DataServiceException, QueryNotFoundException, DataServiceConnectionException, DatabaseNotFoundException, - SearchServiceConnectionException, ViewNotFoundException, ExternalServiceException { + SearchServiceConnectionException, ViewNotFoundException, ExternalServiceException, + IdentifierNotFoundException { /* test */ final Identifier response = identifierService.create(DATABASE_1, USER_1, IDENTIFIER_1_CREATE_WITH_DOI_DTO); diff --git a/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/IdentifierService.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/IdentifierService.java index ac23dc1b4f9e425307e057722fdbc31b18e0a660..32193375fedf5cf3c24b356624f755c9e0f4f051 100644 --- a/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/IdentifierService.java +++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/IdentifierService.java @@ -142,7 +142,7 @@ public interface IdentifierService { */ Identifier create(Database database, User user, CreateIdentifierDto data) throws DataServiceException, DataServiceConnectionException, MalformedException, ViewNotFoundException, DatabaseNotFoundException, - QueryNotFoundException, SearchServiceException, SearchServiceConnectionException, ExternalServiceException; + QueryNotFoundException, SearchServiceException, SearchServiceConnectionException, ExternalServiceException, IdentifierNotFoundException; /** * Export metadata for a identifier diff --git a/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/DataCiteIdentifierServiceImpl.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/DataCiteIdentifierServiceImpl.java index 0ce9c93a5407241bb5523fb4ac5b5661b87f0158..a6d50d4f966706e4e1f24b1457e99ff750e5b412 100644 --- a/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/DataCiteIdentifierServiceImpl.java +++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/DataCiteIdentifierServiceImpl.java @@ -110,9 +110,13 @@ public class DataCiteIdentifierServiceImpl implements IdentifierService { @Transactional(rollbackFor = {Exception.class}) public Identifier create(Database database, User user, CreateIdentifierDto data) throws DataServiceException, DataServiceConnectionException, MalformedException, ViewNotFoundException, DatabaseNotFoundException, - QueryNotFoundException, SearchServiceException, SearchServiceConnectionException, ExternalServiceException { - data.setDoi(remoteSave(identifierService.create(database, user, data), DataCiteDoiEvent.REGISTER)); - return identifierService.create(database, user, data); + QueryNotFoundException, SearchServiceException, SearchServiceConnectionException, ExternalServiceException, + IdentifierNotFoundException { + final Identifier identifier = identifierService.create(database, user, data); + data.setDoi(remoteSave(identifier, DataCiteDoiEvent.REGISTER)); + final IdentifierSaveDto dto = metadataMapper.identifierCreateDtoToIdentifierSaveDto(data); + dto.setId(identifier.getId()); + return identifierService.save(database, user, dto); } /**