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);
}
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);
}
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());
}
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());
}
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()));
}
}
Aggregations