refactor: consolidate test mock constants into shared Mockdata class

Moved Mockdata from the connection package to the root test package and
extended it with MOCK_USER, MOCK_PASS, MOCK_TITLE, and MOCK_DESCRIPTION
so all test modules share a single source of truth. Removed duplicate
inline constants from ConnectionControllerTest, HomeboxIntegrationTest,
and SearchControllerTest.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-20 17:36:22 +02:00
parent 1ba85e129e
commit a7b984ca84
7 changed files with 27 additions and 29 deletions
@@ -0,0 +1,13 @@
package com.vaessl.app;
public final class Mockdata {
private Mockdata() {}
public static final String MOCK_URL = "http://localhost:1234";
public static final String MOCK_SERVICE_TYPE = "SERVICE_TYPE";
public static final String MOCK_USER = "user";
public static final String MOCK_PASS = "pw";
public static final String MOCK_TITLE = "title";
public static final String MOCK_DESCRIPTION = "desc";
}
@@ -1,5 +1,7 @@
package com.vaessl.app.connection; package com.vaessl.app.connection;
import static com.vaessl.app.Mockdata.*;
import static com.vaessl.app.connection.Endpoint.*; import static com.vaessl.app.connection.Endpoint.*;
import static com.vaessl.app.connection.ServiceType.*; import static com.vaessl.app.connection.ServiceType.*;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
@@ -27,8 +29,6 @@ class ConnectionControllerTest {
@Autowired @Autowired
MockMvc mockMvc; MockMvc mockMvc;
private static final String TEST_USER = "admin";
private static final String TEST_PASS = "pw";
private static final String LOGIN_PATH = LOGIN.getValue(); private static final String LOGIN_PATH = LOGIN.getValue();
private static final String STATUS_PATH = CONNECTION_STATUS.getValue(); private static final String STATUS_PATH = CONNECTION_STATUS.getValue();
private static final String LOGOUT_PATH = "/connections/HOMEBOX"; private static final String LOGOUT_PATH = "/connections/HOMEBOX";
@@ -71,7 +71,7 @@ class ConnectionControllerTest {
mockMvc.perform(get(STATUS_PATH).cookie(sessionCookie)).andExpect(status().isOk()) mockMvc.perform(get(STATUS_PATH).cookie(sessionCookie)).andExpect(status().isOk())
.andExpect(jsonPath("$.length()").value(1)) .andExpect(jsonPath("$.length()").value(1))
.andExpect(jsonPath("$[0].serviceType").value(HOMEBOX.getValue())) .andExpect(jsonPath("$[0].serviceType").value(HOMEBOX.getValue()))
.andExpect(jsonPath("$[0].username").value(TEST_USER)) .andExpect(jsonPath("$[0].username").value(MOCK_USER))
.andExpect(jsonPath("$[0].appUrl").value(wm.getHttpBaseUrl())) .andExpect(jsonPath("$[0].appUrl").value(wm.getHttpBaseUrl()))
.andExpect(jsonPath("$[0].connected").value(true)); .andExpect(jsonPath("$[0].connected").value(true));
} }
@@ -149,6 +149,6 @@ class ConnectionControllerTest {
"username": "%s", "username": "%s",
"password": "%s" "password": "%s"
} }
""".formatted(wm.getHttpBaseUrl(), TEST_USER, TEST_PASS); """.formatted(wm.getHttpBaseUrl(), MOCK_USER, MOCK_PASS);
} }
} }
@@ -1,5 +1,6 @@
package com.vaessl.app.connection; package com.vaessl.app.connection;
import static com.vaessl.app.Mockdata.*;
import static org.junit.jupiter.api.Assertions.assertThrows; import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.doThrow; import static org.mockito.Mockito.doThrow;
@@ -17,8 +18,6 @@ import org.mockito.junit.jupiter.MockitoExtension;
import com.vaessl.app.exception.EmptyCredentialsException; import com.vaessl.app.exception.EmptyCredentialsException;
import static com.vaessl.app.connection.Mockdata.*;
@ExtendWith(MockitoExtension.class) @ExtendWith(MockitoExtension.class)
class ConnectionServiceTest { class ConnectionServiceTest {
@@ -5,9 +5,8 @@ import static org.junit.jupiter.api.Assertions.assertThrows;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import com.vaessl.app.exception.EmptyCredentialsException; import com.vaessl.app.exception.EmptyCredentialsException;
import static com.vaessl.app.Mockdata.*;
import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThat;
import static com.vaessl.app.connection.Mockdata.*;
class HomeboxConnectionProviderTest { class HomeboxConnectionProviderTest {
@@ -1,5 +1,6 @@
package com.vaessl.app.connection; package com.vaessl.app.connection;
import static com.vaessl.app.Mockdata.*;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.resttestclient.TestRestTemplate; import org.springframework.boot.resttestclient.TestRestTemplate;
@@ -41,9 +42,6 @@ class HomeboxIntegrationTest {
} }
"""; """;
private static final String TEST_USER = "admin";
private static final String TEST_PASS = "pw";
/** /**
* Returns Token and status code OK when login is successful. * Returns Token and status code OK when login is successful.
* *
@@ -139,7 +137,7 @@ class HomeboxIntegrationTest {
@Test @Test
void shouldReturnWrongServiceTypeException(WireMockRuntimeInfo wm) { void shouldReturnWrongServiceTypeException(WireMockRuntimeInfo wm) {
ConnectionRequest wrongServiceTypeReq = new ConnectionRequest(wm.getHttpBaseUrl(), ConnectionRequest wrongServiceTypeReq = new ConnectionRequest(wm.getHttpBaseUrl(),
"wrong-service-type", TEST_USER, TEST_PASS, false); "wrong-service-type", MOCK_USER, MOCK_PASS, false);
ResponseEntity<String> response = ResponseEntity<String> response =
restTemplate.postForEntity(LOGIN.getValue(), wrongServiceTypeReq, String.class); restTemplate.postForEntity(LOGIN.getValue(), wrongServiceTypeReq, String.class);
@@ -182,7 +180,7 @@ class HomeboxIntegrationTest {
@Test @Test
void shouldReturnEmptyCredentialsExceptionWhenCredsAreMissing(WireMockRuntimeInfo wm) { void shouldReturnEmptyCredentialsExceptionWhenCredsAreMissing(WireMockRuntimeInfo wm) {
ConnectionRequest missingCredentials = new ConnectionRequest(wm.getHttpBaseUrl(), ConnectionRequest missingCredentials = new ConnectionRequest(wm.getHttpBaseUrl(),
HOMEBOX.getValue(), TEST_USER, null, false); HOMEBOX.getValue(), MOCK_USER, null, false);
ResponseEntity<String> response = ResponseEntity<String> response =
restTemplate.postForEntity(LOGIN.getValue(), missingCredentials, String.class); restTemplate.postForEntity(LOGIN.getValue(), missingCredentials, String.class);
@@ -198,7 +196,7 @@ class HomeboxIntegrationTest {
* @return a mock api connection request. * @return a mock api connection request.
*/ */
private ConnectionRequest connectionRequest(WireMockRuntimeInfo wm) { private ConnectionRequest connectionRequest(WireMockRuntimeInfo wm) {
return new ConnectionRequest(wm.getHttpBaseUrl(), HOMEBOX.getValue(), TEST_USER, TEST_PASS, return new ConnectionRequest(wm.getHttpBaseUrl(), HOMEBOX.getValue(), MOCK_USER, MOCK_PASS,
null); null);
} }
} }
@@ -1,9 +0,0 @@
package com.vaessl.app.connection;
public final class Mockdata {
private Mockdata() {}
public static final String MOCK_URL = "http://localhost:1234";
public static final String MOCK_SERVICE_TYPE = "SERVICE_TYPE";
}
@@ -1,5 +1,7 @@
package com.vaessl.app.search; package com.vaessl.app.search;
import static com.vaessl.app.Mockdata.MOCK_PASS;
import static com.vaessl.app.Mockdata.MOCK_USER;
import static com.vaessl.app.connection.Endpoint.*; import static com.vaessl.app.connection.Endpoint.*;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
@@ -24,10 +26,6 @@ class SearchControllerTest {
@Autowired @Autowired
MockMvc mockMvc; MockMvc mockMvc;
private static final String TEST_USER = "admin";
private static final String TEST_PASS = "pw";
private static final String QUERY_ALL_ITEMS = HOMEBOX_QUERY_ALL_ITEMS.getValue(); private static final String QUERY_ALL_ITEMS = HOMEBOX_QUERY_ALL_ITEMS.getValue();
private static final String LOGIN_PATH = LOGIN.getValue(); private static final String LOGIN_PATH = LOGIN.getValue();
@@ -138,7 +136,7 @@ class SearchControllerTest {
"serviceType": "%s", "serviceType": "%s",
"username": "%s" "username": "%s"
} }
""".formatted(wm.getHttpBaseUrl(), serviceType, TEST_USER); """.formatted(wm.getHttpBaseUrl(), serviceType, MOCK_USER);
} }
private String connectionRequestBody(WireMockRuntimeInfo wm) { private String connectionRequestBody(WireMockRuntimeInfo wm) {
@@ -149,6 +147,6 @@ class SearchControllerTest {
"username": "%s", "username": "%s",
"password": "%s" "password": "%s"
} }
""".formatted(wm.getHttpBaseUrl(), TEST_USER, TEST_PASS); """.formatted(wm.getHttpBaseUrl(), MOCK_USER, MOCK_PASS);
} }
} }