Skip to content

Commit

Permalink
chore: Refactor DTO namings and adjust tests
Browse files Browse the repository at this point in the history
  • Loading branch information
binarycoded committed Aug 27, 2024
1 parent 1fb0262 commit 1d88be3
Show file tree
Hide file tree
Showing 5 changed files with 46 additions and 47 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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;

/**
Expand All @@ -25,22 +26,22 @@ public class ConnectionController {

@PostMapping
public ResponseEntity<Void> 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<List<CreateConnectionResponse>> getConnections() {
public ResponseEntity<List<ConnectionDto>> getConnections() {
return ResponseEntity.ok(connectionService.getConnections());
}

@GetMapping("/{id}")
public ResponseEntity<CreateConnectionResponse> getConnection(@PathVariable UUID id) {
public ResponseEntity<ConnectionDto> getConnection(@PathVariable UUID id) {
return ResponseEntity.ok(connectionService.getConnection(id));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

/** Represents a connection response. */
@Builder
public record CreateConnectionResponse(
public record ConnectionDto(
UUID id,
LocalDateTime registrationTime,
String serviceName,
Expand All @@ -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())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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<CreateConnectionResponse> All connections from the cache.
* @return List<ConnectionDto> All connections from the cache.
*/
public List<CreateConnectionResponse> getConnections() {
return connectionCache.values().stream().map(CreateConnectionResponse::fromConnection).toList();
public List<ConnectionDto> getConnections() {
return connectionCache.values().stream().map(ConnectionDto::fromConnection).toList();
}

/**
Expand All @@ -48,10 +48,10 @@ public List<CreateConnectionResponse> 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));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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(
Expand All @@ -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)));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand All @@ -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
Expand All @@ -57,14 +58,14 @@ void testGetConnections() {
connectionService.handleConnectRequest(createConnectionRequest);
connectionService.handleConnectRequest(createConnectionRequest);

List<CreateConnectionResponse> response = connectionService.getConnections();
List<ConnectionDto> response = connectionService.getConnections();

assertEquals(2, response.size());
}

@Test
void testGetConnectionsEmptyResult() {
List<CreateConnectionResponse> response = connectionService.getConnections();
List<ConnectionDto> response = connectionService.getConnections();
assertEquals(0, response.size());
}

Expand All @@ -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
Expand Down

0 comments on commit 1d88be3

Please sign in to comment.