diff --git a/src/main/java/ntnu/idatt2016/v233/SmartMat/controller/group/FridgeController.java b/src/main/java/ntnu/idatt2016/v233/SmartMat/controller/group/FridgeController.java
index 9265609330a6a1164792c8cdcc9116e08afa3360..115760fa842ff53a8733956e82227e227646291e 100644
--- a/src/main/java/ntnu/idatt2016/v233/SmartMat/controller/group/FridgeController.java
+++ b/src/main/java/ntnu/idatt2016/v233/SmartMat/controller/group/FridgeController.java
@@ -2,7 +2,9 @@ package ntnu.idatt2016.v233.SmartMat.controller.group;
 
 import lombok.AllArgsConstructor;
 import ntnu.idatt2016.v233.SmartMat.dto.request.FridgeProductRequest;
+import ntnu.idatt2016.v233.SmartMat.entity.fridgeProduct.FridgeProductAsso;
 import ntnu.idatt2016.v233.SmartMat.entity.group.Fridge;
+import ntnu.idatt2016.v233.SmartMat.entity.product.Product;
 import ntnu.idatt2016.v233.SmartMat.service.group.FridgeService;
 import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.*;
@@ -56,12 +58,12 @@ public class FridgeController {
      * @return success if the product was added, bad request if the product was already in the fridge, or not found if the group or product doesn't exist
      */
     @PostMapping("/group/product")
-    public ResponseEntity<Object> addProductToFridge(@RequestBody FridgeProductRequest request) {
+    public ResponseEntity<Product> addProductToFridge(@RequestBody FridgeProductRequest request) {
         return fridgeService.addProductToFridge(request).map(ResponseEntity::ok).orElseGet(()-> ResponseEntity.notFound().build());
     }
 
     @PutMapping("/group/product")
-    public ResponseEntity<Object> updateProductInFridge(@RequestBody FridgeProductRequest request) {
+    public ResponseEntity<FridgeProductAsso> updateProductInFridge(@RequestBody FridgeProductRequest request) {
         return fridgeService.updateProductInFridge(request).map(ResponseEntity::ok).orElseGet(()-> ResponseEntity.notFound().build());
     }
 
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 b143fa8fcfc08cdb532efdf8ff89329715acb3f2..0c0a92dbb3fcdb31c1312e562f184a48ae02ac93 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
@@ -69,41 +69,37 @@ public class FridgeService {
      * @param fridgeProductRequest the fridge product request
      * @return the product that was added to the fridge
      */
-    public Optional<Object> addProductToFridge(FridgeProductRequest fridgeProductRequest) {
+    public Optional<Product> addProductToFridge(FridgeProductRequest fridgeProductRequest) {
         Optional<Product> product = productService.getProductById(fridgeProductRequest.ean());
         Optional<Fridge> fridge = fridgeRepository.findByGroupGroupId(fridgeProductRequest.groupId());
 
         if(product.isEmpty() || fridge.isEmpty()) return Optional.empty();
 
         fridge.get().addProduct(FridgeProductAsso.builder()
-                        .fridgeId(fridge.get())
-                        .ean(product.get())
-                        .amount(fridgeProductRequest.amount())
-                        .daysToExpiration(fridgeProductRequest.days())
-                        .purchaseDate(java.sql.Date.valueOf(LocalDate.now()))
+                .fridgeId(fridge.get())
+                .ean(product.get())
+                .amount(fridgeProductRequest.amount())
+                .daysToExpiration(fridgeProductRequest.days())
+                .purchaseDate(java.sql.Date.valueOf(LocalDate.now()))
                 .build());
 
         fridgeRepository.save(fridge.get());
-        return Optional.of(product);
-
+        return product;
     }
-    
-    public Optional<Object> updateProductInFridge(FridgeProductRequest request) {
+
+    public Optional<FridgeProductAsso> updateProductInFridge(FridgeProductRequest request) {
         Optional<FridgeProductAsso> fridgeProductAsso = fridgeProductAssoRepo.findById(request.fridgeProductId());
         if (fridgeProductAsso.isEmpty()) return Optional.empty();
-        
-        Integer amount = request.amount();
-        Integer days = request.days();
 
-        if (amount != null) fridgeProductAsso.get()
-                                .setAmount(request.amount());
+        int amount = request.amount();
+        int days = request.days();
+
+        fridgeProductAsso.get().setAmount(amount);
+        fridgeProductAsso.get().setDaysToExpiration(days);
 
-        if (days != null) fridgeProductAsso.get()
-                                .setDaysToExpiration(request.days());
-        
         fridgeProductAssoRepo.save(fridgeProductAsso.get());
 
-        return Optional.of(fridgeProductAsso);
+        return fridgeProductAsso;
     }
 
 
@@ -159,12 +155,12 @@ public class FridgeService {
      * @param amount the amount to delete
      * @return an optional containing the fridge product if it exists
      */
-    public Optional<Object> deleteAmountFromFridge(long fridgeProductId, double amount) {
+    public Optional<FridgeProductAsso> deleteAmountFromFridge(long fridgeProductId, double amount) {
         Optional<FridgeProductAsso> fridgeProductAsso = fridgeProductAssoRepo.findAllById(fridgeProductId);
         if(fridgeProductAsso.isEmpty()) return Optional.empty();
         FridgeProductAsso fridgeProductAsso1 = fridgeProductAsso.get();
         if(amount < fridgeProductAsso1.getAmount() ){
-            fridgeProductAsso1.setAmount(fridgeProductAsso1.getAmount() -amount);
+            fridgeProductAsso1.setAmount(fridgeProductAsso1.getAmount() - amount);
             return Optional.of(fridgeProductAssoRepo.save(fridgeProductAsso1));
         } else {
             Group group = fridgeProductAsso1.getFridgeId().getGroup();
@@ -172,7 +168,7 @@ public class FridgeService {
             group.setLevel(GroupUtil.getLevel(group.getPoints()));
             groupRepository.save(group);
             fridgeProductAssoRepo.delete(fridgeProductAsso.get());
-            return Optional.of(true);
+            return Optional.empty();
         }
     }
 
@@ -181,7 +177,7 @@ public class FridgeService {
      * @param fridgeProductId the ID of the fridge product association to delete
      * @return an Optional containing the saved waste object, or an empty Optional if the fridge product association with the given ID is not found
      */
-    public Optional<Object> wasteProductFromFridge(long fridgeProductId){
+    public Optional<Waste> wasteProductFromFridge(long fridgeProductId){
         Optional<FridgeProductAsso> fridgeProductAsso = fridgeProductAssoRepo.findById(fridgeProductId);
         if(fridgeProductAsso.isEmpty()) return Optional.empty();
         FridgeProductAsso fridgeProductAsso1 = fridgeProductAsso.get();
@@ -192,7 +188,13 @@ public class FridgeService {
             group.setLevel(GroupUtil.getLevel(group.getPoints()));
         }
         groupRepository.save(group);
-        return Optional.of(wasteRepository.save(Waste.builder().amount(fridgeProductAsso1.getAmount()).unit(fridgeProductAsso1.getEan().getUnit()).ean(fridgeProductAsso1.getEan()).groupId(fridgeProductAsso1.getFridgeId().getGroup()).timestamp(new Timestamp(System.currentTimeMillis())).build()));
+        return Optional.of(wasteRepository.save(Waste.builder()
+                .amount(fridgeProductAsso1.getAmount())
+                .unit(fridgeProductAsso1.getEan().getUnit())
+                .ean(fridgeProductAsso1.getEan())
+                .groupId(fridgeProductAsso1.getFridgeId().getGroup())
+                .timestamp(new Timestamp(System.currentTimeMillis()))
+                .build()));
     }
 
 
diff --git a/src/test/java/ntnu/idatt2016/v233/SmartMat/controller/group/FridgeControllerTest.java b/src/test/java/ntnu/idatt2016/v233/SmartMat/controller/group/FridgeControllerTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..fcfc26930462979000077ecde7551c47148c47f1
--- /dev/null
+++ b/src/test/java/ntnu/idatt2016/v233/SmartMat/controller/group/FridgeControllerTest.java
@@ -0,0 +1,144 @@
+package ntnu.idatt2016.v233.SmartMat.controller.group;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import ntnu.idatt2016.v233.SmartMat.dto.request.FridgeProductRequest;
+import ntnu.idatt2016.v233.SmartMat.entity.fridgeProduct.FridgeProductAsso;
+import ntnu.idatt2016.v233.SmartMat.entity.group.Fridge;
+import ntnu.idatt2016.v233.SmartMat.entity.product.Product;
+import ntnu.idatt2016.v233.SmartMat.service.group.FridgeService;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
+import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
+import org.springframework.boot.test.mock.mockito.MockBean;
+import org.springframework.http.MediaType;
+import org.springframework.test.context.junit.jupiter.SpringExtension;
+import org.springframework.test.web.servlet.MockMvc;
+
+import java.util.Optional;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.when;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
+
+@ExtendWith(SpringExtension.class)
+@WebMvcTest(FridgeController.class)
+@AutoConfigureMockMvc(addFilters = false) // Disables security for this test class
+public class FridgeControllerTest {
+
+    @Autowired
+    private MockMvc mockMvc;
+
+    @Autowired
+    private ObjectMapper objectMapper;
+
+    @MockBean
+    private FridgeService fridgeService;
+
+    private Fridge fridge;
+    private Product product;
+    private FridgeProductAsso fridgeProductAsso;
+    private FridgeProductRequest fridgeProductRequest;
+
+    @BeforeEach
+    public void setUp() {
+        // Create and set up your test data here
+        fridge = new Fridge();
+        product = new Product();
+        fridgeProductAsso = new FridgeProductAsso();
+        fridgeProductRequest = new FridgeProductRequest(1L, 1L, 1L, 2, 7);
+    }
+
+    @Test
+    public void getFridgeByGroupId() throws Exception {
+        when(fridgeService.getFridgeByGroupId(1L)).thenReturn(Optional.of(fridge));
+
+        mockMvc.perform(get("/api/fridges/group/1"))
+                .andExpect(status().isOk());
+    }
+
+    @Test
+    public void getFridgeByGroupId_notFound() throws Exception {
+        when(fridgeService.getFridgeByGroupId(1L)).thenReturn(Optional.empty());
+
+        mockMvc.perform(get("/api/fridges/group/1"))
+                .andExpect(status().isNotFound());
+    }
+
+    @Test
+    public void getFridgeByFridgeId() throws Exception {
+        when(fridgeService.getFridgeByFridgeId(1L)).thenReturn(Optional.of(fridge));
+
+        mockMvc.perform(get("/api/fridges/fridge/1"))
+                .andExpect(status().isOk());
+    }
+
+    @Test
+    public void getFridgeByFridgeId_notFound() throws Exception {
+        when(fridgeService.getFridgeByFridgeId(1L)).thenReturn(Optional.empty());
+
+        mockMvc.perform(get("/api/fridges/fridge/1"))
+                .andExpect(status().isNotFound());
+    }
+
+    @Test
+    public void addProductToFridge() throws Exception {
+        when(fridgeService.addProductToFridge(any(FridgeProductRequest.class))).thenReturn(Optional.of(product));
+
+        mockMvc.perform(post("/api/fridges/group/product")
+                        .contentType(MediaType.APPLICATION_JSON)
+                        .content(objectMapper.writeValueAsString(fridgeProductRequest)))
+                .andExpect(status().isOk());
+    }
+
+    @Test
+    public void addProductToFridge_notFound() throws Exception {
+        when(fridgeService.addProductToFridge(any(FridgeProductRequest.class))).thenReturn(Optional.empty());
+
+        mockMvc.perform(post("/api/fridges/group/product")
+                        .contentType(MediaType.APPLICATION_JSON)
+                        .content(objectMapper.writeValueAsString(fridgeProductRequest)))
+                .andExpect(status().isNotFound());
+    }
+
+    @Test
+    public void updateProductInFridge() throws Exception {
+        when(fridgeService.updateProductInFridge(any(FridgeProductRequest.class))).thenReturn(Optional.of(fridgeProductAsso));
+
+        mockMvc.perform(put("/api/fridges/group/product")
+                        .contentType(MediaType.APPLICATION_JSON)
+                        .content(objectMapper.writeValueAsString(fridgeProductRequest)))
+                .andExpect(status().isOk());
+    }
+
+    @Test
+    public void updateProductInFridge_notFound() throws Exception {
+        when(fridgeService.updateProductInFridge(any(FridgeProductRequest.class))).thenReturn(Optional.empty());
+
+        mockMvc.perform(put("/api/fridges/group/product")
+                        .contentType(MediaType.APPLICATION_JSON)
+                        .content(objectMapper.writeValueAsString(fridgeProductRequest)))
+                .andExpect(status().isNotFound());
+    }
+
+    @Test
+    public void removeProductFromFridge_success() throws Exception {
+        when(fridgeService.removeProductFromFridge(1L)).thenReturn(true);
+
+        mockMvc.perform(delete("/api/fridges/delete/product/1"))
+                .andExpect(status().isOk())
+                .andExpect(content().string("Success"));
+    }
+
+    @Test
+    public void removeProductFromFridge_badRequest() throws Exception {
+        when(fridgeService.removeProductFromFridge(1L)).thenReturn(false);
+
+        mockMvc.perform(delete("/api/fridges/delete/product/1"))
+                .andExpect(status().isBadRequest())
+                .andExpect(content().string("Product not found in the fridge"));
+    }
+}