From ddfcd99d7c17e6eca94f9db499da2d88956bf029 Mon Sep 17 00:00:00 2001
From: Lara Blersch <lb210@hdm-stuttgart.de>
Date: Mon, 15 Jan 2024 19:00:54 +0100
Subject: [PATCH] added builder annotation to WishListEntry and startet
 implementing WishListRepositoryTest

---
 .../hdm/mi/growbros/models/WishListEntry.java |  2 +
 .../repositories/WishListRepositoryTest.java  | 80 +++++++++++++++++++
 2 files changed, 82 insertions(+)
 create mode 100644 src/test/java/hdm/mi/growbros/repositories/WishListRepositoryTest.java

diff --git a/src/main/java/hdm/mi/growbros/models/WishListEntry.java b/src/main/java/hdm/mi/growbros/models/WishListEntry.java
index a8254b6..a645419 100644
--- a/src/main/java/hdm/mi/growbros/models/WishListEntry.java
+++ b/src/main/java/hdm/mi/growbros/models/WishListEntry.java
@@ -12,6 +12,8 @@ import java.util.Date;
 
 @Entity
 @EntityListeners(AuditingEntityListener.class)
+@Data
+@Builder
 @Getter
 @Setter
 @AllArgsConstructor
diff --git a/src/test/java/hdm/mi/growbros/repositories/WishListRepositoryTest.java b/src/test/java/hdm/mi/growbros/repositories/WishListRepositoryTest.java
new file mode 100644
index 0000000..ea42d2d
--- /dev/null
+++ b/src/test/java/hdm/mi/growbros/repositories/WishListRepositoryTest.java
@@ -0,0 +1,80 @@
+package hdm.mi.growbros.repositories;
+
+import hdm.mi.growbros.models.WishListEntry;
+import hdm.mi.growbros.models.plant.Plant;
+import hdm.mi.growbros.models.user.Role;
+import hdm.mi.growbros.models.user.User;
+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 org.springframework.security.web.access.channel.RetryWithHttpEntryPoint;
+import org.springframework.test.context.ActiveProfiles;
+
+import java.util.List;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+@DataJpaTest
+@ActiveProfiles("test")
+public class WishListRepositoryTest {
+
+    @Autowired
+    private WishListRepository underTest;
+
+    @Autowired
+    private TestEntityManager entityManager;
+
+    private WishListEntry we1, we2, we3, we4;
+    private User user1, user2;
+
+    @BeforeEach
+    void setupEach() {
+        user1 = User.builder()
+                .email("user1@gmail.com")
+                .role(Role.USER)
+                .password("safePassword123!")
+                .build();
+        entityManager.persist(user1);
+
+        user2 = User.builder()
+                .email("user2@gmail.com")
+                .role(Role.USER)
+                .password("safePassword123!")
+                .build();
+        entityManager.persist(user2);
+
+        Plant p1 = Plant.builder()
+                .name("Early plant")
+                .plantWeekStart(1)
+                .plantWeekEnd(3)
+                .harvestWeekStart(10)
+                .harvestWeekEnd(15)
+                .build();
+        entityManager.persist(p1);
+        Plant p2 = Plant.builder()
+                .name("Medium late plant")
+                .plantWeekStart(4)
+                .plantWeekEnd(6)
+                .harvestWeekStart(18)
+                .harvestWeekEnd(20)
+                .build();
+        entityManager.persist(p2);
+        Plant p3 = Plant.builder()
+                .name("Late plant")
+                .plantWeekStart(10)
+                .plantWeekEnd(15)
+                .harvestWeekStart(25)
+                .harvestWeekEnd(30)
+                .build();
+        entityManager.persist(p3);
+
+        we1 = WishListEntry.builder().id(0L).plant(p1).user(user1).build();
+        we2 = WishListEntry.builder().id(0L).plant(p2).user(user1).build();
+        we3 = WishListEntry.builder().id(0L).plant(p3).user(user1).build();
+        we4 = WishListEntry.builder().id(0L).plant(p3).user(user2).build();
+        underTest.saveAll(List.of(we1, we2, we3, we4));
+    }
+}
-- 
GitLab