From 9ac9ac0449a2af9bbb2348a53ad903e2076e03c7 Mon Sep 17 00:00:00 2001
From: Martin Weise <martin.weise@tuwien.ac.at>
Date: Wed, 31 May 2023 15:04:42 +0200
Subject: [PATCH] Added actuator tests and swagger endpoint tests

---
 dbrepo-container-service/Dockerfile           |  2 +
 dbrepo-container-service/pom.xml              |  4 --
 .../DbrepoContainerManagingApplication.java   |  2 -
 .../src/main/resources/application-local.yml  |  4 ++
 .../src/main/resources/application.yml        |  4 ++
 .../endpoint/ActuatorComponentTest.java       | 43 +++++++++++++++
 .../tuwien/endpoint/SwaggerComponentTest.java | 33 ++++++++++++
 .../elastic/DatabaseRepository.java           |  9 ----
 .../endpoint/ActuatorComponentTest.java       | 52 +++++++++++++++++++
 .../tuwien/endpoint/SwaggerComponentTest.java | 42 +++++++++++++++
 .../endpoint/ActuatorComponentTest.java       | 48 +++++++++++++++++
 .../tuwien/endpoint/SwaggerComponentTest.java | 38 ++++++++++++++
 .../endpoint/ActuatorComponentTest.java       | 52 +++++++++++++++++++
 .../tuwien/endpoint/SwaggerComponentTest.java | 42 +++++++++++++++
 .../endpoint/ActuatorComponentTest.java       | 43 +++++++++++++++
 .../tuwien/endpoint/SwaggerComponentTest.java | 33 ++++++++++++
 .../endpoint/ActuatorComponentTest.java       | 52 +++++++++++++++++++
 .../tuwien/endpoint/SwaggerComponentTest.java | 42 +++++++++++++++
 .../endpoint/ActuatorComponentTest.java       | 48 +++++++++++++++++
 .../tuwien/endpoint/SwaggerComponentTest.java | 38 ++++++++++++++
 dbrepo.conf                                   |  2 +-
 21 files changed, 617 insertions(+), 16 deletions(-)
 create mode 100644 dbrepo-container-service/rest-service/src/test/java/at/tuwien/endpoint/ActuatorComponentTest.java
 create mode 100644 dbrepo-container-service/rest-service/src/test/java/at/tuwien/endpoint/SwaggerComponentTest.java
 delete mode 100644 dbrepo-container-service/services/src/main/java/at/tuwien/repository/elastic/DatabaseRepository.java
 create mode 100644 dbrepo-database-service/rest-service/src/test/java/at/tuwien/endpoint/ActuatorComponentTest.java
 create mode 100644 dbrepo-database-service/rest-service/src/test/java/at/tuwien/endpoint/SwaggerComponentTest.java
 create mode 100644 dbrepo-identifier-service/rest-service/src/test/java/at/tuwien/endpoint/ActuatorComponentTest.java
 create mode 100644 dbrepo-identifier-service/rest-service/src/test/java/at/tuwien/endpoint/SwaggerComponentTest.java
 create mode 100644 dbrepo-query-service/rest-service/src/test/java/at/tuwien/endpoint/ActuatorComponentTest.java
 create mode 100644 dbrepo-query-service/rest-service/src/test/java/at/tuwien/endpoint/SwaggerComponentTest.java
 create mode 100644 dbrepo-semantics-service/rest-service/src/test/java/at/tuwien/endpoint/ActuatorComponentTest.java
 create mode 100644 dbrepo-semantics-service/rest-service/src/test/java/at/tuwien/endpoint/SwaggerComponentTest.java
 create mode 100644 dbrepo-table-service/rest-service/src/test/java/at/tuwien/endpoint/ActuatorComponentTest.java
 create mode 100644 dbrepo-table-service/rest-service/src/test/java/at/tuwien/endpoint/SwaggerComponentTest.java
 create mode 100644 dbrepo-user-service/rest-service/src/test/java/at/tuwien/endpoint/ActuatorComponentTest.java
 create mode 100644 dbrepo-user-service/rest-service/src/test/java/at/tuwien/endpoint/SwaggerComponentTest.java

diff --git a/dbrepo-container-service/Dockerfile b/dbrepo-container-service/Dockerfile
index 3495a8bfbb..9e8c839383 100644
--- a/dbrepo-container-service/Dockerfile
+++ b/dbrepo-container-service/Dockerfile
@@ -30,6 +30,8 @@ ENV METADATA_USERNAME=root
 ENV METADATA_PASSWORD=dbrepo
 ENV BROKER_USERNAME=fda
 ENV BROKER_PASSWORD=fda
+ENV ELASTIC_USERNAME=elastic
+ENV ELASTIC_PASSWORD=elastic
 ENV SHARED_FILESYSTEM=/tmp
 ENV USER_NETWORK=userdb
 ENV LOG_LEVEL=debug
diff --git a/dbrepo-container-service/pom.xml b/dbrepo-container-service/pom.xml
index b972c5fa5f..af6a4ebfd8 100644
--- a/dbrepo-container-service/pom.xml
+++ b/dbrepo-container-service/pom.xml
@@ -88,10 +88,6 @@
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-data-jpa</artifactId>
         </dependency>
-        <dependency>
-            <groupId>org.springframework.data</groupId>
-            <artifactId>spring-data-elasticsearch</artifactId>
-        </dependency>
         <!-- Entity and API -->
         <dependency>
             <groupId>at.tuwien</groupId>
diff --git a/dbrepo-container-service/rest-service/src/main/java/at/tuwien/DbrepoContainerManagingApplication.java b/dbrepo-container-service/rest-service/src/main/java/at/tuwien/DbrepoContainerManagingApplication.java
index 816eac97eb..7ef30669bc 100644
--- a/dbrepo-container-service/rest-service/src/main/java/at/tuwien/DbrepoContainerManagingApplication.java
+++ b/dbrepo-container-service/rest-service/src/main/java/at/tuwien/DbrepoContainerManagingApplication.java
@@ -3,7 +3,6 @@ package at.tuwien;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.boot.autoconfigure.domain.EntityScan;
-import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;
 import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
 import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
 import org.springframework.transaction.annotation.EnableTransactionManagement;
@@ -11,7 +10,6 @@ import org.springframework.transaction.annotation.EnableTransactionManagement;
 @SpringBootApplication
 @EnableJpaAuditing
 @EnableTransactionManagement
-@EnableElasticsearchRepositories(basePackages = {"at.tuwien.repository.elastic"})
 @EnableJpaRepositories(basePackages = {"at.tuwien.repository.jpa"})
 @EntityScan(basePackages = {"at.tuwien.entities"})
 public class DbrepoContainerManagingApplication {
diff --git a/dbrepo-container-service/rest-service/src/main/resources/application-local.yml b/dbrepo-container-service/rest-service/src/main/resources/application-local.yml
index 1614716178..9760a7ba9d 100644
--- a/dbrepo-container-service/rest-service/src/main/resources/application-local.yml
+++ b/dbrepo-container-service/rest-service/src/main/resources/application-local.yml
@@ -27,6 +27,10 @@ spring:
     virtual-host: dbrepo
     username: fda
     password: fda
+  elasticsearch:
+    password: elastic
+    username: elastic
+    uris: http://localhost:9200
 management.endpoints.web.exposure.include: health,info,prometheus
 springdoc.swagger-ui.enabled: true
 server:
diff --git a/dbrepo-container-service/rest-service/src/main/resources/application.yml b/dbrepo-container-service/rest-service/src/main/resources/application.yml
index 51a7582839..514c45bb32 100644
--- a/dbrepo-container-service/rest-service/src/main/resources/application.yml
+++ b/dbrepo-container-service/rest-service/src/main/resources/application.yml
@@ -27,6 +27,10 @@ spring:
     virtual-host: dbrepo
     username: "${BROKER_USERNAME}"
     password: "${BROKER_PASSWORD}"
+  elasticsearch:
+    password: "${ELASTIC_PASSWORD}"
+    username: "${ELASTIC_USERNAME}"
+    uris: http://search-service:9200
 management.endpoints.web.exposure.include: health,info,prometheus
 springdoc.swagger-ui.enabled: true
 server:
diff --git a/dbrepo-container-service/rest-service/src/test/java/at/tuwien/endpoint/ActuatorComponentTest.java b/dbrepo-container-service/rest-service/src/test/java/at/tuwien/endpoint/ActuatorComponentTest.java
new file mode 100644
index 0000000000..3cfe183823
--- /dev/null
+++ b/dbrepo-container-service/rest-service/src/test/java/at/tuwien/endpoint/ActuatorComponentTest.java
@@ -0,0 +1,43 @@
+package at.tuwien.endpoint;
+
+import at.tuwien.BaseUnitTest;
+import lombok.extern.log4j.Log4j2;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit.jupiter.SpringExtension;
+import org.springframework.test.web.servlet.MockMvc;
+
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
+import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
+
+@Log4j2
+@ExtendWith(SpringExtension.class)
+@AutoConfigureMockMvc
+@SpringBootTest
+public class ActuatorComponentTest extends BaseUnitTest {
+
+    @Autowired
+    private MockMvc mockMvc;
+
+    @Test
+    public void actuatorInfo_succeeds() throws Exception {
+        this.mockMvc.perform(get("/actuator/info"))
+                .andDo(print())
+                .andExpect(status().isOk());
+    }
+
+    @Test
+    public void actuatorStatus_succeeds() throws Exception {
+        this.mockMvc.perform(get("/actuator/health"));
+    }
+
+    @Test
+    public void actuatorPrometheus_succeeds() throws Exception {
+        this.mockMvc.perform(get("/actuator/prometheus"));
+    }
+
+}
diff --git a/dbrepo-container-service/rest-service/src/test/java/at/tuwien/endpoint/SwaggerComponentTest.java b/dbrepo-container-service/rest-service/src/test/java/at/tuwien/endpoint/SwaggerComponentTest.java
new file mode 100644
index 0000000000..7c68901e88
--- /dev/null
+++ b/dbrepo-container-service/rest-service/src/test/java/at/tuwien/endpoint/SwaggerComponentTest.java
@@ -0,0 +1,33 @@
+package at.tuwien.endpoint;
+
+import at.tuwien.BaseUnitTest;
+import lombok.extern.log4j.Log4j2;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit.jupiter.SpringExtension;
+import org.springframework.test.web.servlet.MockMvc;
+
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
+import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
+
+@Log4j2
+@ExtendWith(SpringExtension.class)
+@AutoConfigureMockMvc
+@SpringBootTest
+public class SwaggerComponentTest extends BaseUnitTest {
+
+    @Autowired
+    private MockMvc mockMvc;
+
+    @Test
+    public void swaggerUi_succeeds() throws Exception {
+        this.mockMvc.perform(get("/swagger-ui/index.html"))
+                .andDo(print())
+                .andExpect(status().isOk());
+    }
+
+}
diff --git a/dbrepo-container-service/services/src/main/java/at/tuwien/repository/elastic/DatabaseRepository.java b/dbrepo-container-service/services/src/main/java/at/tuwien/repository/elastic/DatabaseRepository.java
deleted file mode 100644
index aa60a6dbbc..0000000000
--- a/dbrepo-container-service/services/src/main/java/at/tuwien/repository/elastic/DatabaseRepository.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package at.tuwien.repository.elastic;
-
-import at.tuwien.entities.database.Database;
-import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
-import org.springframework.stereotype.Repository;
-
-@Repository(value = "ElasticDatabaseService")
-public interface DatabaseRepository extends ElasticsearchRepository<Database, Long> {
-}
\ No newline at end of file
diff --git a/dbrepo-database-service/rest-service/src/test/java/at/tuwien/endpoint/ActuatorComponentTest.java b/dbrepo-database-service/rest-service/src/test/java/at/tuwien/endpoint/ActuatorComponentTest.java
new file mode 100644
index 0000000000..cab709d9c6
--- /dev/null
+++ b/dbrepo-database-service/rest-service/src/test/java/at/tuwien/endpoint/ActuatorComponentTest.java
@@ -0,0 +1,52 @@
+package at.tuwien.endpoint;
+
+import at.tuwien.BaseUnitTest;
+import at.tuwien.config.IndexConfig;
+import com.rabbitmq.client.Channel;
+import lombok.extern.log4j.Log4j2;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.boot.test.mock.mockito.MockBean;
+import org.springframework.test.context.junit.jupiter.SpringExtension;
+import org.springframework.test.web.servlet.MockMvc;
+
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
+import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
+
+@Log4j2
+@ExtendWith(SpringExtension.class)
+@AutoConfigureMockMvc
+@SpringBootTest
+public class ActuatorComponentTest extends BaseUnitTest {
+
+    @Autowired
+    private MockMvc mockMvc;
+
+    @MockBean
+    private Channel channel;
+
+    @MockBean
+    private IndexConfig indexConfig;
+
+    @Test
+    public void actuatorInfo_succeeds() throws Exception {
+        this.mockMvc.perform(get("/actuator/info"))
+                .andDo(print())
+                .andExpect(status().isOk());
+    }
+
+    @Test
+    public void actuatorStatus_succeeds() throws Exception {
+        this.mockMvc.perform(get("/actuator/health"));
+    }
+
+    @Test
+    public void actuatorPrometheus_succeeds() throws Exception {
+        this.mockMvc.perform(get("/actuator/prometheus"));
+    }
+
+}
diff --git a/dbrepo-database-service/rest-service/src/test/java/at/tuwien/endpoint/SwaggerComponentTest.java b/dbrepo-database-service/rest-service/src/test/java/at/tuwien/endpoint/SwaggerComponentTest.java
new file mode 100644
index 0000000000..2f448ca36e
--- /dev/null
+++ b/dbrepo-database-service/rest-service/src/test/java/at/tuwien/endpoint/SwaggerComponentTest.java
@@ -0,0 +1,42 @@
+package at.tuwien.endpoint;
+
+import at.tuwien.BaseUnitTest;
+import at.tuwien.config.IndexConfig;
+import com.rabbitmq.client.Channel;
+import lombok.extern.log4j.Log4j2;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.boot.test.mock.mockito.MockBean;
+import org.springframework.test.context.junit.jupiter.SpringExtension;
+import org.springframework.test.web.servlet.MockMvc;
+
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
+import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
+
+@Log4j2
+@ExtendWith(SpringExtension.class)
+@AutoConfigureMockMvc
+@SpringBootTest
+public class SwaggerComponentTest extends BaseUnitTest {
+
+    @Autowired
+    private MockMvc mockMvc;
+
+    @MockBean
+    private Channel channel;
+
+    @MockBean
+    private IndexConfig indexConfig;
+
+    @Test
+    public void swaggerUi_succeeds() throws Exception {
+        this.mockMvc.perform(get("/swagger-ui/index.html"))
+                .andDo(print())
+                .andExpect(status().isOk());
+    }
+
+}
diff --git a/dbrepo-identifier-service/rest-service/src/test/java/at/tuwien/endpoint/ActuatorComponentTest.java b/dbrepo-identifier-service/rest-service/src/test/java/at/tuwien/endpoint/ActuatorComponentTest.java
new file mode 100644
index 0000000000..3677c7f045
--- /dev/null
+++ b/dbrepo-identifier-service/rest-service/src/test/java/at/tuwien/endpoint/ActuatorComponentTest.java
@@ -0,0 +1,48 @@
+package at.tuwien.endpoint;
+
+import at.tuwien.BaseUnitTest;
+import at.tuwien.config.IndexInitializer;
+import lombok.extern.log4j.Log4j2;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.boot.test.mock.mockito.MockBean;
+import org.springframework.test.context.junit.jupiter.SpringExtension;
+import org.springframework.test.web.servlet.MockMvc;
+
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
+import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
+
+@Log4j2
+@ExtendWith(SpringExtension.class)
+@AutoConfigureMockMvc
+@SpringBootTest
+public class ActuatorComponentTest extends BaseUnitTest {
+
+    @Autowired
+    private MockMvc mockMvc;
+
+    @MockBean
+    private IndexInitializer indexConfig;
+
+    @Test
+    public void actuatorInfo_succeeds() throws Exception {
+        this.mockMvc.perform(get("/actuator/info"))
+                .andDo(print())
+                .andExpect(status().isOk());
+    }
+
+    @Test
+    public void actuatorStatus_succeeds() throws Exception {
+        this.mockMvc.perform(get("/actuator/health"));
+    }
+
+    @Test
+    public void actuatorPrometheus_succeeds() throws Exception {
+        this.mockMvc.perform(get("/actuator/prometheus"));
+    }
+
+}
diff --git a/dbrepo-identifier-service/rest-service/src/test/java/at/tuwien/endpoint/SwaggerComponentTest.java b/dbrepo-identifier-service/rest-service/src/test/java/at/tuwien/endpoint/SwaggerComponentTest.java
new file mode 100644
index 0000000000..0caa396455
--- /dev/null
+++ b/dbrepo-identifier-service/rest-service/src/test/java/at/tuwien/endpoint/SwaggerComponentTest.java
@@ -0,0 +1,38 @@
+package at.tuwien.endpoint;
+
+import at.tuwien.BaseUnitTest;
+import at.tuwien.config.IndexInitializer;
+import lombok.extern.log4j.Log4j2;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.boot.test.mock.mockito.MockBean;
+import org.springframework.test.context.junit.jupiter.SpringExtension;
+import org.springframework.test.web.servlet.MockMvc;
+
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
+import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
+
+@Log4j2
+@ExtendWith(SpringExtension.class)
+@AutoConfigureMockMvc
+@SpringBootTest
+public class SwaggerComponentTest extends BaseUnitTest {
+
+    @Autowired
+    private MockMvc mockMvc;
+
+    @MockBean
+    private IndexInitializer indexConfig;
+
+    @Test
+    public void swaggerUi_succeeds() throws Exception {
+        this.mockMvc.perform(get("/swagger-ui/index.html"))
+                .andDo(print())
+                .andExpect(status().isOk());
+    }
+
+}
diff --git a/dbrepo-query-service/rest-service/src/test/java/at/tuwien/endpoint/ActuatorComponentTest.java b/dbrepo-query-service/rest-service/src/test/java/at/tuwien/endpoint/ActuatorComponentTest.java
new file mode 100644
index 0000000000..cab709d9c6
--- /dev/null
+++ b/dbrepo-query-service/rest-service/src/test/java/at/tuwien/endpoint/ActuatorComponentTest.java
@@ -0,0 +1,52 @@
+package at.tuwien.endpoint;
+
+import at.tuwien.BaseUnitTest;
+import at.tuwien.config.IndexConfig;
+import com.rabbitmq.client.Channel;
+import lombok.extern.log4j.Log4j2;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.boot.test.mock.mockito.MockBean;
+import org.springframework.test.context.junit.jupiter.SpringExtension;
+import org.springframework.test.web.servlet.MockMvc;
+
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
+import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
+
+@Log4j2
+@ExtendWith(SpringExtension.class)
+@AutoConfigureMockMvc
+@SpringBootTest
+public class ActuatorComponentTest extends BaseUnitTest {
+
+    @Autowired
+    private MockMvc mockMvc;
+
+    @MockBean
+    private Channel channel;
+
+    @MockBean
+    private IndexConfig indexConfig;
+
+    @Test
+    public void actuatorInfo_succeeds() throws Exception {
+        this.mockMvc.perform(get("/actuator/info"))
+                .andDo(print())
+                .andExpect(status().isOk());
+    }
+
+    @Test
+    public void actuatorStatus_succeeds() throws Exception {
+        this.mockMvc.perform(get("/actuator/health"));
+    }
+
+    @Test
+    public void actuatorPrometheus_succeeds() throws Exception {
+        this.mockMvc.perform(get("/actuator/prometheus"));
+    }
+
+}
diff --git a/dbrepo-query-service/rest-service/src/test/java/at/tuwien/endpoint/SwaggerComponentTest.java b/dbrepo-query-service/rest-service/src/test/java/at/tuwien/endpoint/SwaggerComponentTest.java
new file mode 100644
index 0000000000..2f448ca36e
--- /dev/null
+++ b/dbrepo-query-service/rest-service/src/test/java/at/tuwien/endpoint/SwaggerComponentTest.java
@@ -0,0 +1,42 @@
+package at.tuwien.endpoint;
+
+import at.tuwien.BaseUnitTest;
+import at.tuwien.config.IndexConfig;
+import com.rabbitmq.client.Channel;
+import lombok.extern.log4j.Log4j2;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.boot.test.mock.mockito.MockBean;
+import org.springframework.test.context.junit.jupiter.SpringExtension;
+import org.springframework.test.web.servlet.MockMvc;
+
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
+import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
+
+@Log4j2
+@ExtendWith(SpringExtension.class)
+@AutoConfigureMockMvc
+@SpringBootTest
+public class SwaggerComponentTest extends BaseUnitTest {
+
+    @Autowired
+    private MockMvc mockMvc;
+
+    @MockBean
+    private Channel channel;
+
+    @MockBean
+    private IndexConfig indexConfig;
+
+    @Test
+    public void swaggerUi_succeeds() throws Exception {
+        this.mockMvc.perform(get("/swagger-ui/index.html"))
+                .andDo(print())
+                .andExpect(status().isOk());
+    }
+
+}
diff --git a/dbrepo-semantics-service/rest-service/src/test/java/at/tuwien/endpoint/ActuatorComponentTest.java b/dbrepo-semantics-service/rest-service/src/test/java/at/tuwien/endpoint/ActuatorComponentTest.java
new file mode 100644
index 0000000000..3cfe183823
--- /dev/null
+++ b/dbrepo-semantics-service/rest-service/src/test/java/at/tuwien/endpoint/ActuatorComponentTest.java
@@ -0,0 +1,43 @@
+package at.tuwien.endpoint;
+
+import at.tuwien.BaseUnitTest;
+import lombok.extern.log4j.Log4j2;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit.jupiter.SpringExtension;
+import org.springframework.test.web.servlet.MockMvc;
+
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
+import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
+
+@Log4j2
+@ExtendWith(SpringExtension.class)
+@AutoConfigureMockMvc
+@SpringBootTest
+public class ActuatorComponentTest extends BaseUnitTest {
+
+    @Autowired
+    private MockMvc mockMvc;
+
+    @Test
+    public void actuatorInfo_succeeds() throws Exception {
+        this.mockMvc.perform(get("/actuator/info"))
+                .andDo(print())
+                .andExpect(status().isOk());
+    }
+
+    @Test
+    public void actuatorStatus_succeeds() throws Exception {
+        this.mockMvc.perform(get("/actuator/health"));
+    }
+
+    @Test
+    public void actuatorPrometheus_succeeds() throws Exception {
+        this.mockMvc.perform(get("/actuator/prometheus"));
+    }
+
+}
diff --git a/dbrepo-semantics-service/rest-service/src/test/java/at/tuwien/endpoint/SwaggerComponentTest.java b/dbrepo-semantics-service/rest-service/src/test/java/at/tuwien/endpoint/SwaggerComponentTest.java
new file mode 100644
index 0000000000..7c68901e88
--- /dev/null
+++ b/dbrepo-semantics-service/rest-service/src/test/java/at/tuwien/endpoint/SwaggerComponentTest.java
@@ -0,0 +1,33 @@
+package at.tuwien.endpoint;
+
+import at.tuwien.BaseUnitTest;
+import lombok.extern.log4j.Log4j2;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit.jupiter.SpringExtension;
+import org.springframework.test.web.servlet.MockMvc;
+
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
+import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
+
+@Log4j2
+@ExtendWith(SpringExtension.class)
+@AutoConfigureMockMvc
+@SpringBootTest
+public class SwaggerComponentTest extends BaseUnitTest {
+
+    @Autowired
+    private MockMvc mockMvc;
+
+    @Test
+    public void swaggerUi_succeeds() throws Exception {
+        this.mockMvc.perform(get("/swagger-ui/index.html"))
+                .andDo(print())
+                .andExpect(status().isOk());
+    }
+
+}
diff --git a/dbrepo-table-service/rest-service/src/test/java/at/tuwien/endpoint/ActuatorComponentTest.java b/dbrepo-table-service/rest-service/src/test/java/at/tuwien/endpoint/ActuatorComponentTest.java
new file mode 100644
index 0000000000..cab709d9c6
--- /dev/null
+++ b/dbrepo-table-service/rest-service/src/test/java/at/tuwien/endpoint/ActuatorComponentTest.java
@@ -0,0 +1,52 @@
+package at.tuwien.endpoint;
+
+import at.tuwien.BaseUnitTest;
+import at.tuwien.config.IndexConfig;
+import com.rabbitmq.client.Channel;
+import lombok.extern.log4j.Log4j2;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.boot.test.mock.mockito.MockBean;
+import org.springframework.test.context.junit.jupiter.SpringExtension;
+import org.springframework.test.web.servlet.MockMvc;
+
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
+import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
+
+@Log4j2
+@ExtendWith(SpringExtension.class)
+@AutoConfigureMockMvc
+@SpringBootTest
+public class ActuatorComponentTest extends BaseUnitTest {
+
+    @Autowired
+    private MockMvc mockMvc;
+
+    @MockBean
+    private Channel channel;
+
+    @MockBean
+    private IndexConfig indexConfig;
+
+    @Test
+    public void actuatorInfo_succeeds() throws Exception {
+        this.mockMvc.perform(get("/actuator/info"))
+                .andDo(print())
+                .andExpect(status().isOk());
+    }
+
+    @Test
+    public void actuatorStatus_succeeds() throws Exception {
+        this.mockMvc.perform(get("/actuator/health"));
+    }
+
+    @Test
+    public void actuatorPrometheus_succeeds() throws Exception {
+        this.mockMvc.perform(get("/actuator/prometheus"));
+    }
+
+}
diff --git a/dbrepo-table-service/rest-service/src/test/java/at/tuwien/endpoint/SwaggerComponentTest.java b/dbrepo-table-service/rest-service/src/test/java/at/tuwien/endpoint/SwaggerComponentTest.java
new file mode 100644
index 0000000000..2f448ca36e
--- /dev/null
+++ b/dbrepo-table-service/rest-service/src/test/java/at/tuwien/endpoint/SwaggerComponentTest.java
@@ -0,0 +1,42 @@
+package at.tuwien.endpoint;
+
+import at.tuwien.BaseUnitTest;
+import at.tuwien.config.IndexConfig;
+import com.rabbitmq.client.Channel;
+import lombok.extern.log4j.Log4j2;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.boot.test.mock.mockito.MockBean;
+import org.springframework.test.context.junit.jupiter.SpringExtension;
+import org.springframework.test.web.servlet.MockMvc;
+
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
+import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
+
+@Log4j2
+@ExtendWith(SpringExtension.class)
+@AutoConfigureMockMvc
+@SpringBootTest
+public class SwaggerComponentTest extends BaseUnitTest {
+
+    @Autowired
+    private MockMvc mockMvc;
+
+    @MockBean
+    private Channel channel;
+
+    @MockBean
+    private IndexConfig indexConfig;
+
+    @Test
+    public void swaggerUi_succeeds() throws Exception {
+        this.mockMvc.perform(get("/swagger-ui/index.html"))
+                .andDo(print())
+                .andExpect(status().isOk());
+    }
+
+}
diff --git a/dbrepo-user-service/rest-service/src/test/java/at/tuwien/endpoint/ActuatorComponentTest.java b/dbrepo-user-service/rest-service/src/test/java/at/tuwien/endpoint/ActuatorComponentTest.java
new file mode 100644
index 0000000000..041e444616
--- /dev/null
+++ b/dbrepo-user-service/rest-service/src/test/java/at/tuwien/endpoint/ActuatorComponentTest.java
@@ -0,0 +1,48 @@
+package at.tuwien.endpoint;
+
+import at.tuwien.BaseUnitTest;
+import com.rabbitmq.client.Channel;
+import lombok.extern.log4j.Log4j2;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.boot.test.mock.mockito.MockBean;
+import org.springframework.test.context.junit.jupiter.SpringExtension;
+import org.springframework.test.web.servlet.MockMvc;
+
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
+import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
+
+@Log4j2
+@ExtendWith(SpringExtension.class)
+@AutoConfigureMockMvc
+@SpringBootTest
+public class ActuatorComponentTest extends BaseUnitTest {
+
+    @Autowired
+    private MockMvc mockMvc;
+
+    @MockBean
+    private Channel channel;
+
+    @Test
+    public void actuatorInfo_succeeds() throws Exception {
+        this.mockMvc.perform(get("/actuator/info"))
+                .andDo(print())
+                .andExpect(status().isOk());
+    }
+
+    @Test
+    public void actuatorStatus_succeeds() throws Exception {
+        this.mockMvc.perform(get("/actuator/health"));
+    }
+
+    @Test
+    public void actuatorPrometheus_succeeds() throws Exception {
+        this.mockMvc.perform(get("/actuator/prometheus"));
+    }
+
+}
diff --git a/dbrepo-user-service/rest-service/src/test/java/at/tuwien/endpoint/SwaggerComponentTest.java b/dbrepo-user-service/rest-service/src/test/java/at/tuwien/endpoint/SwaggerComponentTest.java
new file mode 100644
index 0000000000..431a54052c
--- /dev/null
+++ b/dbrepo-user-service/rest-service/src/test/java/at/tuwien/endpoint/SwaggerComponentTest.java
@@ -0,0 +1,38 @@
+package at.tuwien.endpoint;
+
+import at.tuwien.BaseUnitTest;
+import com.rabbitmq.client.Channel;
+import lombok.extern.log4j.Log4j2;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.boot.test.mock.mockito.MockBean;
+import org.springframework.test.context.junit.jupiter.SpringExtension;
+import org.springframework.test.web.servlet.MockMvc;
+
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
+import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
+
+@Log4j2
+@ExtendWith(SpringExtension.class)
+@AutoConfigureMockMvc
+@SpringBootTest
+public class SwaggerComponentTest extends BaseUnitTest {
+
+    @Autowired
+    private MockMvc mockMvc;
+
+    @MockBean
+    private Channel channel;
+
+    @Test
+    public void swaggerUi_succeeds() throws Exception {
+        this.mockMvc.perform(get("/swagger-ui/index.html"))
+                .andDo(print())
+                .andExpect(status().isOk());
+    }
+
+}
diff --git a/dbrepo.conf b/dbrepo.conf
index bd063fbebc..54bcc83855 100644
--- a/dbrepo.conf
+++ b/dbrepo.conf
@@ -47,7 +47,7 @@ upstream semantics {
 }
 
 upstream search {
-    server search-service:9200;
+    server search-db:9200;
 }
 
 upstream ui {
-- 
GitLab