From 23fc9893bb0040fe48638fc8bc4bfa32846f989e Mon Sep 17 00:00:00 2001 From: Gytis Trikleris Date: Mon, 4 Jun 2018 13:08:40 +0200 Subject: [PATCH] Leader using KubernetesHelper --- .../cloud/kubernetes/leader/Leader.java | 9 +++- .../cloud/kubernetes/leader/LeaderTest.java | 53 +++++++++++++++++++ 2 files changed, 61 insertions(+), 1 deletion(-) create mode 100644 spring-cloud-kubernetes-leader/src/test/java/org/springframework/cloud/kubernetes/leader/LeaderTest.java diff --git a/spring-cloud-kubernetes-leader/src/main/java/org/springframework/cloud/kubernetes/leader/Leader.java b/spring-cloud-kubernetes-leader/src/main/java/org/springframework/cloud/kubernetes/leader/Leader.java index fdf19aea..04bd90ef 100644 --- a/spring-cloud-kubernetes-leader/src/main/java/org/springframework/cloud/kubernetes/leader/Leader.java +++ b/spring-cloud-kubernetes-leader/src/main/java/org/springframework/cloud/kubernetes/leader/Leader.java @@ -25,9 +25,12 @@ public class Leader { private final String id; - public Leader(String role, String id) { + private final KubernetesHelper kubernetesHelper; + + public Leader(String role, String id, KubernetesHelper kubernetesHelper) { this.role = role; this.id = id; + this.kubernetesHelper = kubernetesHelper; } public String getRole() { @@ -38,4 +41,8 @@ public class Leader { return id; } + public boolean isValid() { + return kubernetesHelper.isPodAlive(id); + } + } diff --git a/spring-cloud-kubernetes-leader/src/test/java/org/springframework/cloud/kubernetes/leader/LeaderTest.java b/spring-cloud-kubernetes-leader/src/test/java/org/springframework/cloud/kubernetes/leader/LeaderTest.java new file mode 100644 index 00000000..7d86048d --- /dev/null +++ b/spring-cloud-kubernetes-leader/src/test/java/org/springframework/cloud/kubernetes/leader/LeaderTest.java @@ -0,0 +1,53 @@ +package org.springframework.cloud.kubernetes.leader; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.junit.MockitoJUnitRunner; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.BDDMockito.given; +import static org.mockito.Mockito.verify; + +/** + * @author Gytis Trikleris + */ +@RunWith(MockitoJUnitRunner.class) +public class LeaderTest { + + private static final String ROLE = "test-role"; + + private static final String ID = "test-id"; + + @Mock + private KubernetesHelper mockKubernetesHelper; + + private Leader leader; + + @Before + public void before() { + leader = new Leader(ROLE, ID, mockKubernetesHelper); + } + + @Test + public void shouldGetRole() { + assertThat(leader.getRole()).isEqualTo(ROLE); + } + + @Test + public void shouldGetId() { + assertThat(leader.getId()).isEqualTo(ID); + } + + @Test + public void shouldCheckValidity() { + given(mockKubernetesHelper.isPodAlive(ID)).willReturn(true); + + boolean result = leader.isValid(); + + assertThat(result).isTrue(); + verify(mockKubernetesHelper).isPodAlive(ID); + } + +}