Search in sources :

Example 66 with Mock

use of com.arbindo.mimock.entities.Mock in project mimock by neel1996.

the class MockManagementController method createMock.

@Operation(summary = "Create Mock", description = "Creates a mock as per the given data in multi-part form.", tags = { "Mock Management" })
@PostMapping(consumes = { MediaType.MULTIPART_FORM_DATA_VALUE }, produces = { MediaType.APPLICATION_JSON_VALUE })
public ResponseEntity<GenericResponseWrapper<Mock>> createMock(@Valid MockRequest request) {
    Mock mock = mockManagementService.createMock(RequestModelMapper.map(request));
    if (mock != null) {
        final URI location = ServletUriComponentsBuilder.fromCurrentServletMapping().path(UrlConfig.MOCKS_PATH + "/{mockId}").build().expand(mock.getId()).toUri();
        GenericResponseWrapper<Mock> genericResponseWrapper = getGenericResponseWrapper(HttpStatus.CREATED, Messages.createResourceSuccess(location.toString()), mock);
        return ResponseEntity.created(location).body(genericResponseWrapper);
    }
    GenericResponseWrapper<Mock> genericResponseWrapper = getGenericResponseWrapper(HttpStatus.BAD_REQUEST, Messages.CREATE_RESOURCE_FAILED, null);
    return ResponseEntity.badRequest().body(genericResponseWrapper);
}
Also used : URI(java.net.URI) Mock(com.arbindo.mimock.entities.Mock) Operation(io.swagger.v3.oas.annotations.Operation)

Example 67 with Mock

use of com.arbindo.mimock.entities.Mock in project mimock by neel1996.

the class GenericMockRequestService method serveMockRequest.

public DomainModelForMock serveMockRequest(GenericRequestModel request) throws MatchingMockNotFoundException, IOException {
    log.log(Level.INFO, "Fetching matching mock from the DB");
    String route = request.getRoute();
    HttpMethod httpMethod = httpMethod(request.getHttpMethod());
    String queryParam = request.getQueryParam();
    Optional<Mock> resultFromDB = repository.findOneByRouteAndHttpMethodAndQueryParams(route, httpMethod, queryParam);
    if (resultFromDB.isEmpty()) {
        log.log(Level.ERROR, "No matching rows returned from DB");
        String errorMessage = "Matching mock does not exist";
        throw new MatchingMockNotFoundException(errorMessage);
    }
    log.log(Level.INFO, "Returning matching mock");
    Mock matchingMock = resultFromDB.get();
    if (shouldValidateRequestHeaders(matchingMock, request)) {
        validateRequestHeaders(request, matchingMock);
    }
    if (shouldValidateRequestBody(matchingMock, request)) {
        validateRequestBody(matchingMock.getRequestBodiesForMock().getRequestBody(), request.getRequestBody());
    }
    return domainModelMapper.mappedModel(matchingMock);
}
Also used : HttpMethod(com.arbindo.mimock.entities.HttpMethod) DomainModelForMock(com.arbindo.mimock.generic.model.DomainModelForMock) Mock(com.arbindo.mimock.entities.Mock)

Example 68 with Mock

use of com.arbindo.mimock.entities.Mock in project mimock by neel1996.

the class MockManagementControllerTest method shouldReturnHttpBadRequest_DeleteAllMocksApi_ReturnsNullData.

@Test
void shouldReturnHttpBadRequest_DeleteAllMocksApi_ReturnsNullData() throws Exception {
    // Arrange
    String route = UrlConfig.MOCKS_PATH;
    lenient().when(mockManagementService.deleteAllMocks()).thenReturn(false);
    GenericResponseWrapper<Mock> genericResponseWrapper = getGenericResponseWrapper(HttpStatus.BAD_REQUEST, Messages.DELETE_ALL_RESOURCES_FAILED, null);
    String expectedResponseBody = convertObjectToJsonString(genericResponseWrapper);
    String expectedContentType = "application/json";
    // Act
    MvcResult result = mockMvc.perform(delete(route)).andExpect(status().isBadRequest()).andExpect(content().contentType(expectedContentType)).andReturn();
    // Assert
    assertEquals(expectedResponseBody, result.getResponse().getContentAsString());
}
Also used : JsonMapper.convertObjectToJsonString(com.arbindo.mimock.helpers.general.JsonMapper.convertObjectToJsonString) RandomDataGenerator.generateRandomAlphabeticString(com.arbindo.mimock.helpers.general.RandomDataGenerator.generateRandomAlphabeticString) ArgumentMatchers.anyString(org.mockito.ArgumentMatchers.anyString) MvcResult(org.springframework.test.web.servlet.MvcResult) Mock(com.arbindo.mimock.entities.Mock) Test(org.junit.jupiter.api.Test) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest) WebMvcTest(org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest)

Example 69 with Mock

use of com.arbindo.mimock.entities.Mock in project mimock by neel1996.

the class MockManagementControllerTest method shouldReturnHttpBadRequest_GetMockByIdApi_ReturnsNullData.

@Test
void shouldReturnHttpBadRequest_GetMockByIdApi_ReturnsNullData() throws Exception {
    // Arrange
    String mockId = UUID.randomUUID().toString();
    String route = UrlConfig.MOCKS_PATH + "/" + mockId;
    lenient().when(mockManagementService.getMockById(mockId)).thenReturn(null);
    GenericResponseWrapper<Mock> genericResponseWrapper = getGenericResponseWrapper(HttpStatus.BAD_REQUEST, Messages.GET_RESOURCE_FAILED, null);
    String expectedResponseBody = convertObjectToJsonString(genericResponseWrapper);
    String expectedContentType = "application/json";
    // Act
    MvcResult result = mockMvc.perform(get(route)).andExpect(status().isBadRequest()).andExpect(content().contentType(expectedContentType)).andReturn();
    // Assert
    assertEquals(expectedResponseBody, result.getResponse().getContentAsString());
}
Also used : JsonMapper.convertObjectToJsonString(com.arbindo.mimock.helpers.general.JsonMapper.convertObjectToJsonString) RandomDataGenerator.generateRandomAlphabeticString(com.arbindo.mimock.helpers.general.RandomDataGenerator.generateRandomAlphabeticString) ArgumentMatchers.anyString(org.mockito.ArgumentMatchers.anyString) MvcResult(org.springframework.test.web.servlet.MvcResult) Mock(com.arbindo.mimock.entities.Mock) Test(org.junit.jupiter.api.Test) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest) WebMvcTest(org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest)

Example 70 with Mock

use of com.arbindo.mimock.entities.Mock in project mimock by neel1996.

the class ExportImportServiceTest method shouldWriteMocksToCsvWriter_Success.

@Test
void shouldWriteMocksToCsvWriter_Success() throws IOException {
    // Arrange
    StringWriter stringWriter = new StringWriter();
    PrintWriter printWriter = new PrintWriter(stringWriter);
    List<Mock> mockList = generateListOfMocks();
    // Act
    mockExportImportService.exportMockListToCsv(printWriter, mockList);
    // Assert
    String expectedResultHeaders = Arrays.toString(ExportImportServiceImpl.getCsvHeaders()).replace("[", "").replace("]", "").replace(", ", ",");
    String result = stringWriter.toString();
    assertTrue(result.contains(expectedResultHeaders));
    for (Mock mock : mockList) {
        assertTrue(result.contains(mock.getId().toString()));
        assertTrue(result.contains(mock.getRoute()));
        assertTrue(result.contains(mock.getHttpMethod().getMethod()));
        assertTrue(result.contains(mock.getResponseContentType().getContentType()));
        assertTrue(result.contains(mock.getDescription()));
        assertTrue(result.contains(mock.getQueryParams()));
        assertTrue(result.contains(mock.getStatusCode().toString()));
    }
}
Also used : StringWriter(java.io.StringWriter) Mock(com.arbindo.mimock.entities.Mock) PrintWriter(java.io.PrintWriter) Test(org.junit.jupiter.api.Test) SpringBootTest(org.springframework.boot.test.context.SpringBootTest)

Aggregations

Mock (com.arbindo.mimock.entities.Mock)84 Test (org.junit.jupiter.api.Test)66 ParameterizedTest (org.junit.jupiter.params.ParameterizedTest)48 JsonMapper.convertObjectToJsonString (com.arbindo.mimock.helpers.general.JsonMapper.convertObjectToJsonString)42 WebMvcTest (org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest)42 MvcResult (org.springframework.test.web.servlet.MvcResult)40 RandomDataGenerator.generateRandomAlphabeticString (com.arbindo.mimock.helpers.general.RandomDataGenerator.generateRandomAlphabeticString)38 ArgumentMatchers.anyString (org.mockito.ArgumentMatchers.anyString)38 SpringBootTest (org.springframework.boot.test.context.SpringBootTest)24 DomainModelForMock (com.arbindo.mimock.generic.model.DomainModelForMock)10 MocksGenerator.deleteMock (com.arbindo.mimock.helpers.entities.MocksGenerator.deleteMock)10 Operation (io.swagger.v3.oas.annotations.Operation)10 TextualResponse (com.arbindo.mimock.entities.TextualResponse)8 MockMultipartFile (org.springframework.mock.web.MockMultipartFile)8 ResponseContentType (com.arbindo.mimock.entities.ResponseContentType)6 Pageable (org.springframework.data.domain.Pageable)6 HttpStatus (org.springframework.http.HttpStatus)6 BinaryResponse (com.arbindo.mimock.entities.BinaryResponse)4 MocksGenerator.generateMock (com.arbindo.mimock.helpers.entities.MocksGenerator.generateMock)4 MockRequest (com.arbindo.mimock.manage.mimocks.models.request.MockRequest)4