From 3b2bb24a3809d9fc044757f11064e5f222ace99e Mon Sep 17 00:00:00 2001
From: birkon <birkon@stud.ntnu.no>
Date: Thu, 4 May 2023 16:01:12 +0200
Subject: [PATCH] added test for delete entire product

---
 .../service/group/FridgeServiceTest.java      | 51 +++++++++++++++++++
 1 file changed, 51 insertions(+)

diff --git a/src/test/java/ntnu/idatt2016/v233/SmartMat/service/group/FridgeServiceTest.java b/src/test/java/ntnu/idatt2016/v233/SmartMat/service/group/FridgeServiceTest.java
index 7034e9a0..470c485c 100644
--- a/src/test/java/ntnu/idatt2016/v233/SmartMat/service/group/FridgeServiceTest.java
+++ b/src/test/java/ntnu/idatt2016/v233/SmartMat/service/group/FridgeServiceTest.java
@@ -217,7 +217,58 @@ public class FridgeServiceTest {
 
     @Test
     void deleteEntireAmountFromProduct(){
+        // Arrange
+        long ean = 12345L;
+        Product product = Product.builder()
+                .ean(ean)
+                .name("Test Product")
+                .build();
+
+        Fridge fridge = Fridge.builder()
+                .fridgeId(1234L)
+                .build();
+        fridge.setProducts(new ArrayList<>());
+        Group group = new Group();
+        fridge.setGroup(group);
+        group.setFridge(fridge);
+
+        FridgeProductAsso fridgepr = FridgeProductAsso.builder()
+                .fridgeId(fridge)
+                .ean(product)
+                .id(123456L)
+                .amount(2)
+                .build();
+
+        fridge.addProduct(fridgepr);
+        product.addFridge(fridgepr);
+
+        when(fridgeProductAssoRepo.findById(123456L)).thenReturn(Optional.of(fridgepr));
+        when(fridgeProductAssoRepo.findAllById(123456L)).thenReturn(Optional.of(fridgepr));
+        when(productService.getProductById(ean)).thenReturn(Optional.of(product));
+
+        double newAmount = fridgepr.getAmount() - 1;
+
+
+        when(fridgeProductAssoRepo.save(FridgeProductAsso.builder()
+                .amount(newAmount)
+                .id(123456L)
+                .ean(product)
+                .fridgeId(fridge)
+                .build()
+        )).thenReturn(FridgeProductAsso.builder()
+                .amount(newAmount)
+                .id(139132L)
+                .ean(product)
+                .fridgeId(fridge)
+                .build());
+
+        // Act
+        Optional<FridgeProductAsso> result = fridgeService.deleteAmountFromFridge(123456L, 2);
+
+        // Assert
+        assertTrue(result.isEmpty());
 
+        verify(fridgeProductAssoRepo).delete(any(FridgeProductAsso.class));
 
     }
 }
-- 
GitLab