diff --git a/src/main/java/ntnu/idatt2016/v233/SmartMat/entity/fridgeProduct/FridgeProductAsso.java b/src/main/java/ntnu/idatt2016/v233/SmartMat/entity/fridgeProduct/FridgeProductAsso.java
index 4719dc3cac54e4fe298779aae2e1b5324da51693..55dce18f0f505a93a2f85c2ff3f42517059777cb 100644
--- a/src/main/java/ntnu/idatt2016/v233/SmartMat/entity/fridgeProduct/FridgeProductAsso.java
+++ b/src/main/java/ntnu/idatt2016/v233/SmartMat/entity/fridgeProduct/FridgeProductAsso.java
@@ -2,6 +2,7 @@ package ntnu.idatt2016.v233.SmartMat.entity.fridgeProduct;
 
 import jakarta.persistence.*;
 import lombok.AllArgsConstructor;
+import lombok.Builder;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import ntnu.idatt2016.v233.SmartMat.entity.group.Fridge;
@@ -13,6 +14,7 @@ import java.sql.Date;
 @NoArgsConstructor
 @Data
 @Entity(name = "fridge_product")
+@Builder
 @IdClass(FridgeProductId.class)
 public class FridgeProductAsso {
     @Id
diff --git a/src/main/java/ntnu/idatt2016/v233/SmartMat/entity/fridgeProduct/FridgeProductId.java b/src/main/java/ntnu/idatt2016/v233/SmartMat/entity/fridgeProduct/FridgeProductId.java
index 513bb5e964287032235d2f1c789a2f5e49b44963..932babae66e437de1ae5dd1b9ee432065863bd9b 100644
--- a/src/main/java/ntnu/idatt2016/v233/SmartMat/entity/fridgeProduct/FridgeProductId.java
+++ b/src/main/java/ntnu/idatt2016/v233/SmartMat/entity/fridgeProduct/FridgeProductId.java
@@ -2,6 +2,7 @@ package ntnu.idatt2016.v233.SmartMat.entity.fridgeProduct;
 
 
 import lombok.AllArgsConstructor;
+import lombok.Builder;
 import lombok.EqualsAndHashCode;
 import lombok.NoArgsConstructor;
 
@@ -17,6 +18,7 @@ import java.sql.Date;
 @EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
+@Builder
 public class FridgeProductId implements Serializable {
     private long fridgeId;
 
diff --git a/src/main/java/ntnu/idatt2016/v233/SmartMat/entity/group/Fridge.java b/src/main/java/ntnu/idatt2016/v233/SmartMat/entity/group/Fridge.java
index 056f80fb53e403aa945b912b07589df077f44a37..869f51b495f090c9234aa9661e9cce7083a42e61 100644
--- a/src/main/java/ntnu/idatt2016/v233/SmartMat/entity/group/Fridge.java
+++ b/src/main/java/ntnu/idatt2016/v233/SmartMat/entity/group/Fridge.java
@@ -1,5 +1,6 @@
 package ntnu.idatt2016.v233.SmartMat.entity.group;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
@@ -38,4 +39,16 @@ public class Fridge{
     @JsonIgnoreProperties("fridge")
     List<FridgeProductAsso> products;
 
+
+    /**
+     * Adds a product to the fridge
+     * @param product the product to add to the fridge
+     */
+    public void addProduct(FridgeProductAsso product){
+        if(products == null){
+            products = new ArrayList<>();
+        }
+
+        products.add(product);
+    }
 }
diff --git a/src/main/java/ntnu/idatt2016/v233/SmartMat/entity/product/Product.java b/src/main/java/ntnu/idatt2016/v233/SmartMat/entity/product/Product.java
index a0fa19fa4fc877b15428f62025c30581122f8641..7c2f1bc6613d46d92c7da35fa185791267a6005d 100644
--- a/src/main/java/ntnu/idatt2016/v233/SmartMat/entity/product/Product.java
+++ b/src/main/java/ntnu/idatt2016/v233/SmartMat/entity/product/Product.java
@@ -10,6 +10,7 @@ import ntnu.idatt2016.v233.SmartMat.entity.group.Fridge;
 import ntnu.idatt2016.v233.SmartMat.entity.Recipe;
 import ntnu.idatt2016.v233.SmartMat.entity.fridgeProduct.FridgeProductAsso;
 
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -71,4 +72,15 @@ public class Product{
     @JsonIgnoreProperties({"products"})
     List<Recipe> recipes;
 
+    /**
+     * Adds a fridge to the product
+     * @param fridge the fridge product association to add to the product
+     */
+    public void addFridge(FridgeProductAsso fridge){
+        if(fridges == null){
+            fridges = new ArrayList<>();
+        }
+
+        fridges.add(fridge);
+    }
 }
\ No newline at end of file
diff --git a/src/main/java/ntnu/idatt2016/v233/SmartMat/service/group/FridgeProductAssoService.java b/src/main/java/ntnu/idatt2016/v233/SmartMat/service/group/FridgeProductAssoService.java
index 34f0e7cdcd33628e2c7ddf907025cd78ffb1428c..6dccc0791a15e71b29e22999fd7db1b9260ec0be 100644
--- a/src/main/java/ntnu/idatt2016/v233/SmartMat/service/group/FridgeProductAssoService.java
+++ b/src/main/java/ntnu/idatt2016/v233/SmartMat/service/group/FridgeProductAssoService.java
@@ -36,6 +36,14 @@ public class FridgeProductAssoService {
         temp.setEan(product);
         temp.setPurchaseDate(purchaseDate);
         fridgeProductAssoRepository.save(temp);
+
+        fridge.addProduct(temp);
+        product.addFridge(temp);
+
+        fridgeRepository.save(fridge);
+
+        productRepository.save(product);
+
         return temp;
     }
 
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 d458bf76726d972ebbaa32384746950840fbc158..8650f11264f6dc6a51a2bc56bc82018ef823df51 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
@@ -56,8 +56,7 @@ public class FridgeService {
             if (fridge.getProducts().contains(temp)) {
                 return false;
             }
-            fridge.getProducts().add(temp);
-            fridgeRepository.save(fridge);
+            fridgeProductAssoService.createFridgeProductAsso(fridge, productToAdd, new Date(LocalDate.now().toEpochDay()));
             return true;
         } else {
             return false;
@@ -87,7 +86,6 @@ public class FridgeService {
             fridgeProductAssoService.deleteFridgeProductAsso(new FridgeProductAsso(fridge,
                     productToRemove, purchaseDate));
 
-            fridgeRepository.save(fridge);
             return true;
         } else {
             return false;
diff --git a/src/test/java/ntnu/idatt2016/v233/SmartMat/service/group/FridgeProductAssoServiceTest.java b/src/test/java/ntnu/idatt2016/v233/SmartMat/service/group/FridgeProductAssoServiceTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..777986ebd2e879f81e8504902eec232b18ee0ce7
--- /dev/null
+++ b/src/test/java/ntnu/idatt2016/v233/SmartMat/service/group/FridgeProductAssoServiceTest.java
@@ -0,0 +1,97 @@
+package ntnu.idatt2016.v233.SmartMat.service.group;
+
+import ntnu.idatt2016.v233.SmartMat.entity.fridgeProduct.FridgeProductAsso;
+import ntnu.idatt2016.v233.SmartMat.entity.fridgeProduct.FridgeProductId;
+import ntnu.idatt2016.v233.SmartMat.entity.group.Fridge;
+import ntnu.idatt2016.v233.SmartMat.entity.product.Product;
+import ntnu.idatt2016.v233.SmartMat.repository.group.FridgeProductAssoRepository;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
+import org.springframework.boot.test.autoconfigure.orm.jpa.TestEntityManager;
+
+import java.sql.Date;
+import java.time.Instant;
+import java.time.LocalDate;
+import java.util.List;
+import java.util.Optional;
+
+import static org.junit.jupiter.api.Assertions.*;
+
+@DataJpaTest
+class FridgeProductAssoServiceTest {
+
+    @Autowired
+    TestEntityManager entityManager;
+
+    @Autowired
+    FridgeProductAssoRepository fridgeProductAssoRepository;
+
+    private Product product;
+
+    private Fridge fridge;
+    @BeforeEach
+    void setUp() {
+        entityManager.clear();
+
+        product = Product.builder()
+                .ean(1234567890123L)
+                .name("Test")
+                .description("Test")
+                .build();
+
+        fridge = Fridge.builder()
+                .build();
+
+        FridgeProductAsso fridgeProductAsso = FridgeProductAsso.builder()
+                .ean(product)
+                .fridgeId(fridge)
+                .purchaseDate(Date.valueOf("2023-04-24"))
+                .build();
+
+        product.addFridge(fridgeProductAsso);
+        fridge.addProduct(fridgeProductAsso);
+
+        entityManager.persist(product);
+        entityManager.persist(fridge);
+        entityManager.persist(fridgeProductAsso);
+
+    }
+
+    @Test
+    void createFridgeProductAsso() {
+        Optional<FridgeProductAsso> temp = fridgeProductAssoRepository.findById(
+                new FridgeProductId(fridge.getFridgeId(), product.getEan(), Date.valueOf("2023-04-24")));
+        assertTrue(temp.isPresent());
+
+        assertTrue(entityManager.find(Fridge.class, fridge.getFridgeId()).getProducts().contains(temp.get()));
+        assertTrue(entityManager.find(Product.class, product.getEan()).getFridges().contains(temp.get()));
+
+        assertEquals(product.getEan(), temp.get().getEan().getEan());
+        assertEquals(fridge.getFridgeId(), temp.get().getFridgeId().getFridgeId());
+    }
+
+    @Test
+    void deleteFridgeProductAsso() {
+
+        Optional<FridgeProductAsso> temp = fridgeProductAssoRepository.findById(
+                new FridgeProductId(fridge.getFridgeId(), product.getEan(), Date.valueOf("2023-04-24")));
+        assertTrue(temp.isPresent());
+
+        fridgeProductAssoRepository.delete(temp.get());
+
+        assertFalse(fridgeProductAssoRepository.findById(
+                new FridgeProductId(fridge.getFridgeId(), product.getEan(), Date.valueOf("2023-04-24"))).isPresent());
+
+        fridge.getProducts().remove(temp.get());
+        product.getFridges().remove(temp.get());
+
+        entityManager.persist(fridge);
+        entityManager.persist(product);
+
+        assertFalse(entityManager.find(Fridge.class, fridge.getFridgeId()).getProducts().contains(temp.get()));
+        assertFalse(entityManager.find(Product.class, product.getEan()).getFridges().contains(temp.get()));
+    }
+}
\ No newline at end of file