From 11a12d9273ff2e58196aa5acb5002e84f83838e4 Mon Sep 17 00:00:00 2001
From: Lukas Karsch <lukas.karsch03@gmail.com>
Date: Thu, 30 Nov 2023 20:46:39 +0100
Subject: [PATCH] #29 first test for plant service

---
 requests.http                                 |  2 +-
 .../growbros/service/PlantsServiceTest.java   | 44 +++++++++++++++++++
 2 files changed, 45 insertions(+), 1 deletion(-)
 create mode 100644 src/test/java/hdm/mi/growbros/service/PlantsServiceTest.java

diff --git a/requests.http b/requests.http
index 9401e13..7e78e46 100644
--- a/requests.http
+++ b/requests.http
@@ -1,6 +1,6 @@
 ### Get all plants
 GET http://localhost:8080/api/v1/plants?page=0
-Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJsdWthcy5rYXJzY2hAZ214LmRlIiwiaWF0IjoxNzAxMjc4MzkzLCJleHAiOjE3MDEzNjQ3OTN9.TVQlG3yAl_zJddPoWDndY9Xj-9EaR0P__x3aGU3sdBA
+Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJsdWthcy5rYXJzY2hAZ214LmRlIiwiaWF0IjoxNzAxMzcyNTIxLCJleHAiOjE3MDE0NTg5MjF9.8_rTh-5s4A6D1t_bdRdQFbM5RdNl2fpCLETpTQzInuc
 
 ### Get garden entries
 GET http://localhost:8080/api/v1/garden
diff --git a/src/test/java/hdm/mi/growbros/service/PlantsServiceTest.java b/src/test/java/hdm/mi/growbros/service/PlantsServiceTest.java
new file mode 100644
index 0000000..9121825
--- /dev/null
+++ b/src/test/java/hdm/mi/growbros/service/PlantsServiceTest.java
@@ -0,0 +1,44 @@
+package hdm.mi.growbros.service;
+
+import hdm.mi.growbros.models.dto.CustomPageDto;
+import hdm.mi.growbros.models.plant.Plant;
+import hdm.mi.growbros.repositories.PlantRepository;
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.boot.test.mock.mockito.MockBean;
+import org.springframework.data.domain.PageImpl;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.test.context.ActiveProfiles;
+
+import java.util.List;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+@SpringBootTest
+@ActiveProfiles("test")
+class PlantsServiceTest {
+    @MockBean
+    private PlantRepository plantRepository;
+
+    @Autowired
+    private PlantsService plantsService;
+
+    @Test
+    void getPlants_withPageEmpty() {
+        final PageRequest pageable = PageRequest.of(0, 10);
+        PageImpl<Plant> page = new PageImpl<>(List.of());
+        final CustomPageDto<Plant> expected = new CustomPageDto<>(0, 0, page.getContent());
+        when(plantRepository.findAll(pageable))
+                .thenReturn(page);
+
+        CustomPageDto<Plant> actual = plantsService.getPlants(0, 10);
+
+        verify(plantRepository).findAll(pageable);
+        assertEquals(actual.currentPage(), expected.currentPage());
+        assertEquals(actual.pageSize(), 0);
+        assertEquals(actual.content(), expected.content());
+    }
+}
\ No newline at end of file
-- 
GitLab