89 lines
3.0 KiB
Java
89 lines
3.0 KiB
Java
package tk.antoine.roux.infrastructure.out;
|
|
|
|
import io.kubernetes.client.openapi.ApiException;
|
|
import io.kubernetes.client.openapi.apis.CoreV1Api;
|
|
import io.kubernetes.client.openapi.models.V1Node;
|
|
import io.kubernetes.client.openapi.models.V1NodeList;
|
|
import io.kubernetes.client.openapi.models.V1ObjectMeta;
|
|
import io.vavr.collection.List;
|
|
import org.junit.jupiter.api.Assertions;
|
|
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 tk.antoine.roux.domain.model.Node;
|
|
|
|
import java.util.regex.Pattern;
|
|
|
|
import static org.mockito.ArgumentMatchers.any;
|
|
import static org.mockito.Mockito.verify;
|
|
import static org.mockito.Mockito.when;
|
|
|
|
@ExtendWith(MockitoExtension.class)
|
|
class NodeListerTest {
|
|
|
|
@Mock
|
|
private CoreV1Api coreV1Api;
|
|
|
|
@InjectMocks
|
|
NodeLister nodeLister;
|
|
|
|
@Test
|
|
void listAll() throws ApiException {
|
|
// Given
|
|
when(coreV1Api.listNode(any(), any(), any(), any(), any(), any(), any(), any(), any(), any())).thenReturn(new V1NodeList());
|
|
|
|
// When
|
|
List<Node> nodes = nodeLister.listAll();
|
|
|
|
// Then
|
|
Assertions.assertEquals(0, nodes.size());
|
|
verify(coreV1Api).listNode(any(), any(), any(), any(), any(), any(), any(), any(), any(), any());
|
|
}
|
|
|
|
@Test
|
|
void listAllByName() throws ApiException {
|
|
// Given
|
|
V1Node node1 = new V1Node().metadata(new V1ObjectMeta().name("worker-2"));
|
|
V1Node node2 = new V1Node().metadata(new V1ObjectMeta().name("worker-5"));
|
|
V1Node node3 = new V1Node().metadata(new V1ObjectMeta().name("worker-3"));
|
|
|
|
V1NodeList nodeList = new V1NodeList()
|
|
.addItemsItem(node1)
|
|
.addItemsItem(node2)
|
|
.addItemsItem(node3);
|
|
|
|
when(coreV1Api.listNode(any(), any(), any(), any(), any(), any(), any(), any(), any(), any())).thenReturn(nodeList);
|
|
|
|
// When
|
|
List<Node> nodes = nodeLister.listAllByName("worker-2");
|
|
|
|
// Then
|
|
Assertions.assertEquals(1, nodes.size());
|
|
verify(coreV1Api).listNode(any(), any(), any(), any(), any(), any(), any(), any(), any(), any());
|
|
}
|
|
|
|
@Test
|
|
void listAllByRegex() throws ApiException {
|
|
// Given
|
|
V1Node node1 = new V1Node().metadata(new V1ObjectMeta().name("worker-2"));
|
|
V1Node node2 = new V1Node().metadata(new V1ObjectMeta().name("worker-5"));
|
|
V1Node node3 = new V1Node().metadata(new V1ObjectMeta().name("worker-3"));
|
|
|
|
V1NodeList nodeList = new V1NodeList()
|
|
.addItemsItem(node1)
|
|
.addItemsItem(node2)
|
|
.addItemsItem(node3);
|
|
|
|
when(coreV1Api.listNode(any(), any(), any(), any(), any(), any(), any(), any(), any(), any())).thenReturn(nodeList);
|
|
|
|
// When
|
|
List<Node> nodes = nodeLister.listAllByRegex(Pattern.compile("worker-[25]"));
|
|
|
|
// Then
|
|
Assertions.assertEquals(2, nodes.size());
|
|
verify(coreV1Api).listNode(any(), any(), any(), any(), any(), any(), any(), any(), any(), any());
|
|
}
|
|
}
|