Skip to content
Snippets Groups Projects
Commit 82662756 authored by Jan Zickermann's avatar Jan Zickermann
Browse files

Merge remote-tracking branch 'origin/master' into OZG-4815-SetupSpringDataREST

parents 76df3416 27f26278
No related branches found
No related tags found
No related merge requests found
......@@ -48,7 +48,7 @@ pipeline {
}
configFileProvider([configFile(fileId: 'maven-settings', variable: 'MAVEN_SETTINGS')]) {
sh 'mvn -s $MAVEN_SETTINGS clean install -Dmaven.wagon.http.retryHandler.count=3 -DelasticTests.disabled=true'
sh "mvn -s $MAVEN_SETTINGS clean install -Dmaven.wagon.http.retryHandler.count=3 -DelasticTests.disabled=true -Dbuild.number=$BUILD_NUMBER"
}
}
}
......
......@@ -14,9 +14,12 @@
<version>1.0.0-SNAPSHOT</version>
<name>Administration</name>
<description>Administration Backend Project</description>
<properties>
<imageName>docker.ozg-sh.de/administration</imageName>
<build.number>SET_BY_JENKINS</build.number>
</properties>
<dependencies>
<!-- Spring -->
<dependency>
......@@ -132,6 +135,19 @@
</exclude>
</excludes>
</configuration>
<executions>
<execution>
<id>build-info</id>
<goals>
<goal>build-info</goal>
</goals>
<configuration>
<additionalProperties>
<number>${build.number}</number>
</additionalProperties>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
......
package de.ozgcloud.admin;
import java.time.Instant;
import lombok.Builder;
import lombok.Getter;
@Builder
@Getter
public class Root {
private String javaVersion;
private String buildVersion;
private Instant buildTime;
private String buildNumber;
}
package de.ozgcloud.admin;
import org.springframework.boot.info.BuildProperties;
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 BuildProperties buildProperties;
@GetMapping
public Root getRoot() {
return buildRoot();
}
private Root buildRoot() {
return Root.builder()
.javaVersion(System.getProperty("java.version"))
.buildTime(buildProperties.getTime())
.buildVersion(buildProperties.getVersion())
.buildNumber(buildProperties.get("number"))
.build();
}
}
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 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.boot.info.BuildProperties;
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 {
@Spy
@InjectMocks
private RootController rootController;
@Mock
private BuildProperties buildProperties;
private MockMvc mockMvc;
@BeforeEach
void mock() {
mockMvc = MockMvcBuilders.standaloneSetup(rootController).build();
}
@DisplayName("Root")
@Nested
class TestInfo {
@Test
@SneakyThrows
void shouldHaveJavaVersion() {
System.setProperty("java.version", RootTestFactory.JAVA_VERSION);
ResultActions result = doRequest();
result.andExpect(jsonPath("$.javaVersion").value(RootTestFactory.JAVA_VERSION));
}
@Test
@SneakyThrows
void shouldHaveVersion() {
when(buildProperties.getVersion()).thenReturn(RootTestFactory.BUILD_VERSION);
ResultActions result = doRequest();
result.andExpect(jsonPath("$.buildVersion").value(RootTestFactory.BUILD_VERSION));
}
@Test
@SneakyThrows
void shouldHaveBuildTime() {
when(buildProperties.getTime()).thenReturn(RootTestFactory.BUILD_TIME);
ResultActions result = doRequest();
result.andExpect(jsonPath("$.buildTime").value(RootTestFactory.BUILD_TIME.getEpochSecond()));
}
@Test
@SneakyThrows
void shouldHaveBuildNumber() {
when(buildProperties.get("number")).thenReturn(RootTestFactory.BUILD_NUMBER);
ResultActions result = doRequest();
result.andExpect(jsonPath("$.buildNumber").value(RootTestFactory.BUILD_NUMBER));
}
@SneakyThrows
private ResultActions doRequest() {
return mockMvc.perform(get(RootController.PATH)).andExpect(status().isOk());
}
}
}
package de.ozgcloud.admin;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
public class RootTestFactory {
public static final Instant BUILD_TIME = LocalDateTime.parse("2021-04-01T10:30").toInstant(ZoneOffset.UTC);
public static final String JAVA_VERSION = "1";
public static final String BUILD_VERSION = "2";
public static final String BUILD_NUMBER = "3";
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment