From 8f35ca6b8636b5321565f91f2e9a2ef5623ab008 Mon Sep 17 00:00:00 2001
From: birkon <birkon@stud.ntnu.no>
Date: Thu, 4 May 2023 16:41:58 +0200
Subject: [PATCH] added test is user in fridge and is user assosiated with
 fridgeproduct

---
 .../SmartMat/service/group/FridgeService.java |  13 +-
 .../service/group/FridgeServiceTest.java      | 190 +++++++++++++++++-
 2 files changed, 191 insertions(+), 12 deletions(-)

diff --git a/src/main/java/ntnu/idatt2016/v233/SmartMat/service/group/FridgeService.java b/src/main/java/ntnu/idatt2016/v233/SmartMat/service/group/FridgeService.java
index 10a1e17a..b774d9c2 100644
--- a/src/main/java/ntnu/idatt2016/v233/SmartMat/service/group/FridgeService.java
+++ b/src/main/java/ntnu/idatt2016/v233/SmartMat/service/group/FridgeService.java
@@ -27,8 +27,8 @@ import java.util.Optional;
  * Service for management of a group fridge
  *
  * @author Anders Austlid & Birk
- * @version 1.2
- * @since 26.04.2023
+ * @version 2
+ * @since 04.05.2023
  */
 @AllArgsConstructor
 @Service
@@ -131,15 +131,6 @@ public class FridgeService {
         return true;
     }
 
-    /**
-     * Updates a fridge
-     * @param fridge the fridge to update
-     */
-    public void updateFridge(Fridge fridge) {
-        if (fridgeRepository.findById(fridge.getFridgeId()).isEmpty())
-            return;
-        fridgeRepository.save(fridge);
-    }
 
 
     /**
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 798cb608..5db6d649 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
@@ -10,7 +10,10 @@ import ntnu.idatt2016.v233.SmartMat.entity.Waste;
 import ntnu.idatt2016.v233.SmartMat.entity.fridgeProduct.FridgeProductAsso;
 import ntnu.idatt2016.v233.SmartMat.entity.group.Fridge;
 import ntnu.idatt2016.v233.SmartMat.entity.group.Group;
+import ntnu.idatt2016.v233.SmartMat.entity.group.UserGroupAsso;
+import ntnu.idatt2016.v233.SmartMat.entity.group.UserGroupId;
 import ntnu.idatt2016.v233.SmartMat.entity.product.Product;
+import ntnu.idatt2016.v233.SmartMat.entity.user.User;
 import ntnu.idatt2016.v233.SmartMat.repository.group.GroupRepository;
 import ntnu.idatt2016.v233.SmartMat.repository.group.WasteRepository;
 import ntnu.idatt2016.v233.SmartMat.repository.product.FridgeProductAssoRepo;
@@ -385,5 +388,190 @@ public class FridgeServiceTest {
 
     }
 
-    
+    @Test
+    void isUserAssosiatedWithFridge(){
+        Fridge fridge = new Fridge();
+        fridge.setProducts(new ArrayList<>());
+        Group group = new Group();
+        fridge.setGroup(group);
+        group.setFridge(fridge);
+
+        User user = User.builder()
+                .username("test")
+                .password("test")
+                .build();
+
+        UserGroupAsso userGroupAsso = UserGroupAsso.builder()
+                .id(new UserGroupId(user.getUsername(), group.getGroupId()))
+                .user(user)
+                .group(group)
+                .build();
+
+        user.addGroup(userGroupAsso);
+        group.addUser(userGroupAsso);
+
+        when(fridgeRepository.findById(fridge.getFridgeId())).thenReturn(Optional.of(fridge));
+
+        // Act
+
+        boolean result = fridgeService.isUserInFridge(user.getUsername(), fridge.getFridgeId());
+
+        // Assert
+
+        assertTrue(result);
+        verify(fridgeRepository).findById(fridge.getFridgeId());
+
+    }
+
+    @Test
+    void isUserNotAssosiatedWithFridge(){
+        Fridge fridge = new Fridge();
+        fridge.setProducts(new ArrayList<>());
+        Group group = new Group();
+        fridge.setGroup(group);
+        group.setFridge(fridge);
+
+        User user = User.builder()
+                .username("test")
+                .password("test")
+                .build();
+
+        when(fridgeRepository.findById(fridge.getFridgeId())).thenReturn(Optional.of(fridge));
+
+        // Act
+
+        boolean result = fridgeService.isUserInFridge(user.getUsername(), fridge.getFridgeId());
+
+        // Assert
+
+        assertFalse(result);
+        verify(fridgeRepository).findById(fridge.getFridgeId());
+
+    }
+
+    @Test
+    void getFridgeByFridgeId(){
+        // Arrange
+        Fridge fridge = Fridge.builder()
+                .fridgeId(1234L)
+                .build();
+        fridge.setProducts(new ArrayList<>());
+        Group group = new Group();
+        fridge.setGroup(group);
+        group.setFridge(fridge);
+
+        when(fridgeRepository.findById(1234L)).thenReturn(Optional.of(fridge));
+
+        // Act
+
+        Optional<Fridge> result = fridgeService.getFridgeByFridgeId(1234L);
+
+        // Assert
+
+        assertTrue(result.isPresent());
+        assertEquals(1234L, result.get().getFridgeId());
+
+        verify(fridgeRepository).findById(1234L);
+    }
+
+    @Test
+    void isUserInGroupWithFridgeProduct(){
+        // 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);
+
+        User user = User.builder()
+                .username("test")
+                .password("test")
+                .build();
+
+        UserGroupAsso userGroupAsso = UserGroupAsso.builder()
+                .id(new UserGroupId(user.getUsername(), group.getGroupId()))
+                .user(user)
+                .group(group)
+                .build();
+
+        user.addGroup(userGroupAsso);
+        group.addUser(userGroupAsso);
+
+        when(fridgeProductAssoRepo.findById(123456L)).thenReturn(Optional.of(fridgepr));
+
+        // Act
+
+        boolean result = fridgeService.isUserInGroupWithFridgeProduct(user.getUsername(), 123456L);
+
+        // Assert
+
+        assertTrue(result);
+        verify(fridgeProductAssoRepo).findById(123456L);
+    }
+
+
+    @Test
+    void isUserInGroupWithFridgeProduct_not(){
+        // 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);
+
+        User user = User.builder()
+                .username("test")
+                .password("test")
+                .build();
+
+
+        when(fridgeProductAssoRepo.findById(123456L)).thenReturn(Optional.of(fridgepr));
+
+        // Act
+
+        boolean result = fridgeService.isUserInGroupWithFridgeProduct(user.getUsername(), 123456L);
+
+        // Assert
+
+        assertFalse(result);
+        verify(fridgeProductAssoRepo).findById(123456L);
+    }
+
+
 }
-- 
GitLab