use of com.arbindo.mimock.manage.mimocks.models.request.MockRequest in project mimock by arbindo.
the class RequestModelMapperTest method shouldMapRequestModelToProcessedRequestModal.
@Test
void shouldMapRequestModelToProcessedRequestModal() {
MockRequest request = MocksGenerator.createMockRequest();
String requestHeadersAsString = RandomDataGenerator.generateRequestHeadersAsString();
String responseHeadersAsString = RandomDataGenerator.generateResponseHeadersAsString();
String requestBodyAsString = RandomDataGenerator.generateRequestBodyAsString();
MockRequest requestToBeMapped = MockRequest.builder().name(request.getName()).description(request.getDescription()).route(request.getRoute()).httpMethod(request.getHttpMethod()).statusCode(request.getStatusCode()).responseContentType(request.getResponseContentType()).queryParams(request.getQueryParams()).requestHeader(requestHeadersAsString).shouldDoExactHeaderMatching(request.isHeaderMatchingSetToStrict()).requestBody(requestBodyAsString).requestBodyType(request.getRequestBodyType()).responseHeaders(responseHeadersAsString).expectedTextResponse(request.getExpectedTextResponse()).build();
ProcessedMockRequest expectedRequest = ProcessedMockRequest.builder().name(request.getName()).description(request.getDescription()).route(request.getRoute()).httpMethod(request.getHttpMethod()).statusCode(request.getStatusCode()).responseContentType(request.getResponseContentType()).queryParams(request.getQueryParams()).requestHeader(JsonMapper.convertJSONStringToMapWithLowerCaseKeys(requestHeadersAsString)).shouldDoExactHeaderMatching(request.isHeaderMatchingSetToStrict()).requestBody(JsonMapper.convertJSONStringToMapWithLowerCaseKeys(requestBodyAsString)).requestBodyType(request.getRequestBodyType()).responseHeaders(JsonMapper.convertJSONStringToMapWithLowerCaseKeys(responseHeadersAsString)).expectedTextResponse(request.getExpectedTextResponse()).build();
ProcessedMockRequest mappedRequest = RequestModelMapper.map(requestToBeMapped);
assertEquals(expectedRequest.getName(), mappedRequest.getName());
assertEquals(expectedRequest.getDescription(), mappedRequest.getDescription());
assertEquals(expectedRequest.getRoute(), mappedRequest.getRoute());
assertEquals(expectedRequest.getHttpMethod(), mappedRequest.getHttpMethod());
assertEquals(expectedRequest.getStatusCode(), mappedRequest.getStatusCode());
assertEquals(expectedRequest.getResponseContentType(), mappedRequest.getResponseContentType());
assertEquals(expectedRequest.getQueryParams(), mappedRequest.getQueryParams());
assertEquals(expectedRequest.getRequestHeader(), mappedRequest.getRequestHeader());
assertEquals(expectedRequest.getShouldDoExactHeaderMatching(), mappedRequest.getShouldDoExactHeaderMatching());
assertEquals(expectedRequest.getRequestBody(), mappedRequest.getRequestBody());
assertEquals(expectedRequest.getRequestBodyType(), mappedRequest.getRequestBodyType());
assertEquals(expectedRequest.getResponseHeaders(), mappedRequest.getResponseHeaders());
assertEquals(expectedRequest.getExpectedTextResponse(), mappedRequest.getExpectedTextResponse());
}
use of com.arbindo.mimock.manage.mimocks.models.request.MockRequest in project mimock by arbindo.
the class MockManagementControllerTest method shouldReturnHttpBadRequest_CreateMockApi_WithInvalidParametersForQueryParamsInRequest_ReturnsValidationErrors.
@Test
void shouldReturnHttpBadRequest_CreateMockApi_WithInvalidParametersForQueryParamsInRequest_ReturnsValidationErrors() throws Exception {
// Arrange
MockMultipartFile file = getMockMultipartFile();
MockRequest mockRequest = createMockRequestWithFile(file);
String route = UrlConfig.MOCKS_PATH;
// Modify the MockRequest.QueryParams with longer value
mockRequest.setQueryParams(generateRandomAlphabeticString(2000));
// Act and Assert
mockMvc.perform(multipart(route).file(file).param("name", mockRequest.getName()).param("route", mockRequest.getRoute()).param("httpMethod", mockRequest.getHttpMethod()).param("responseContentType", mockRequest.getResponseContentType()).param("statusCode", String.valueOf(mockRequest.getStatusCode())).param("expectedTextResponse", mockRequest.getExpectedTextResponse()).param("queryParams", mockRequest.getQueryParams()).param("description", mockRequest.getDescription())).andExpect(status().isBadRequest()).andExpect(response -> assertNotNull(response.getResolvedException())).andExpect(response -> assertTrue(response.getResolvedException().getMessage().contains("QueryParams can be maximum of 1024 characters"))).andReturn();
}
use of com.arbindo.mimock.manage.mimocks.models.request.MockRequest in project mimock by arbindo.
the class MockManagementControllerTest method shouldReturnHttpCreated_CreateMockApi_ReturnsValidMockData.
@Test
void shouldReturnHttpCreated_CreateMockApi_ReturnsValidMockData() throws Exception {
// Arrange
MockMultipartFile file = getMockMultipartFile();
MockRequest mockRequest = createMockRequestWithFile(file);
Mock createdMock = generateMock(mockRequest);
String route = UrlConfig.MOCKS_PATH;
lenient().when(mockManagementService.createMock(any(ProcessedMockRequest.class))).thenReturn(createdMock);
final String location = "http://localhost" + route + "/" + createdMock.getId();
GenericResponseWrapper<Mock> genericResponseWrapper = getGenericResponseWrapper(HttpStatus.CREATED, Messages.createResourceSuccess(location), createdMock);
String expectedResponseBody = convertObjectToJsonString(genericResponseWrapper);
String expectedContentType = "application/json";
// Act
MvcResult result = mockMvc.perform(multipart(route).file(file).param("name", mockRequest.getName()).param("route", mockRequest.getRoute()).param("httpMethod", mockRequest.getHttpMethod()).param("responseContentType", mockRequest.getResponseContentType()).param("statusCode", String.valueOf(mockRequest.getStatusCode())).param("expectedTextResponse", mockRequest.getExpectedTextResponse()).param("description", mockRequest.getDescription())).andExpect(status().isCreated()).andExpect(content().contentType(expectedContentType)).andReturn();
// Assert
assertEquals(expectedResponseBody, result.getResponse().getContentAsString());
}
use of com.arbindo.mimock.manage.mimocks.models.request.MockRequest in project mimock by arbindo.
the class MockManagementControllerTest method shouldReturnHttpOk_UpdateMockByIdApi_ReturnsValidMockData.
@Test
void shouldReturnHttpOk_UpdateMockByIdApi_ReturnsValidMockData() throws Exception {
// Arrange
MockMultipartFile file = getMockMultipartFile();
MockRequest mockRequest = createMockRequestWithFile(file);
Mock mock = generateMock(mockRequest);
String route = UrlConfig.MOCKS_PATH + "/" + mock.getId();
lenient().when(mockManagementService.updateMock(anyString(), any(ProcessedMockRequest.class))).thenReturn(mock);
GenericResponseWrapper<Mock> genericResponseWrapper = getGenericResponseWrapper(HttpStatus.OK, Messages.UPDATE_RESOURCE_SUCCESS, mock);
String expectedResponseBody = convertObjectToJsonString(genericResponseWrapper);
String expectedContentType = "application/json";
// Act
MockMultipartHttpServletRequestBuilder builder = MockMvcRequestBuilders.multipart(route);
builder.with(request -> {
request.setMethod("PUT");
return request;
});
MvcResult result = mockMvc.perform(builder.file(file).param("name", mockRequest.getName()).param("route", mockRequest.getRoute()).param("httpMethod", mockRequest.getHttpMethod()).param("requestHeader", "{\"x-auth-token\": \"123e4567-e89b-12d3-a456-426614174000\"}").param("shouldDoExactHeaderMatching", "false").param("requestBody", "{\"name\": \"blog\", \"auto_init\": true, \"private\": true, \"gitignore_template\": \"nanoc\"}").param("responseHeaders", "{\"Content-Type\": \"application/json\"}").param("responseContentType", mockRequest.getResponseContentType()).param("statusCode", String.valueOf(mockRequest.getStatusCode())).param("expectedTextResponse", mockRequest.getExpectedTextResponse()).param("description", mockRequest.getDescription())).andExpect(status().isOk()).andExpect(content().contentType(expectedContentType)).andReturn();
// Assert
assertEquals(expectedResponseBody, result.getResponse().getContentAsString());
}
use of com.arbindo.mimock.manage.mimocks.models.request.MockRequest in project mimock by arbindo.
the class MockManagementControllerTest method shouldReturnHttpBadRequest_CreateMockApi_ReturnsNullMockData.
@Test
void shouldReturnHttpBadRequest_CreateMockApi_ReturnsNullMockData() throws Exception {
// Arrange
MockMultipartFile file = getMockMultipartFile();
MockRequest mockRequest = createMockRequestWithFile(file);
String route = UrlConfig.MOCKS_PATH;
lenient().when(mockManagementService.createMock(any(ProcessedMockRequest.class))).thenReturn(null);
GenericResponseWrapper<Mock> genericResponseWrapper = getGenericResponseWrapper(HttpStatus.BAD_REQUEST, Messages.CREATE_RESOURCE_FAILED, null);
String expectedResponseBody = convertObjectToJsonString(genericResponseWrapper);
String expectedContentType = "application/json";
// Act
MvcResult result = mockMvc.perform(multipart(route).file(file).param("name", mockRequest.getName()).param("route", mockRequest.getRoute()).param("httpMethod", mockRequest.getHttpMethod()).param("responseContentType", mockRequest.getResponseContentType()).param("statusCode", String.valueOf(mockRequest.getStatusCode())).param("expectedTextResponse", mockRequest.getExpectedTextResponse()).param("description", mockRequest.getDescription())).andExpect(status().isBadRequest()).andExpect(content().contentType(expectedContentType)).andReturn();
// Assert
assertEquals(expectedResponseBody, result.getResponse().getContentAsString());
}
Aggregations