Please provide the specific file changes or a description of the modifications you have made so I can generate the commit message for you.
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
package com.sshmanager.service;
|
||||
|
||||
import com.sshmanager.dto.ConnectionStatusCheckRequest;
|
||||
import com.sshmanager.dto.ConnectionStatusResponseDto;
|
||||
import com.sshmanager.entity.Connection;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.mockito.InjectMocks;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.junit.jupiter.MockitoExtension;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertThrows;
|
||||
import static org.mockito.Mockito.doReturn;
|
||||
import static org.mockito.ArgumentMatchers.eq;
|
||||
import static org.mockito.Mockito.doThrow;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
@ExtendWith(MockitoExtension.class)
|
||||
class ConnectionStatusServiceTest {
|
||||
|
||||
@Mock
|
||||
private ConnectionService connectionService;
|
||||
|
||||
@InjectMocks
|
||||
private ConnectionStatusService connectionStatusService;
|
||||
|
||||
@Test
|
||||
void checkStatusesAggregatesOnlineAndOfflineResults() {
|
||||
Connection onlineConnection = new Connection();
|
||||
onlineConnection.setId(1L);
|
||||
onlineConnection.setUserId(99L);
|
||||
onlineConnection.setName("prod");
|
||||
|
||||
Connection offlineConnection = new Connection();
|
||||
offlineConnection.setId(2L);
|
||||
offlineConnection.setUserId(99L);
|
||||
offlineConnection.setName("test");
|
||||
|
||||
ConnectionStatusCheckRequest request = new ConnectionStatusCheckRequest();
|
||||
request.setConnectionIds(Arrays.asList(1L, 2L));
|
||||
|
||||
when(connectionService.getConnectionForSsh(1L, 99L)).thenReturn(onlineConnection);
|
||||
when(connectionService.getConnectionForSsh(2L, 99L)).thenReturn(offlineConnection);
|
||||
doReturn(onlineConnection).when(connectionService).testConnection(eq(onlineConnection), eq(null), eq(null), eq(null));
|
||||
doThrow(new RuntimeException("Connection refused")).when(connectionService).testConnection(eq(offlineConnection), eq(null), eq(null), eq(null));
|
||||
|
||||
ConnectionStatusResponseDto response = connectionStatusService.checkStatuses(99L, request);
|
||||
|
||||
assertEquals(2, response.getTotal());
|
||||
assertEquals(1, response.getOnlineCount());
|
||||
assertEquals(1, response.getOfflineCount());
|
||||
assertEquals("online", response.getResults().get(0).getStatus());
|
||||
assertEquals("offline", response.getResults().get(1).getStatus());
|
||||
assertEquals("prod", response.getResults().get(0).getConnectionName());
|
||||
assertEquals("Connection refused", response.getResults().get(1).getMessage());
|
||||
}
|
||||
|
||||
@Test
|
||||
void checkStatusesRejectsEmptyConnectionIds() {
|
||||
ConnectionStatusCheckRequest request = new ConnectionStatusCheckRequest();
|
||||
|
||||
IllegalArgumentException error = assertThrows(
|
||||
IllegalArgumentException.class,
|
||||
() -> connectionStatusService.checkStatuses(1L, request)
|
||||
);
|
||||
|
||||
assertEquals("At least one connection is required", error.getMessage());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user