From 9fbd2d1956c0477a68a48c74ac4911bc1e3c8280 Mon Sep 17 00:00:00 2001
From: OZGCloud <ozgcloud@mgm-tp.com>
Date: Tue, 30 Jan 2024 13:19:06 +0100
Subject: [PATCH] OZG-4717 Cleanup

---
 pom.xml                                       |  7 --
 .../admin/BasicAppInfoController.java         | 32 ------
 .../admin/{BasicAppInfo.java => Root.java}    |  3 +-
 .../de/ozgcloud/admin/RootController.java     | 31 ++++++
 ...icAppInfoService.java => RootService.java} |  8 +-
 .../admin/BasicAppInfoControllerTest.java     | 95 ------------------
 .../de/ozgcloud/admin/RootControllerTest.java | 99 +++++++++++++++++++
 7 files changed, 135 insertions(+), 140 deletions(-)
 delete mode 100644 src/main/java/de/ozgcloud/admin/BasicAppInfoController.java
 rename src/main/java/de/ozgcloud/admin/{BasicAppInfo.java => Root.java} (81%)
 create mode 100644 src/main/java/de/ozgcloud/admin/RootController.java
 rename src/main/java/de/ozgcloud/admin/{BasicAppInfoService.java => RootService.java} (83%)
 delete mode 100644 src/test/java/de/ozgcloud/admin/BasicAppInfoControllerTest.java
 create mode 100644 src/test/java/de/ozgcloud/admin/RootControllerTest.java

diff --git a/pom.xml b/pom.xml
index 2ce06370..272d35e6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -14,13 +14,6 @@
 	<version>1.0.0-SNAPSHOT</version>
 	<name>Administration</name>
 	<description>Administration Backend Project</description>
-	<properties>
-		<java.version>21</java.version>
-		<!--<maven.compiler.source>21</maven.compiler.source>
-		<maven.compiler.target>21</maven.compiler.target>-->
-		<build.number>x</build.number>
-		<build.url>no-url</build.url>
-	</properties>
 	<dependencies>
 		<!-- Spring -->
 		<dependency>
diff --git a/src/main/java/de/ozgcloud/admin/BasicAppInfoController.java b/src/main/java/de/ozgcloud/admin/BasicAppInfoController.java
deleted file mode 100644
index 52e7115d..00000000
--- a/src/main/java/de/ozgcloud/admin/BasicAppInfoController.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package de.ozgcloud.admin;
-
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import lombok.AllArgsConstructor;
-
-@RestController
-@AllArgsConstructor
-@RequestMapping(BasicAppInfoController.PATH)
-public class BasicAppInfoController {
-	static final String PATH = "/api"; // NOSONAR
-
-	private BasicAppInfoService basicAppInfoService;
-
-	@GetMapping
-	public BasicAppInfo getInfo() {
-		return buildInfo();
-	}
-
-	private BasicAppInfo buildInfo() {
-		return BasicAppInfo.builder()
-				.javaVersion(basicAppInfoService.getJavaVersion())
-				.buildTime(basicAppInfoService.getBuildTime())
-				.buildVersion(basicAppInfoService.getVersion())
-				.buildNumber(basicAppInfoService.getBuildNumber())
-				.buildUrl(basicAppInfoService.getBuildUrl())
-				.build();
-	}
-
-}
diff --git a/src/main/java/de/ozgcloud/admin/BasicAppInfo.java b/src/main/java/de/ozgcloud/admin/Root.java
similarity index 81%
rename from src/main/java/de/ozgcloud/admin/BasicAppInfo.java
rename to src/main/java/de/ozgcloud/admin/Root.java
index 5f5e4bf0..1b2e658d 100644
--- a/src/main/java/de/ozgcloud/admin/BasicAppInfo.java
+++ b/src/main/java/de/ozgcloud/admin/Root.java
@@ -7,10 +7,9 @@ import lombok.Getter;
 
 @Builder
 @Getter
-public class BasicAppInfo {
+class Root {
 	private String javaVersion;
 	private String buildVersion;
 	private Instant buildTime;
 	private String buildNumber;
-	private String buildUrl;
 }
diff --git a/src/main/java/de/ozgcloud/admin/RootController.java b/src/main/java/de/ozgcloud/admin/RootController.java
new file mode 100644
index 00000000..b0fca622
--- /dev/null
+++ b/src/main/java/de/ozgcloud/admin/RootController.java
@@ -0,0 +1,31 @@
+package de.ozgcloud.admin;
+
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import lombok.RequiredArgsConstructor;
+
+@RestController
+@RequiredArgsConstructor
+@RequestMapping(RootController.PATH)
+public class RootController {
+	static final String PATH = "/api"; // NOSONAR
+
+	private final RootService rootService;
+
+	@GetMapping
+	public Root getRoot() {
+		return buildRoot();
+	}
+
+	private Root buildRoot() {
+		return Root.builder()
+				.javaVersion(rootService.getJavaVersion())
+				.buildTime(rootService.getBuildTime())
+				.buildVersion(rootService.getVersion())
+				.buildNumber(rootService.getBuildNumber())
+				.build();
+	}
+
+}
diff --git a/src/main/java/de/ozgcloud/admin/BasicAppInfoService.java b/src/main/java/de/ozgcloud/admin/RootService.java
similarity index 83%
rename from src/main/java/de/ozgcloud/admin/BasicAppInfoService.java
rename to src/main/java/de/ozgcloud/admin/RootService.java
index acfed49c..c72ccf2f 100644
--- a/src/main/java/de/ozgcloud/admin/BasicAppInfoService.java
+++ b/src/main/java/de/ozgcloud/admin/RootService.java
@@ -6,12 +6,12 @@ import java.util.Optional;
 import org.springframework.boot.info.BuildProperties;
 import org.springframework.stereotype.Service;
 
-import lombok.AllArgsConstructor;
+import lombok.RequiredArgsConstructor;
 
 @Service
-@AllArgsConstructor
-public class BasicAppInfoService {
-	private Optional<BuildProperties> buildProperties;
+@RequiredArgsConstructor
+class RootService {
+	private final Optional<BuildProperties> buildProperties;
 
 	public String getVersion() {
 		return buildProperties.map(BuildProperties::getVersion).orElse("--");
diff --git a/src/test/java/de/ozgcloud/admin/BasicAppInfoControllerTest.java b/src/test/java/de/ozgcloud/admin/BasicAppInfoControllerTest.java
deleted file mode 100644
index 867bc399..00000000
--- a/src/test/java/de/ozgcloud/admin/BasicAppInfoControllerTest.java
+++ /dev/null
@@ -1,95 +0,0 @@
-package de.ozgcloud.admin;
-
-import static org.mockito.Mockito.*;
-import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
-
-import java.time.Instant;
-import java.time.LocalDateTime;
-import java.time.ZoneOffset;
-
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.DisplayName;
-import org.junit.jupiter.api.Nested;
-import org.junit.jupiter.api.Test;
-import org.mockito.InjectMocks;
-import org.mockito.Mock;
-import org.mockito.Spy;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.test.web.servlet.MockMvc;
-import org.springframework.test.web.servlet.ResultActions;
-import org.springframework.test.web.servlet.setup.MockMvcBuilders;
-
-@SpringBootTest
-class BasicAppInfoControllerTest {
-	final Instant sampleTime = LocalDateTime.parse("2021-04-01T10:30").toInstant(ZoneOffset.UTC);
-	final String javaVersion = "1";
-	final String buildVersion = "2";
-	final String buildNumber = "3";
-	final String buildUrl = "url://test";
-
-	@Spy
-	@InjectMocks
-	private BasicAppInfoController basicAppInfoController;
-
-	@Mock
-	private BasicAppInfoService basicAppInfoService;
-
-	private MockMvc mockMvc;
-
-	@BeforeEach
-	void mock() {
-		mockMvc = MockMvcBuilders.standaloneSetup(basicAppInfoController).build();
-	}
-
-	@DisplayName("Basic info")
-	@Nested
-	class TestInfo {
-
-		@Test
-		void shouldHaveJavaVersion() throws Exception {
-			when(basicAppInfoService.getJavaVersion()).thenReturn(javaVersion);
-
-			doRequest()
-					.andExpect(jsonPath("$.javaVersion").value(javaVersion));
-		}
-
-		@Test
-		void shouldHaveVersion() throws Exception {
-			when(basicAppInfoService.getVersion()).thenReturn(buildVersion);
-
-			doRequest()
-					.andExpect(jsonPath("$.buildVersion").value(buildVersion));
-		}
-
-		@Test
-		void shouldHaveBuildTime() throws Exception {
-			when(basicAppInfoService.getBuildTime()).thenReturn(sampleTime);
-
-			doRequest()
-					.andExpect(jsonPath("$.buildTime").value(sampleTime.getEpochSecond()));
-		}
-
-		@Test
-		void shouldHaveBuildNumber() throws Exception {
-			when(basicAppInfoService.getBuildNumber()).thenReturn(buildNumber);
-
-			doRequest()
-					.andExpect(jsonPath("$.buildNumber").value(buildNumber));
-		}
-
-		@Test
-		void shouldHaveBuildUrl() throws Exception {
-			when(basicAppInfoService.getBuildUrl()).thenReturn(buildUrl);
-
-			doRequest()
-					.andExpect(jsonPath("$.buildUrl").value(buildUrl));
-		}
-
-		private ResultActions doRequest() throws Exception {
-			return mockMvc.perform(get(BasicAppInfoController.PATH)).andExpect(status().isOk());
-		}
-
-	}
-
-}
diff --git a/src/test/java/de/ozgcloud/admin/RootControllerTest.java b/src/test/java/de/ozgcloud/admin/RootControllerTest.java
new file mode 100644
index 00000000..2dc7e661
--- /dev/null
+++ b/src/test/java/de/ozgcloud/admin/RootControllerTest.java
@@ -0,0 +1,99 @@
+package de.ozgcloud.admin;
+
+import static org.mockito.Mockito.*;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
+
+import java.time.Instant;
+import java.time.LocalDateTime;
+import java.time.ZoneOffset;
+
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.DisplayName;
+import org.junit.jupiter.api.Nested;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.Spy;
+import org.mockito.junit.jupiter.MockitoExtension;
+import org.springframework.test.web.servlet.MockMvc;
+import org.springframework.test.web.servlet.ResultActions;
+import org.springframework.test.web.servlet.setup.MockMvcBuilders;
+
+import lombok.SneakyThrows;
+
+@ExtendWith(MockitoExtension.class)
+class RootControllerTest {
+	final Instant sampleTime = LocalDateTime.parse("2021-04-01T10:30").toInstant(ZoneOffset.UTC);
+	final String javaVersion = "1";
+	final String buildVersion = "2";
+	final String buildNumber = "3";
+	final String buildUrl = "url://test";
+
+	@Spy
+	@InjectMocks
+	private RootController rootController;
+
+	@Mock
+	private RootService rootService;
+
+	private MockMvc mockMvc;
+
+	@BeforeEach
+	void mock() {
+		mockMvc = MockMvcBuilders.standaloneSetup(rootController).build();
+	}
+
+	@DisplayName("Root")
+	@Nested
+	class TestInfo {
+
+		@Test
+		@SneakyThrows
+		void shouldHaveJavaVersion() {
+			when(rootService.getJavaVersion()).thenReturn(javaVersion);
+
+			ResultActions result = doRequest();
+
+			result.andExpect(jsonPath("$.javaVersion").value(javaVersion));
+		}
+
+		@Test
+		@SneakyThrows
+		void shouldHaveVersion() {
+			when(rootService.getVersion()).thenReturn(buildVersion);
+
+			ResultActions result = doRequest();
+
+			result.andExpect(jsonPath("$.buildVersion").value(buildVersion));
+		}
+
+		@Test
+		@SneakyThrows
+		void shouldHaveBuildTime() {
+			when(rootService.getBuildTime()).thenReturn(sampleTime);
+
+			ResultActions result = doRequest();
+
+			result.andExpect(jsonPath("$.buildTime").value(sampleTime.getEpochSecond()));
+		}
+
+		@Test
+		@SneakyThrows
+		void shouldHaveBuildNumber() {
+			when(rootService.getBuildNumber()).thenReturn(buildNumber);
+
+			ResultActions result = doRequest();
+
+			result.andExpect(jsonPath("$.buildNumber").value(buildNumber));
+		}
+
+		@SneakyThrows
+		private ResultActions doRequest() {
+			return mockMvc.perform(get(RootController.PATH)).andExpect(status().isOk());
+		}
+
+	}
+
+}
-- 
GitLab