diff --git a/backend/src/main/java/rocks/inspectit/gepard/agentmanager/connection/controller/ConnectionController.java b/backend/src/main/java/rocks/inspectit/gepard/agentmanager/connection/controller/ConnectionController.java index 08a2cd9d..4c6bed35 100644 --- a/backend/src/main/java/rocks/inspectit/gepard/agentmanager/connection/controller/ConnectionController.java +++ b/backend/src/main/java/rocks/inspectit/gepard/agentmanager/connection/controller/ConnectionController.java @@ -8,8 +8,9 @@ import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.support.ServletUriComponentsBuilder; +import rocks.inspectit.gepard.agentmanager.connection.model.Connection; +import rocks.inspectit.gepard.agentmanager.connection.model.dto.ConnectionDto; import rocks.inspectit.gepard.agentmanager.connection.model.dto.CreateConnectionRequest; -import rocks.inspectit.gepard.agentmanager.connection.model.dto.CreateConnectionResponse; import rocks.inspectit.gepard.agentmanager.connection.service.ConnectionService; /** @@ -25,22 +26,22 @@ public class ConnectionController { @PostMapping public ResponseEntity connect(@Valid @RequestBody CreateConnectionRequest connectRequest) { - CreateConnectionResponse connectionDto = connectionService.handleConnectRequest(connectRequest); + Connection connection = connectionService.handleConnectRequest(connectRequest); return ResponseEntity.created( ServletUriComponentsBuilder.fromCurrentRequest() .path("/{id}") - .buildAndExpand(connectionDto.id()) + .buildAndExpand(connection.getId()) .toUri()) .build(); } @GetMapping - public ResponseEntity> getConnections() { + public ResponseEntity> getConnections() { return ResponseEntity.ok(connectionService.getConnections()); } @GetMapping("/{id}") - public ResponseEntity getConnection(@PathVariable UUID id) { + public ResponseEntity getConnection(@PathVariable UUID id) { return ResponseEntity.ok(connectionService.getConnection(id)); } } diff --git a/backend/src/main/java/rocks/inspectit/gepard/agentmanager/connection/model/dto/CreateConnectionResponse.java b/backend/src/main/java/rocks/inspectit/gepard/agentmanager/connection/model/dto/ConnectionDto.java similarity index 85% rename from backend/src/main/java/rocks/inspectit/gepard/agentmanager/connection/model/dto/CreateConnectionResponse.java rename to backend/src/main/java/rocks/inspectit/gepard/agentmanager/connection/model/dto/ConnectionDto.java index 211ad563..cb9da089 100644 --- a/backend/src/main/java/rocks/inspectit/gepard/agentmanager/connection/model/dto/CreateConnectionResponse.java +++ b/backend/src/main/java/rocks/inspectit/gepard/agentmanager/connection/model/dto/ConnectionDto.java @@ -8,7 +8,7 @@ /** Represents a connection response. */ @Builder -public record CreateConnectionResponse( +public record ConnectionDto( UUID id, LocalDateTime registrationTime, String serviceName, @@ -18,8 +18,8 @@ public record CreateConnectionResponse( Long startTime, String javaVersion) { - public static CreateConnectionResponse fromConnection(Connection connection) { - return CreateConnectionResponse.builder() + public static ConnectionDto fromConnection(Connection connection) { + return ConnectionDto.builder() .id(connection.getId()) .registrationTime(connection.getRegistrationTime()) .serviceName(connection.getAgent().getServiceName()) diff --git a/backend/src/main/java/rocks/inspectit/gepard/agentmanager/connection/service/ConnectionService.java b/backend/src/main/java/rocks/inspectit/gepard/agentmanager/connection/service/ConnectionService.java index 817ef28e..15b1e2a3 100644 --- a/backend/src/main/java/rocks/inspectit/gepard/agentmanager/connection/service/ConnectionService.java +++ b/backend/src/main/java/rocks/inspectit/gepard/agentmanager/connection/service/ConnectionService.java @@ -9,8 +9,8 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import rocks.inspectit.gepard.agentmanager.connection.model.Connection; +import rocks.inspectit.gepard.agentmanager.connection.model.dto.ConnectionDto; import rocks.inspectit.gepard.agentmanager.connection.model.dto.CreateConnectionRequest; -import rocks.inspectit.gepard.agentmanager.connection.model.dto.CreateConnectionResponse; /** Service-Implementation for handling agent connection requests. */ @Slf4j @@ -24,22 +24,22 @@ public class ConnectionService { * Handles a connection request from an agent. * * @param connectRequest The request for the new connection to be created. - * @return CreateConnectionResponse The response containing all saved information. + * @return Connection The response containing all saved information. */ - public CreateConnectionResponse handleConnectRequest(CreateConnectionRequest connectRequest) { + public Connection handleConnectRequest(CreateConnectionRequest connectRequest) { Connection connection = CreateConnectionRequest.toConnection(connectRequest); connectionCache.put(connection.getId(), connection); - return CreateConnectionResponse.fromConnection(connection); + return connection; } /** * Returns all connections in the cache. * - * @return List All connections from the cache. + * @return List All connections from the cache. */ - public List getConnections() { - return connectionCache.values().stream().map(CreateConnectionResponse::fromConnection).toList(); + public List getConnections() { + return connectionCache.values().stream().map(ConnectionDto::fromConnection).toList(); } /** @@ -48,10 +48,10 @@ public List getConnections() { * @param id The id of the connection. * @return ConnectionDto The connection. */ - public CreateConnectionResponse getConnection(UUID id) { + public ConnectionDto getConnection(UUID id) { if (!connectionCache.containsKey(id)) { throw new NoSuchElementException("No connection with id " + id + " found in cache."); } - return CreateConnectionResponse.fromConnection(connectionCache.get(id)); + return ConnectionDto.fromConnection(connectionCache.get(id)); } } diff --git a/backend/src/test/java/rocks/inspectit/gepard/agentmanager/connection/controller/ConnectionControllerTest.java b/backend/src/test/java/rocks/inspectit/gepard/agentmanager/connection/controller/ConnectionControllerTest.java index 2fc55e41..b23c515f 100644 --- a/backend/src/test/java/rocks/inspectit/gepard/agentmanager/connection/controller/ConnectionControllerTest.java +++ b/backend/src/test/java/rocks/inspectit/gepard/agentmanager/connection/controller/ConnectionControllerTest.java @@ -16,8 +16,8 @@ import org.springframework.http.MediaType; import org.springframework.test.web.servlet.MockMvc; import rocks.inspectit.gepard.agentmanager.connection.model.Connection; +import rocks.inspectit.gepard.agentmanager.connection.model.dto.ConnectionDto; import rocks.inspectit.gepard.agentmanager.connection.model.dto.CreateConnectionRequest; -import rocks.inspectit.gepard.agentmanager.connection.model.dto.CreateConnectionResponse; import rocks.inspectit.gepard.agentmanager.connection.service.ConnectionService; @WebMvcTest(controllers = ConnectionController.class) @@ -60,8 +60,7 @@ void connect_whenEverythingIsValid_shouldReturnOk() throws Exception { .build(); Connection connection = CreateConnectionRequest.toConnection(createConnectionRequest); - when(connectionService.handleConnectRequest(createConnectionRequest)) - .thenReturn(CreateConnectionResponse.fromConnection(connection)); + when(connectionService.handleConnectRequest(createConnectionRequest)).thenReturn(connection); mockMvc .perform( @@ -86,15 +85,15 @@ void get_connections_whenEverythingIsValid_shouldReturnOk() throws Exception { @Test void get_connection_whenEverythingIsValid_shouldReturnOk() throws Exception { UUID uuid = UUID.randomUUID(); - CreateConnectionResponse connection = - new CreateConnectionResponse( + ConnectionDto connectionDto = + new ConnectionDto( uuid, LocalDateTime.now(), "service name", "5", "7", 42L, 123456789L, "22"); - when(connectionService.getConnection(uuid)).thenReturn(connection); + when(connectionService.getConnection(uuid)).thenReturn(connectionDto); mockMvc .perform(get("/api/v1/connections/{id}", uuid)) .andExpect(status().isOk()) .andExpect(content().contentType(MediaType.APPLICATION_JSON)) - .andExpect(content().json(objectMapper.writeValueAsString(connection))); + .andExpect(content().json(objectMapper.writeValueAsString(connectionDto))); } } diff --git a/backend/src/test/java/rocks/inspectit/gepard/agentmanager/connection/service/ConnectionServiceTest.java b/backend/src/test/java/rocks/inspectit/gepard/agentmanager/connection/service/ConnectionServiceTest.java index 75fbecc5..307ecd1a 100644 --- a/backend/src/test/java/rocks/inspectit/gepard/agentmanager/connection/service/ConnectionServiceTest.java +++ b/backend/src/test/java/rocks/inspectit/gepard/agentmanager/connection/service/ConnectionServiceTest.java @@ -11,8 +11,9 @@ import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.InjectMocks; import org.mockito.junit.jupiter.MockitoExtension; +import rocks.inspectit.gepard.agentmanager.connection.model.Connection; +import rocks.inspectit.gepard.agentmanager.connection.model.dto.ConnectionDto; import rocks.inspectit.gepard.agentmanager.connection.model.dto.CreateConnectionRequest; -import rocks.inspectit.gepard.agentmanager.connection.model.dto.CreateConnectionResponse; @ExtendWith(MockitoExtension.class) class ConnectionServiceTest { @@ -31,16 +32,16 @@ void testHandleConnectRequest() { .serviceName("ServiceName") .build(); - CreateConnectionResponse response = - connectionService.handleConnectRequest(createConnectionRequest); + Connection response = connectionService.handleConnectRequest(createConnectionRequest); - assertEquals(createConnectionRequest.startTime(), response.startTime()); - assertEquals(createConnectionRequest.javaVersion(), response.javaVersion()); - assertEquals(createConnectionRequest.otelVersion(), response.otelVersion()); - assertEquals(createConnectionRequest.gepardVersion(), response.gepardVersion()); - assertEquals(createConnectionRequest.pid(), response.pid()); - assertEquals(createConnectionRequest.serviceName(), response.serviceName()); - assertNotNull(response.id()); + assertEquals( + createConnectionRequest.startTime(), response.getAgent().getStartTime().toEpochMilli()); + assertEquals(createConnectionRequest.javaVersion(), response.getAgent().getJavaVersion()); + assertEquals(createConnectionRequest.otelVersion(), response.getAgent().getOtelVersion()); + assertEquals(createConnectionRequest.gepardVersion(), response.getAgent().getGepardVersion()); + assertEquals(createConnectionRequest.pid(), response.getAgent().getPid()); + assertEquals(createConnectionRequest.serviceName(), response.getAgent().getServiceName()); + assertNotNull(response.getId()); } @Test @@ -57,14 +58,14 @@ void testGetConnections() { connectionService.handleConnectRequest(createConnectionRequest); connectionService.handleConnectRequest(createConnectionRequest); - List response = connectionService.getConnections(); + List response = connectionService.getConnections(); assertEquals(2, response.size()); } @Test void testGetConnectionsEmptyResult() { - List response = connectionService.getConnections(); + List response = connectionService.getConnections(); assertEquals(0, response.size()); } @@ -79,19 +80,17 @@ void testGetConnection() { .pid(4435L) .serviceName("ServiceName") .build(); - CreateConnectionResponse createConnectionResponse = - connectionService.handleConnectRequest(createConnectionRequest); + Connection connection = connectionService.handleConnectRequest(createConnectionRequest); - CreateConnectionResponse response = - connectionService.getConnection(createConnectionResponse.id()); + ConnectionDto connectionDto = connectionService.getConnection(connection.getId()); - assertEquals(createConnectionResponse.id(), response.id()); - assertEquals(createConnectionRequest.startTime(), response.startTime()); - assertEquals(createConnectionRequest.javaVersion(), response.javaVersion()); - assertEquals(createConnectionRequest.otelVersion(), response.otelVersion()); - assertEquals(createConnectionRequest.gepardVersion(), response.gepardVersion()); - assertEquals(createConnectionRequest.pid(), response.pid()); - assertEquals(createConnectionRequest.serviceName(), response.serviceName()); + assertEquals(connection.getId(), connectionDto.id()); + assertEquals(createConnectionRequest.startTime(), connectionDto.startTime()); + assertEquals(createConnectionRequest.javaVersion(), connectionDto.javaVersion()); + assertEquals(createConnectionRequest.otelVersion(), connectionDto.otelVersion()); + assertEquals(createConnectionRequest.gepardVersion(), connectionDto.gepardVersion()); + assertEquals(createConnectionRequest.pid(), connectionDto.pid()); + assertEquals(createConnectionRequest.serviceName(), connectionDto.serviceName()); } @Test