Skip to content
Snippets Groups Projects
Commit 9fbd2d19 authored by OZGCloud's avatar OZGCloud
Browse files

OZG-4717 Cleanup

parent 294a4d74
No related branches found
No related tags found
No related merge requests found
......@@ -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>
......
......@@ -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;
}
......@@ -4,28 +4,27 @@ import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import lombok.AllArgsConstructor;
import lombok.RequiredArgsConstructor;
@RestController
@AllArgsConstructor
@RequestMapping(BasicAppInfoController.PATH)
public class BasicAppInfoController {
@RequiredArgsConstructor
@RequestMapping(RootController.PATH)
public class RootController {
static final String PATH = "/api"; // NOSONAR
private BasicAppInfoService basicAppInfoService;
private final RootService rootService;
@GetMapping
public BasicAppInfo getInfo() {
return buildInfo();
public Root getRoot() {
return buildRoot();
}
private BasicAppInfo buildInfo() {
return BasicAppInfo.builder()
.javaVersion(basicAppInfoService.getJavaVersion())
.buildTime(basicAppInfoService.getBuildTime())
.buildVersion(basicAppInfoService.getVersion())
.buildNumber(basicAppInfoService.getBuildNumber())
.buildUrl(basicAppInfoService.getBuildUrl())
private Root buildRoot() {
return Root.builder()
.javaVersion(rootService.getJavaVersion())
.buildTime(rootService.getBuildTime())
.buildVersion(rootService.getVersion())
.buildNumber(rootService.getBuildNumber())
.build();
}
......
......@@ -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("--");
......
......@@ -12,16 +12,19 @@ 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.springframework.boot.test.context.SpringBootTest;
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;
@SpringBootTest
class BasicAppInfoControllerTest {
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";
......@@ -30,64 +33,65 @@ class BasicAppInfoControllerTest {
@Spy
@InjectMocks
private BasicAppInfoController basicAppInfoController;
private RootController rootController;
@Mock
private BasicAppInfoService basicAppInfoService;
private RootService rootService;
private MockMvc mockMvc;
@BeforeEach
void mock() {
mockMvc = MockMvcBuilders.standaloneSetup(basicAppInfoController).build();
mockMvc = MockMvcBuilders.standaloneSetup(rootController).build();
}
@DisplayName("Basic info")
@DisplayName("Root")
@Nested
class TestInfo {
@Test
void shouldHaveJavaVersion() throws Exception {
when(basicAppInfoService.getJavaVersion()).thenReturn(javaVersion);
doRequest()
.andExpect(jsonPath("$.javaVersion").value(javaVersion));
}
@SneakyThrows
void shouldHaveJavaVersion() {
when(rootService.getJavaVersion()).thenReturn(javaVersion);
@Test
void shouldHaveVersion() throws Exception {
when(basicAppInfoService.getVersion()).thenReturn(buildVersion);
ResultActions result = doRequest();
doRequest()
.andExpect(jsonPath("$.buildVersion").value(buildVersion));
result.andExpect(jsonPath("$.javaVersion").value(javaVersion));
}
@Test
void shouldHaveBuildTime() throws Exception {
when(basicAppInfoService.getBuildTime()).thenReturn(sampleTime);
@SneakyThrows
void shouldHaveVersion() {
when(rootService.getVersion()).thenReturn(buildVersion);
doRequest()
.andExpect(jsonPath("$.buildTime").value(sampleTime.getEpochSecond()));
ResultActions result = doRequest();
result.andExpect(jsonPath("$.buildVersion").value(buildVersion));
}
@Test
void shouldHaveBuildNumber() throws Exception {
when(basicAppInfoService.getBuildNumber()).thenReturn(buildNumber);
@SneakyThrows
void shouldHaveBuildTime() {
when(rootService.getBuildTime()).thenReturn(sampleTime);
ResultActions result = doRequest();
doRequest()
.andExpect(jsonPath("$.buildNumber").value(buildNumber));
result.andExpect(jsonPath("$.buildTime").value(sampleTime.getEpochSecond()));
}
@Test
void shouldHaveBuildUrl() throws Exception {
when(basicAppInfoService.getBuildUrl()).thenReturn(buildUrl);
@SneakyThrows
void shouldHaveBuildNumber() {
when(rootService.getBuildNumber()).thenReturn(buildNumber);
ResultActions result = doRequest();
doRequest()
.andExpect(jsonPath("$.buildUrl").value(buildUrl));
result.andExpect(jsonPath("$.buildNumber").value(buildNumber));
}
private ResultActions doRequest() throws Exception {
return mockMvc.perform(get(BasicAppInfoController.PATH)).andExpect(status().isOk());
@SneakyThrows
private ResultActions doRequest() {
return mockMvc.perform(get(RootController.PATH)).andExpect(status().isOk());
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment