spring-react-kubernetes-api/src/test/java/tk/antoine/roux/infrastructure/out/NodeListerTest.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());
}
}