use of com.ncedu.fooddelivery.api.v1.dto.warehouseDTOs.WarehouseInfoDTO in project 2021-msk-food-delivery by netcracker-edu.
the class ProductServiceTest method getProductsSuccess.
// TODO: rewrite tests!!!
@Test
public void getProductsSuccess() {
Pageable pageable = PageRequest.of(0, 2);
Page<Product> productsPage = ProductUtils.createPageWithMilkProducts(pageable);
Long warehouseId = 4L;
Point geo = makeGeo();
WarehouseInfoDTO warehouseInfoDTO = new WarehouseInfoDTO(warehouseId, null, null, null, null, false);
when(warehouseServiceMock.getNearestWarehouse(geo)).thenReturn(warehouseInfoDTO);
when(productRepoMock.findAll(warehouseId, pageable)).thenReturn(productsPage);
CoordsDTO coordsDTO = makeCoordsDTO();
List<ProductDTO> resultList = productService.getProducts(coordsDTO, pageable);
List<ProductDTO> perfectList = ProductUtils.createProductDTOListFromPage(productsPage);
verify(warehouseServiceMock, times(1)).getNearestWarehouse(geo);
verify(productRepoMock, times(1)).findAll(warehouseId, pageable);
assertEquals(perfectList, resultList);
}
use of com.ncedu.fooddelivery.api.v1.dto.warehouseDTOs.WarehouseInfoDTO in project 2021-msk-food-delivery by netcracker-edu.
the class WarehouseController method getNearestWarehouse.
@PreAuthorize("isAuthenticated()")
@GetMapping(path = "/api/v1/warehouse/nearest")
public ResponseEntity<WarehouseInfoDTO> getNearestWarehouse(@RequestParam(required = true) @DecimalMin(value = "-90.0", inclusive = true) @DecimalMax(value = "90.0", inclusive = true) BigDecimal lat, @RequestParam(required = true) @DecimalMin(value = "-180.0", inclusive = false) @DecimalMax(value = "180.0", inclusive = false) BigDecimal lon) {
Point geo = geometryFactory.createPoint(new Coordinate(lon.doubleValue(), lat.doubleValue()));
WarehouseInfoDTO nearestWarehouse = warehouseService.getNearestWarehouse(geo);
return new ResponseEntity<>(nearestWarehouse, HttpStatus.OK);
}
Aggregations