Search in sources :

Example 6 with ProductDTO

use of com.ncedu.fooddelivery.api.v1.dto.product.ProductDTO in project 2021-msk-food-delivery by netcracker-edu.

the class ProductServiceTest method searchProductInShowcaseSuccess.

@Test
public void searchProductInShowcaseSuccess() {
    Pageable pageable = PageRequest.of(0, 2);
    Page<Product> productPage = ProductUtils.createPageProductsInShowcase(pageable);
    String requestSearchPhrase = "Milk taste";
    String perfectPhrase = "Milk:* & taste:*";
    Long warehouseId = 4L;
    Point geo = makeGeo();
    WarehouseInfoDTO warehouseInfoDTO = new WarehouseInfoDTO(warehouseId, null, null, null, null, false);
    when(warehouseServiceMock.getNearestWarehouse(geo)).thenReturn(warehouseInfoDTO);
    when(productRepoMock.searchProductsInShowcase(perfectPhrase, warehouseId, pageable)).thenReturn(productPage);
    SearchProductDTO searchDTO = createSearchProductDTO(requestSearchPhrase);
    List<ProductDTO> resultList = productService.searchProductsInShowcase(searchDTO, pageable);
    List<ProductDTO> perfectList = ProductUtils.createProductDTOListFromPage(productPage);
    verify(warehouseServiceMock, times(1)).getNearestWarehouse(geo);
    verify(productRepoMock, times(1)).searchProductsInShowcase(perfectPhrase, warehouseId, pageable);
    assertEquals(perfectList, resultList);
}
Also used : Pageable(org.springframework.data.domain.Pageable) Product(com.ncedu.fooddelivery.api.v1.entities.Product) Point(com.vividsolutions.jts.geom.Point) SearchProductDTO(com.ncedu.fooddelivery.api.v1.dto.product.SearchProductDTO) ProductDTO(com.ncedu.fooddelivery.api.v1.dto.product.ProductDTO) WarehouseInfoDTO(com.ncedu.fooddelivery.api.v1.dto.warehouseDTOs.WarehouseInfoDTO) SearchProductDTO(com.ncedu.fooddelivery.api.v1.dto.product.SearchProductDTO) Test(org.junit.jupiter.api.Test) SpringBootTest(org.springframework.boot.test.context.SpringBootTest)

Example 7 with ProductDTO

use of com.ncedu.fooddelivery.api.v1.dto.product.ProductDTO in project 2021-msk-food-delivery by netcracker-edu.

the class ProductServiceTest method getProductsInShowcaseSuccess.

@Test
public void getProductsInShowcaseSuccess() {
    Pageable pageable = PageRequest.of(0, 2);
    Page<Product> productPage = ProductUtils.createPageProductsInShowcase(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.findAllByInShowcase(warehouseId, pageable)).thenReturn(productPage);
    CoordsDTO coordsDTO = makeCoordsDTO();
    List<ProductDTO> resultList = productService.getProductsInShowcase(coordsDTO, pageable);
    List<ProductDTO> perfectList = ProductUtils.createProductDTOListFromPage(productPage);
    verify(warehouseServiceMock, times(1)).getNearestWarehouse(geo);
    verify(productRepoMock, times(1)).findAllByInShowcase(warehouseId, pageable);
    assertEquals(perfectList, resultList);
}
Also used : Pageable(org.springframework.data.domain.Pageable) Product(com.ncedu.fooddelivery.api.v1.entities.Product) Point(com.vividsolutions.jts.geom.Point) SearchProductDTO(com.ncedu.fooddelivery.api.v1.dto.product.SearchProductDTO) ProductDTO(com.ncedu.fooddelivery.api.v1.dto.product.ProductDTO) WarehouseInfoDTO(com.ncedu.fooddelivery.api.v1.dto.warehouseDTOs.WarehouseInfoDTO) CoordsDTO(com.ncedu.fooddelivery.api.v1.dto.CoordsDTO) Test(org.junit.jupiter.api.Test) SpringBootTest(org.springframework.boot.test.context.SpringBootTest)

Example 8 with ProductDTO

use of com.ncedu.fooddelivery.api.v1.dto.product.ProductDTO in project 2021-msk-food-delivery by netcracker-edu.

the class ProductServiceTest method getProductDTOByIdInShowCaseSuccess.

@Test
public void getProductDTOByIdInShowCaseSuccess() {
    Long productId = 1L;
    Product product = ProductUtils.createMilkInShowcase(productId);
    when(productRepoMock.findById(productId)).thenReturn(Optional.of(product));
    ProductDTO resultDTO = productService.getProductDTOByIdInShowcase(productId);
    ProductDTO perfectDTO = ProductUtils.createProductDTO(product);
    verify(productRepoMock, times(1)).findById(productId);
    assertEquals(perfectDTO, resultDTO);
}
Also used : Product(com.ncedu.fooddelivery.api.v1.entities.Product) SearchProductDTO(com.ncedu.fooddelivery.api.v1.dto.product.SearchProductDTO) ProductDTO(com.ncedu.fooddelivery.api.v1.dto.product.ProductDTO) Test(org.junit.jupiter.api.Test) SpringBootTest(org.springframework.boot.test.context.SpringBootTest)

Example 9 with ProductDTO

use of com.ncedu.fooddelivery.api.v1.dto.product.ProductDTO in project 2021-msk-food-delivery by netcracker-edu.

the class ProductServiceTest method getProductsNullResult.

@Test
public void getProductsNullResult() {
    Pageable pageable = PageRequest.of(0, 2);
    Page<Product> productsPage = new PageImpl<>(new ArrayList<Product>(), pageable, 0);
    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 = new ArrayList<>();
    verify(warehouseServiceMock, times(1)).getNearestWarehouse(geo);
    verify(productRepoMock, times(1)).findAll(warehouseId, pageable);
    assertEquals(perfectList, resultList);
}
Also used : PageImpl(org.springframework.data.domain.PageImpl) Pageable(org.springframework.data.domain.Pageable) ArrayList(java.util.ArrayList) Product(com.ncedu.fooddelivery.api.v1.entities.Product) Point(com.vividsolutions.jts.geom.Point) SearchProductDTO(com.ncedu.fooddelivery.api.v1.dto.product.SearchProductDTO) ProductDTO(com.ncedu.fooddelivery.api.v1.dto.product.ProductDTO) WarehouseInfoDTO(com.ncedu.fooddelivery.api.v1.dto.warehouseDTOs.WarehouseInfoDTO) CoordsDTO(com.ncedu.fooddelivery.api.v1.dto.CoordsDTO) Test(org.junit.jupiter.api.Test) SpringBootTest(org.springframework.boot.test.context.SpringBootTest)

Example 10 with ProductDTO

use of com.ncedu.fooddelivery.api.v1.dto.product.ProductDTO 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);
}
Also used : Pageable(org.springframework.data.domain.Pageable) Product(com.ncedu.fooddelivery.api.v1.entities.Product) Point(com.vividsolutions.jts.geom.Point) SearchProductDTO(com.ncedu.fooddelivery.api.v1.dto.product.SearchProductDTO) ProductDTO(com.ncedu.fooddelivery.api.v1.dto.product.ProductDTO) WarehouseInfoDTO(com.ncedu.fooddelivery.api.v1.dto.warehouseDTOs.WarehouseInfoDTO) CoordsDTO(com.ncedu.fooddelivery.api.v1.dto.CoordsDTO) Test(org.junit.jupiter.api.Test) SpringBootTest(org.springframework.boot.test.context.SpringBootTest)

Aggregations

ProductDTO (com.ncedu.fooddelivery.api.v1.dto.product.ProductDTO)9 Product (com.ncedu.fooddelivery.api.v1.entities.Product)8 SearchProductDTO (com.ncedu.fooddelivery.api.v1.dto.product.SearchProductDTO)7 Test (org.junit.jupiter.api.Test)7 SpringBootTest (org.springframework.boot.test.context.SpringBootTest)7 WarehouseInfoDTO (com.ncedu.fooddelivery.api.v1.dto.warehouseDTOs.WarehouseInfoDTO)5 Point (com.vividsolutions.jts.geom.Point)5 Pageable (org.springframework.data.domain.Pageable)5 CoordsDTO (com.ncedu.fooddelivery.api.v1.dto.CoordsDTO)3 ArrayList (java.util.ArrayList)2 ProductCreateDTO (com.ncedu.fooddelivery.api.v1.dto.product.ProductCreateDTO)1 ProductUpdateDTO (com.ncedu.fooddelivery.api.v1.dto.product.ProductUpdateDTO)1 OrderProductPosition (com.ncedu.fooddelivery.api.v1.entities.orderProductPosition.OrderProductPosition)1 PageImpl (org.springframework.data.domain.PageImpl)1