Skip to content

Commit

Permalink
Correct endpoint. Add tests
Browse files Browse the repository at this point in the history
  • Loading branch information
bekhzodkurbonboev committed Jul 18, 2023
1 parent 4e88f00 commit af57909
Show file tree
Hide file tree
Showing 3 changed files with 61 additions and 13 deletions.
26 changes: 13 additions & 13 deletions src/main/resources/swagger.api/publications.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,19 @@ paths:
$ref: '#/components/responses/BadRequest'
'500':
$ref: '#/components/responses/InternalServerError'
delete:
summary: Delete publication by Id
operationId: deletePublicationById
parameters:
- $ref: "#/components/parameters/consortiumId"
- $ref: "#/components/parameters/publicationId"
responses:
"204":
$ref: "#/components/responses/NoContent"
"404":
$ref: "#/components/responses/NotFound"
"500":
$ref: "#/components/responses/InternalServerError"
/publications/{publicationId}/results:
get:
summary: Get publication results
Expand All @@ -53,19 +66,6 @@ paths:
$ref: '#/components/responses/BadRequest'
'500':
$ref: '#/components/responses/InternalServerError'
delete:
summary: Delete publication by Id
operationId: deletePublicationById
parameters:
- $ref: "#/components/parameters/consortiumId"
- $ref: "#/components/parameters/publicationId"
responses:
"204":
$ref: "#/components/responses/NoContent"
"404":
$ref: "#/components/responses/NotFound"
"500":
$ref: "#/components/responses/InternalServerError"
components:
requestBodies:
Publication:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.when;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
Expand Down Expand Up @@ -162,4 +163,17 @@ void getPublicationResultsSuccessful() throws Exception {
);
}

@Test
void deletePublicationByIdSuccessful() throws Exception {
var headers = defaultHeaders();
var consortiumId = UUID.randomUUID();
var publicationId = UUID.randomUUID();

doNothing().when(consortiumService).checkConsortiumExistsOrThrow(any(UUID.class));
when(publicationStatusRepository.existsById(publicationId)).thenReturn(true);
String url = String.format("/consortia/%s/publications/%s", consortiumId, publicationId);

this.mockMvc.perform(delete(url).headers(headers))
.andExpect(status().isNoContent());
}
}
Original file line number Diff line number Diff line change
@@ -1,22 +1,27 @@
package org.folio.consortia.service.impl;

import static org.folio.consortia.utils.InputOutputTestUtils.getMockDataObject;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.atLeast;
import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;

import java.time.LocalDateTime;
import java.util.UUID;
import java.util.concurrent.CompletionException;

import org.folio.consortia.domain.dto.PublicationRequest;
import org.folio.consortia.domain.dto.PublicationStatus;
import org.folio.consortia.domain.entity.PublicationStatusEntity;
import org.folio.consortia.domain.entity.PublicationTenantRequestEntity;
import org.folio.consortia.exception.ResourceNotFoundException;
import org.folio.consortia.repository.PublicationStatusRepository;
import org.folio.consortia.repository.PublicationTenantRequestRepository;
import org.folio.consortia.service.ConsortiumService;
import org.folio.consortia.service.HttpRequestService;
import org.folio.consortia.support.BaseUnitTest;
import org.junit.jupiter.api.Assertions;
Expand All @@ -25,6 +30,7 @@
import org.mockito.Captor;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.springframework.http.HttpMethod;
import org.springframework.http.HttpStatus;
import org.springframework.http.HttpStatusCode;
Expand All @@ -48,6 +54,8 @@ class PublicationServiceImplTest extends BaseUnitTest {
HttpRequestService httpRequestService;
@Mock
ObjectMapper objectMapper;
@Mock
ConsortiumService consortiumService;
@Captor
ArgumentCaptor<PublicationTenantRequestEntity> ptreCaptor;

Expand Down Expand Up @@ -151,4 +159,30 @@ void updatePublicationTenantRequestOnFailure() {
Assertions.assertEquals(HttpStatus.BAD_REQUEST.value(), capturedPtre.getResponseStatusCode());
}

@Test
void deletePublicationByIdSuccessful() {
var consortiumId = UUID.randomUUID();
var publicationId = UUID.randomUUID();

doNothing().when(consortiumService).checkConsortiumExistsOrThrow(consortiumId);
when(publicationStatusRepository.existsById(publicationId)).thenReturn(true);

publicationService.deletePublicationById(consortiumId, publicationId);

Mockito.verify(publicationStatusRepository).deleteById(publicationId);
Mockito.verify(publicationTenantRequestRepository).deleteByPcStateId(publicationId);
}

@Test
void deletePublicationByIdThrowsExceptionIfResourceDoesNotExist() {
var consortiumId = UUID.randomUUID();
var publicationId = UUID.randomUUID();

doNothing().when(consortiumService).checkConsortiumExistsOrThrow(consortiumId);
when(publicationStatusRepository.existsById(publicationId)).thenReturn(false);

assertThrows(ResourceNotFoundException.class, () ->
publicationService.deletePublicationById(consortiumId, publicationId));
}

}

0 comments on commit af57909

Please sign in to comment.