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