diff --git a/src/main/java/com/i8ai/training/storeapi/model/Lot.java b/src/main/java/com/i8ai/training/storeapi/model/Lot.java index dede332..b1b460a 100644 --- a/src/main/java/com/i8ai/training/storeapi/model/Lot.java +++ b/src/main/java/com/i8ai/training/storeapi/model/Lot.java @@ -2,16 +2,13 @@ import jakarta.persistence.*; import jakarta.validation.constraints.NotNull; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; +import lombok.*; import java.util.Date; @Entity -@Getter -@Setter +@Data +@Builder @NoArgsConstructor @AllArgsConstructor public class Lot { diff --git a/src/main/java/com/i8ai/training/storeapi/model/Pack.java b/src/main/java/com/i8ai/training/storeapi/model/Pack.java index 4ae0097..11c29fb 100644 --- a/src/main/java/com/i8ai/training/storeapi/model/Pack.java +++ b/src/main/java/com/i8ai/training/storeapi/model/Pack.java @@ -2,16 +2,13 @@ import jakarta.persistence.*; import jakarta.validation.constraints.NotNull; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; +import lombok.*; import java.util.Date; @Entity -@Getter -@Setter +@Data +@Builder @NoArgsConstructor @AllArgsConstructor public class Pack { diff --git a/src/main/java/com/i8ai/training/storeapi/model/Product.java b/src/main/java/com/i8ai/training/storeapi/model/Product.java index a988102..779e601 100644 --- a/src/main/java/com/i8ai/training/storeapi/model/Product.java +++ b/src/main/java/com/i8ai/training/storeapi/model/Product.java @@ -2,14 +2,11 @@ import jakarta.persistence.*; import jakarta.validation.constraints.NotBlank; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; +import lombok.*; @Entity -@Getter -@Setter +@Data +@Builder @NoArgsConstructor @AllArgsConstructor public class Product { diff --git a/src/main/java/com/i8ai/training/storeapi/model/Sale.java b/src/main/java/com/i8ai/training/storeapi/model/Sale.java index e28f445..eaf8d23 100644 --- a/src/main/java/com/i8ai/training/storeapi/model/Sale.java +++ b/src/main/java/com/i8ai/training/storeapi/model/Sale.java @@ -2,16 +2,13 @@ import jakarta.persistence.*; import jakarta.validation.constraints.NotNull; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; +import lombok.*; import java.util.Date; @Entity -@Getter -@Setter +@Data +@Builder @NoArgsConstructor @AllArgsConstructor public class Sale { diff --git a/src/main/java/com/i8ai/training/storeapi/model/Shop.java b/src/main/java/com/i8ai/training/storeapi/model/Shop.java index ee6910e..df6a3a7 100644 --- a/src/main/java/com/i8ai/training/storeapi/model/Shop.java +++ b/src/main/java/com/i8ai/training/storeapi/model/Shop.java @@ -2,14 +2,11 @@ import jakarta.persistence.*; import jakarta.validation.constraints.NotBlank; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; +import lombok.*; @Entity -@Getter -@Setter +@Data +@Builder @NoArgsConstructor @AllArgsConstructor public class Shop { diff --git a/src/main/java/com/i8ai/training/storeapi/service/data/Balance.java b/src/main/java/com/i8ai/training/storeapi/service/data/Balance.java index 56fa689..b78dc9d 100644 --- a/src/main/java/com/i8ai/training/storeapi/service/data/Balance.java +++ b/src/main/java/com/i8ai/training/storeapi/service/data/Balance.java @@ -2,11 +2,11 @@ import com.i8ai.training.storeapi.model.Product; import com.i8ai.training.storeapi.model.Shop; -import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Getter; @Getter -@AllArgsConstructor +@Builder public class Balance { Double spent; diff --git a/src/main/java/com/i8ai/training/storeapi/service/data/Existence.java b/src/main/java/com/i8ai/training/storeapi/service/data/Existence.java index 15fdd7e..ef65f8b 100644 --- a/src/main/java/com/i8ai/training/storeapi/service/data/Existence.java +++ b/src/main/java/com/i8ai/training/storeapi/service/data/Existence.java @@ -2,11 +2,11 @@ import com.i8ai.training.storeapi.model.Product; import com.i8ai.training.storeapi.model.Shop; -import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Getter; @Getter -@AllArgsConstructor +@Builder public class Existence { private Double amount; diff --git a/src/main/java/com/i8ai/training/storeapi/service/impl/BalanceServiceImpl.java b/src/main/java/com/i8ai/training/storeapi/service/impl/BalanceServiceImpl.java index a0fa767..91b5466 100644 --- a/src/main/java/com/i8ai/training/storeapi/service/impl/BalanceServiceImpl.java +++ b/src/main/java/com/i8ai/training/storeapi/service/impl/BalanceServiceImpl.java @@ -29,99 +29,92 @@ public BalanceServiceImpl(ShopService shopService, ProductService productService @Override public Balance getNetBalance(Date start, Date end) { - return new Balance( - saleService.getNetSalesExpenses(start, end), - saleService.getNetSalesIncome(start, end), - null, - null - ); + return Balance.builder() + .spent(saleService.getNetSalesExpenses(start, end)) + .income(saleService.getNetSalesIncome(start, end)) + .build(); } @Override public List getBalancesPerProduct(Date start, Date end) { - return productService.getAllProducts().stream() - .map(product -> new Balance( - saleService.getSalesExpensesByProduct(product.getId(), start, end), - saleService.getSalesIncomeByProduct(product.getId(), start, end), - product, - null - )).toList(); + return productService.getAllProducts().stream().map(product -> Balance.builder() + .spent(saleService.getSalesExpensesByProduct(product.getId(), start, end)) + .income(saleService.getSalesIncomeByProduct(product.getId(), start, end)) + .product(product) + .build() + ).toList(); } @Override public List getBalancesPerShop(Date start, Date end) { - return shopService.getAllShops().stream() - .map(shop -> new Balance( - saleService.getSalesExpensesByShop(shop.getId(), start, end), - saleService.getSalesIncomeByShop(shop.getId(), start, end), - null, - shop - )).toList(); + return shopService.getAllShops().stream().map(shop -> Balance.builder() + .spent(saleService.getSalesExpensesByShop(shop.getId(), start, end)) + .income(saleService.getSalesIncomeByShop(shop.getId(), start, end)) + .shop(shop) + .build() + ).toList(); } @Override public List getBalancesPerProductPerShop(Date start, Date end) { List products = productService.getAllProducts(); - return shopService.getAllShops().stream().flatMap(shop -> - products.stream().map(product -> - new Balance( - saleService.getSalesExpensesByProductAndShop(product.getId(), shop.getId(), start, end), - saleService.getSalesIncomeByProductAndShop(product.getId(), shop.getId(), start, end), - product, - shop - ) - )).toList(); + return shopService.getAllShops().stream().flatMap(shop -> products.stream().map(product -> Balance.builder() + .spent(saleService.getSalesExpensesByProductAndShop(product.getId(), shop.getId(), start, end)) + .income(saleService.getSalesIncomeByProductAndShop(product.getId(), shop.getId(), start, end)) + .product(product) + .shop(shop) + .build() + )).toList(); } @Override public Balance getBalanceByProduct(Long productId, Date start, Date end) { - return new Balance( - saleService.getSalesExpensesByProduct(productId, start, end), - saleService.getSalesIncomeByProduct(productId, start, end), - productService.getProduct(productId), - null - ); + return Balance.builder() + .spent(saleService.getSalesExpensesByProduct(productId, start, end)) + .income(saleService.getSalesIncomeByProduct(productId, start, end)) + .product(productService.getProduct(productId)) + .build(); } @Override public Balance getBalanceByShop(Long shopId, Date start, Date end) { - return new Balance( - saleService.getSalesExpensesByShop(shopId, start, end), - saleService.getSalesIncomeByShop(shopId, start, end), - null, - shopService.getShop(shopId) - ); + return Balance.builder() + .spent(saleService.getSalesExpensesByShop(shopId, start, end)) + .income(saleService.getSalesIncomeByShop(shopId, start, end)) + .shop(shopService.getShop(shopId)) + .build(); } @Override public List getBalancesByProductPerShop(Long productId, Date start, Date end) { Product product = productService.getProduct(productId); - return shopService.getAllShops().stream().map(shop -> new Balance( - saleService.getSalesExpensesByProductAndShop(productId, shop.getId(), start, end), - saleService.getSalesIncomeByProductAndShop(productId, shop.getId(), start, end), - product, - shop - )).toList(); + return shopService.getAllShops().stream().map(shop -> Balance.builder() + .spent(saleService.getSalesExpensesByProductAndShop(productId, shop.getId(), start, end)) + .income(saleService.getSalesIncomeByProductAndShop(productId, shop.getId(), start, end)) + .product(product) + .shop(shop) + .build() + ).toList(); } @Override public List getBalancesByShopPerProduct(Long shopId, Date start, Date end) { Shop shop = shopService.getShop(shopId); - return productService.getAllProducts().stream().map(product -> new Balance( - saleService.getSalesExpensesByProductAndShop(product.getId(), shopId, start, end), - saleService.getSalesIncomeByProductAndShop(product.getId(), shopId, start, end), - product, - shop - )).toList(); + return productService.getAllProducts().stream().map(product -> Balance.builder() + .spent(saleService.getSalesExpensesByProductAndShop(product.getId(), shopId, start, end)) + .income(saleService.getSalesIncomeByProductAndShop(product.getId(), shopId, start, end)) + .product(product) + .shop(shop).build() + ).toList(); } @Override public Balance getBalanceByProductAndShop(Long productId, Long shopId, Date start, Date end) { - return new Balance( - saleService.getSalesExpensesByProductAndShop(productId, shopId, start, end), - saleService.getSalesIncomeByProductAndShop(productId, shopId, start, end), - productService.getProduct(productId), - shopService.getShop(shopId) - ); + return Balance.builder() + .spent(saleService.getSalesExpensesByProductAndShop(productId, shopId, start, end)) + .income(saleService.getSalesIncomeByProductAndShop(productId, shopId, start, end)) + .product(productService.getProduct(productId)) + .shop(shopService.getShop(shopId)) + .build(); } } diff --git a/src/main/java/com/i8ai/training/storeapi/service/impl/ExistenceServiceImpl.java b/src/main/java/com/i8ai/training/storeapi/service/impl/ExistenceServiceImpl.java index 97ccb36..a1cdac8 100644 --- a/src/main/java/com/i8ai/training/storeapi/service/impl/ExistenceServiceImpl.java +++ b/src/main/java/com/i8ai/training/storeapi/service/impl/ExistenceServiceImpl.java @@ -63,13 +63,13 @@ public Existence getExistenceByProductInMain(Product product) { Double amount = lotService.getProductReceivedAmount(product.getId()) - packService.getProductDeliveredAmount(product.getId()); - return new Existence(amount, product, null); + return Existence.builder().amount(amount).product(product).build(); } private Existence getExistenceByProductAndShop(Product product, Shop shop) { Double amount = packService.getProductDeliveredToShopAmount(product.getId(), shop.getId()) - saleService.getSoldAmountByProductAndShop(product.getId(), shop.getId()); - return new Existence(amount, product, shop); + return Existence.builder().amount(amount).product(product).shop(shop).build(); } } diff --git a/src/test/java/com/i8ai/training/storeapi/repository/RepositoryTest.java b/src/test/java/com/i8ai/training/storeapi/repository/RepositoryTest.java index 620bbde..629688e 100644 --- a/src/test/java/com/i8ai/training/storeapi/repository/RepositoryTest.java +++ b/src/test/java/com/i8ai/training/storeapi/repository/RepositoryTest.java @@ -44,34 +44,95 @@ class RepositoryTest { @BeforeEach void setUp() { - Product productA = productRepository.save(new Product(null, PRODUCT_A_CODE, PRODUCT_A_NAME, PRODUCT_A_MEASURE, null)); - Product productB = productRepository.save(new Product(null, PRODUCT_B_CODE, PRODUCT_B_NAME, PRODUCT_B_MEASURE, null)); + Product productA = productRepository.save( + Product.builder().code(PRODUCT_A_CODE).name(PRODUCT_A_NAME).measure(PRODUCT_A_MEASURE).build() + ); + Product productB = productRepository.save( + Product.builder().code(PRODUCT_B_CODE).name(PRODUCT_B_NAME).measure(PRODUCT_B_MEASURE).build() + ); idProductA = productA.getId(); idProductB = productB.getId(); - Shop shop1 = shopRepository.save(new Shop(null, SHOP1_NAME, SHOP1_ADDRESS, null)); - Shop shop2 = shopRepository.save(new Shop(null, SHOP2_NAME, SHOP2_ADDRESS, null)); + Shop shop1 = shopRepository.save(Shop.builder().name(SHOP1_NAME).address(SHOP1_ADDRESS).build()); + Shop shop2 = shopRepository.save(Shop.builder().name(SHOP2_NAME).address(SHOP2_ADDRESS).build()); idShop1 = shop1.getId(); idShop2 = shop2.getId(); - Lot lotA = lotRepository.save(new Lot(null, new Date(5), LOT_A_AMOUNT, PRODUCT_A_COST, productA)); - Lot lotB = lotRepository.save(new Lot(null, new Date(10), LOT_B_AMOUNT, PRODUCT_B_COST, productB)); + Lot lotA = lotRepository.save( + Lot.builder().received(new Date(5)).amount(LOT_A_AMOUNT).cost(PRODUCT_A_COST).product(productA).build() + ); + Lot lotB = lotRepository.save( + Lot.builder().received(new Date(10)).amount(LOT_B_AMOUNT).cost(PRODUCT_B_COST).product(productB).build() + ); idLotA = lotA.getId(); - Pack pack1A = packRepository.save(new Pack(null, new Date(15), PACK1A_AMOUNT, lotA, shop1)); - Pack pack1B = packRepository.save(new Pack(null, new Date(25), PACK1B_AMOUNT, lotB, shop1)); - Pack pack2A = packRepository.save(new Pack(null, new Date(20), PACK2A_AMOUNT, lotA, shop2)); - Pack pack2B = packRepository.save(new Pack(null, new Date(30), PACK2B_AMOUNT, lotB, shop2)); + Pack pack1A = packRepository.save( + Pack.builder().delivered(new Date(15)).amount(PACK1A_AMOUNT).lot(lotA).shop(shop1).build()); + Pack pack1B = packRepository.save( + Pack.builder().delivered(new Date(20)).amount(PACK1B_AMOUNT).lot(lotB).shop(shop1).build()); + Pack pack2A = packRepository.save( + Pack.builder().delivered(new Date(25)).amount(PACK2A_AMOUNT).lot(lotA).shop(shop2).build()); + Pack pack2B = packRepository.save( + Pack.builder().delivered(new Date(30)).amount(PACK2B_AMOUNT).lot(lotB).shop(shop2).build()); idPack2B = pack2B.getId(); - saleRepository.save(new Sale(null, new Date(35), SALE_1A35_AMOUNT, PRODUCT_A_PRICE, pack1A)); - saleRepository.save(new Sale(null, new Date(40), SALE_1A40_AMOUNT, PRODUCT_A_PRICE, pack1A)); - saleRepository.save(new Sale(null, new Date(45), SALE_1B45_AMOUNT, PRODUCT_B_PRICE, pack1B)); - saleRepository.save(new Sale(null, new Date(50), SALE_1B50_AMOUNT, PRODUCT_B_PRICE, pack1B)); - saleRepository.save(new Sale(null, new Date(55), SALE_2A55_AMOUNT, PRODUCT_A_PRICE, pack2A)); - saleRepository.save(new Sale(null, new Date(60), SALE_2A60_AMOUNT, PRODUCT_A_PRICE, pack2A)); - saleRepository.save(new Sale(null, new Date(65), SALE_2B65_AMOUNT, PRODUCT_B_PRICE, pack2B)); - saleRepository.save(new Sale(null, new Date(70), SALE_2B70_AMOUNT, PRODUCT_B_PRICE, pack2B)); + saleRepository.save( + Sale.builder() + .registered(new Date(35)) + .amount(SALE_1A35_AMOUNT) + .price(PRODUCT_A_PRICE) + .pack(pack1A) + .build() + ); + saleRepository.save( + Sale.builder() + .registered(new Date(40)) + .amount(SALE_1A40_AMOUNT) + .price(PRODUCT_A_PRICE) + .pack(pack1A) + .build() + ); + saleRepository.save( + Sale.builder() + .registered(new Date(45)) + .amount(SALE_1B45_AMOUNT) + .price(PRODUCT_B_PRICE) + .pack(pack1B) + .build() + ); + saleRepository.save(Sale.builder() + .registered(new Date(50)).amount(SALE_1B50_AMOUNT).price(PRODUCT_B_PRICE).pack(pack1B).build()); + saleRepository.save( + Sale.builder() + .registered(new Date(55)) + .amount(SALE_2A55_AMOUNT) + .price(PRODUCT_A_PRICE) + .pack(pack2A) + .build()); + saleRepository.save( + Sale.builder() + .registered(new Date(60)) + .amount(SALE_2A60_AMOUNT) + .price(PRODUCT_A_PRICE) + .pack(pack2A) + .build() + ); + saleRepository.save( + Sale.builder() + .registered(new Date(65)) + .amount(SALE_2B65_AMOUNT) + .price(PRODUCT_B_PRICE) + .pack(pack2B) + .build() + ); + saleRepository.save( + Sale.builder() + .registered(new Date(70)) + .amount(SALE_2B70_AMOUNT) + .price(PRODUCT_B_PRICE) + .pack(pack2B) + .build() + ); } @AfterEach @@ -129,7 +190,8 @@ void findAllPacksByDeliveredBetweenAndLotProductId() { @Test void findAllPacksByDeliveredBetweenAndLotProductIdAndShopId() { List packs = packRepository.findAllByDeliveredBetweenAndLotProductIdAndShopId( - new Date(0), new Date(), idProductB, idShop2); + new Date(0), new Date(), idProductB, idShop2 + ); assertEquals(1, packs.size()); } @@ -179,7 +241,8 @@ void findAllSalesByRegisteredBetweenAndPackLotProductId() { @Test void findAllSalesByRegisteredBetweenAndPackLotProductIdAndPackShopId() { List sales = saleRepository.findAllByRegisteredBetweenAndPackLotProductIdAndPackShopId( - new Date(0), new Date(), idProductA, idShop1); + new Date(0), new Date(), idProductA, idShop1 + ); assertEquals(2, sales.size()); } @@ -249,8 +312,9 @@ void getSaleExpensesByShopId() { @Test void getSaleExpensesByProductIdAndShopId() { - Double expenses = - saleRepository.getSaleExpensesByProductIdAndShopId(new Date(0), new Date(), idProductA, idShop1); + Double expenses = saleRepository.getSaleExpensesByProductIdAndShopId( + new Date(0), new Date(), idProductA, idShop1 + ); assertEquals(PACK1A_SALES_EXPENSES, expenses); } diff --git a/src/test/java/com/i8ai/training/storeapi/rest/BalanceControllerTest.java b/src/test/java/com/i8ai/training/storeapi/rest/BalanceControllerTest.java index 39f16bf..14a59f2 100644 --- a/src/test/java/com/i8ai/training/storeapi/rest/BalanceControllerTest.java +++ b/src/test/java/com/i8ai/training/storeapi/rest/BalanceControllerTest.java @@ -5,7 +5,6 @@ import com.i8ai.training.storeapi.model.Shop; import com.i8ai.training.storeapi.service.BalanceService; import com.i8ai.training.storeapi.service.data.Balance; -import com.i8ai.training.storeapi.util.TestUtils; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; @@ -25,7 +24,7 @@ @WebMvcTest(BalanceController.class) class BalanceControllerTest { - private static final Product PRODUCT_A = new Product(TestUtils.PRODUCT_A_ID, PRODUCT_A_CODE, PRODUCT_A_NAME, PRODUCT_A_MEASURE, null); + private static final Product PRODUCT_A = new Product(PRODUCT_A_ID, PRODUCT_A_CODE, PRODUCT_A_NAME, PRODUCT_A_MEASURE, null); private static final Product PRODUCT_B = new Product(PRODUCT_B_ID, PRODUCT_B_CODE, PRODUCT_B_NAME, PRODUCT_B_MEASURE, null); private static final Shop SHOP1 = new Shop(SHOP1_ID, SHOP1_NAME, SHOP1_ADDRESS, null); @@ -42,7 +41,9 @@ class BalanceControllerTest { @Test void getNetBalance() throws Exception { - when(balanceService.getNetBalance(null, null)).thenReturn(new Balance(NET_SALES_EXPENSES, NET_SALES_INCOME, null, null)); + when(balanceService.getNetBalance(null, null)).thenReturn( + Balance.builder().spent(NET_SALES_EXPENSES).income(NET_SALES_INCOME).build() + ); mockMvc.perform(get("/balance")) .andExpect(status().isOk()) @@ -52,51 +53,47 @@ void getNetBalance() throws Exception { @Test void getBalancesPerProduct() throws Exception { - when(balanceService.getBalancesPerProduct(null, null)). - thenReturn(List.of( - new Balance(PRODUCT_A_EXPENSES, PRODUCT_B_EXPENSES, PRODUCT_A, null), - new Balance(PRODUCT_A_INCOME, PRODUCT_B_INCOME, PRODUCT_B, null) - ) - ); + when(balanceService.getBalancesPerProduct(null, null)).thenReturn(List.of( + Balance.builder().spent(PRODUCT_A_EXPENSES).income(PRODUCT_A_INCOME).product(PRODUCT_A).build(), + Balance.builder().spent(PRODUCT_B_EXPENSES).income(PRODUCT_B_INCOME).product(PRODUCT_B).build() + )); mockMvc.perform(get("/balance/product")) - .andExpect(status().isOk()) .andExpect(jsonPath("$[0].product.code").value(PRODUCT_A_CODE)) .andExpect(jsonPath("$[0].spent").value(PRODUCT_A_EXPENSES)) - .andExpect(jsonPath("$[0].income").value(PRODUCT_B_EXPENSES)) + .andExpect(jsonPath("$[0].income").value(PRODUCT_A_INCOME)) .andExpect(jsonPath("$[1].product.code").value(PRODUCT_B_CODE)) - .andExpect(jsonPath("$[1].spent").value(PRODUCT_A_INCOME)) + .andExpect(jsonPath("$[1].spent").value(PRODUCT_B_EXPENSES)) .andExpect(jsonPath("$[1].income").value(PRODUCT_B_INCOME)); } @Test void getBalanceByProduct() throws Exception { - when(balanceService.getBalanceByProduct(PRODUCT_A.getId(), null, null)).thenReturn(new Balance(PRODUCT_A_EXPENSES, PRODUCT_B_EXPENSES, PRODUCT_A, null)); + when(balanceService.getBalanceByProduct(PRODUCT_A.getId(), null, null)).thenReturn( + Balance.builder().spent(PRODUCT_A_EXPENSES).income(PRODUCT_A_INCOME).product(PRODUCT_A).build() + ); mockMvc.perform(get("/balance/product/" + PRODUCT_A.getId())) .andExpect(status().isOk()) .andExpect(jsonPath("$.product.code").value(PRODUCT_A_CODE)) .andExpect(jsonPath("$.spent").value(PRODUCT_A_EXPENSES)) - .andExpect(jsonPath("$.income").value(PRODUCT_B_EXPENSES)); + .andExpect(jsonPath("$.income").value(PRODUCT_A_INCOME)); } @Test void getBalancesByProductPerShop() throws Exception { - when(balanceService.getBalancesByProductPerShop(PRODUCT_B.getId(), null, null)) - .thenReturn( - List.of( - new Balance(PACK1B_SALES_EXPENSES, PACK1B_SALES_INCOME, PRODUCT_B, SHOP1), - new Balance(PACK2B_SALES_EXPENSES, PACK2B_SALES_INCOME, PRODUCT_B, SHOP2) - ) - ); + when(balanceService.getBalancesByProductPerShop(PRODUCT_B.getId(), null, null)).thenReturn(List.of( + Balance.builder().spent(PACK1A_SALES_EXPENSES).income(PACK1A_SALES_INCOME).product(PRODUCT_A).shop(SHOP1).build(), + Balance.builder().spent(PACK2B_SALES_EXPENSES).income(PACK2B_SALES_INCOME).product(PRODUCT_B).shop(SHOP2).build() + )); mockMvc.perform(get("/balance/product/" + PRODUCT_B.getId() + "/shop")) .andExpect(status().isOk()) - .andExpect(jsonPath("$[0].product.id").value(PRODUCT_B.getId())) + .andExpect(jsonPath("$[0].product.id").value(PRODUCT_A.getId())) .andExpect(jsonPath("$[0].shop.id").value(SHOP1.getId())) - .andExpect(jsonPath("$[0].spent").value(PACK1B_SALES_EXPENSES)) - .andExpect(jsonPath("$[0].income").value(PACK1B_SALES_INCOME)) + .andExpect(jsonPath("$[0].spent").value(PACK1A_SALES_EXPENSES)) + .andExpect(jsonPath("$[0].income").value(PACK1A_SALES_INCOME)) .andExpect(jsonPath("$[1].product.id").value(PRODUCT_B.getId())) .andExpect(jsonPath("$[1].shop.id").value(SHOP2.getId())) .andExpect(jsonPath("$[1].spent").value(PACK2B_SALES_EXPENSES)) @@ -105,13 +102,10 @@ void getBalancesByProductPerShop() throws Exception { @Test void getBalancesPerShop() throws Exception { - when(balanceService.getBalancesPerShop(null, null)) - .thenReturn( - List.of( - new Balance(SHOP1_EXPENSES, SHOP1_INCOME, null, SHOP1), - new Balance(SHOP2_EXPENSES, SHOP2_INCOME, null, SHOP2) - ) - ); + when(balanceService.getBalancesPerShop(null, null)).thenReturn(List.of( + Balance.builder().spent(SHOP1_EXPENSES).income(SHOP1_INCOME).shop(SHOP1).build(), + Balance.builder().spent(SHOP2_EXPENSES).income(SHOP2_INCOME).shop(SHOP2).build() + )); mockMvc.perform(get("/balance/shop")) .andExpect(status().isOk()) @@ -126,7 +120,7 @@ void getBalancesPerShop() throws Exception { @Test void getBalanceByShop() throws Exception { when(balanceService.getBalanceByShop(SHOP1.getId(), null, null)) - .thenReturn(new Balance(SHOP1_EXPENSES, SHOP1_INCOME, null, SHOP1)); + .thenReturn(Balance.builder().spent(SHOP1_EXPENSES).income(SHOP1_INCOME).shop(SHOP1).build()); mockMvc.perform(get("/balance/shop/" + SHOP1.getId())) .andExpect(status().isOk()) @@ -137,13 +131,22 @@ void getBalanceByShop() throws Exception { @Test void getBalancesByShopPerProduct() throws Exception { - when(balanceService.getBalancesByShopPerProduct(SHOP2.getId(), null, null)) - .thenReturn( - List.of( - new Balance(PACK2A_SALES_EXPENSES, PACK2A_SALES_INCOME, PRODUCT_A, SHOP2), - new Balance(PACK2B_SALES_EXPENSES, PACK2B_SALES_INCOME, PRODUCT_B, SHOP2) - ) - ); + when(balanceService.getBalancesByShopPerProduct(SHOP2.getId(), null, null)).thenReturn( + List.of( + Balance.builder() + .spent(PACK2A_SALES_EXPENSES) + .income(PACK2A_SALES_INCOME) + .product(PRODUCT_A) + .shop(SHOP2) + .build(), + Balance.builder() + .spent(PACK2B_SALES_EXPENSES) + .income(PACK2B_SALES_INCOME) + .product(PRODUCT_B) + .shop(SHOP2) + .build() + ) + ); mockMvc.perform(get("/balance/shop/" + SHOP2.getId() + "/product")) .andExpect(status().isOk()) @@ -160,7 +163,14 @@ void getBalancesByShopPerProduct() throws Exception { @Test void getBalanceByProductAndShop() throws Exception { when(balanceService.getBalanceByProductAndShop(PRODUCT_B.getId(), SHOP2.getId(), null, null)) - .thenReturn(new Balance(PACK2B_SALES_EXPENSES, PACK2B_SALES_INCOME, PRODUCT_B, SHOP2)); + .thenReturn( + Balance.builder() + .spent(PACK2B_SALES_EXPENSES) + .income(PACK2B_SALES_INCOME) + .product(PRODUCT_B) + .shop(SHOP2) + .build() + ); mockMvc.perform(get("/balance/product/" + PRODUCT_B.getId() + "/shop/" + SHOP2.getId())) .andExpect(status().isOk()) @@ -172,15 +182,34 @@ void getBalanceByProductAndShop() throws Exception { @Test void getBalancesPerProductPerShop() throws Exception { - when(balanceService.getBalancesPerProductPerShop(null, null)) - .thenReturn( - List.of( - new Balance(PACK1A_SALES_EXPENSES, PACK1A_SALES_INCOME, PRODUCT_A, SHOP1), - new Balance(PACK1B_SALES_EXPENSES, PACK1B_SALES_INCOME, PRODUCT_B, SHOP1), - new Balance(PACK2A_SALES_EXPENSES, PACK2A_SALES_INCOME, PRODUCT_A, SHOP2), - new Balance(PACK2B_SALES_EXPENSES, PACK2B_SALES_INCOME, PRODUCT_B, SHOP2) - ) - ); + when(balanceService.getBalancesPerProductPerShop(null, null)).thenReturn( + List.of( + Balance.builder() + .spent(PACK1A_SALES_EXPENSES) + .income(PACK1A_SALES_INCOME) + .product(PRODUCT_A) + .shop(SHOP1) + .build(), + Balance.builder() + .spent(PACK1B_SALES_EXPENSES) + .income(PACK1B_SALES_INCOME) + .product(PRODUCT_B) + .shop(SHOP1) + .build(), + Balance.builder() + .spent(PACK2A_SALES_EXPENSES) + .income(PACK2A_SALES_INCOME) + .product(PRODUCT_A) + .shop(SHOP2) + .build(), + Balance.builder() + .spent(PACK2B_SALES_EXPENSES) + .income(PACK2B_SALES_INCOME) + .product(PRODUCT_B) + .shop(SHOP2) + .build() + ) + ); mockMvc.perform(get("/balance/product/shop")) .andExpect(status().isOk())