package org.infinispan.health;
import static org.mockito.Mockito.mock;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertTrue;
import java.util.List;
import org.infinispan.configuration.cache.ConfigurationBuilder;
import org.infinispan.configuration.global.GlobalConfigurationBuilder;
import org.infinispan.health.impl.ClusterHealthImpl;
import org.infinispan.manager.DefaultCacheManager;
import org.infinispan.manager.EmbeddedCacheManager;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
@Test(testName = "health.ClusterHealthImplTest", groups = "functional")
public class ClusterHealthImplTest {
private EmbeddedCacheManager cacheManager;
private ClusterHealth clusterHealth;
@BeforeClass
private void init() {
GlobalConfigurationBuilder globalConfigurationBuilder = new GlobalConfigurationBuilder().clusteredDefault();
globalConfigurationBuilder.transport().clusterName("test").nodeName("test");
cacheManager = new DefaultCacheManager(globalConfigurationBuilder.build());
cacheManager.defineConfiguration("test", new ConfigurationBuilder().build());
clusterHealth = new ClusterHealthImpl(cacheManager);
}
@AfterClass
private void cleanUp() {
if (cacheManager != null) {
cacheManager.stop();
cacheManager = null;
}
}
@Test
public void testReturningClusterName() throws Exception {
//when
String clusterName = clusterHealth.getClusterName();
//then
assertEquals(clusterName, "test");
}
@Test
public void testReturningHealthyStatus() throws Exception {
//given
cacheManager.getCache("test", true);
//when
HealthStatus healthStatus = clusterHealth.getHealthStatus();
//then
assertEquals(healthStatus, HealthStatus.HEALTHY);
}
@Test
public void testReturningNodeName() throws Exception {
//when
String nodeName = clusterHealth.getNodeNames().get(0);
//then
assertTrue(nodeName.contains("test"));
}
@Test
public void testReturningNumberOfNodes() throws Exception {
//when
int numberOfNodes = clusterHealth.getNumberOfNodes();
//then
assertEquals(numberOfNodes, 1);
}
@Test
public void testReturningNumberOfNodesWithNullTransport() throws Exception {
//given
DefaultCacheManager cacheManagerWithNullTransport = mock(DefaultCacheManager.class);
clusterHealth = new ClusterHealthImpl(cacheManagerWithNullTransport);
//when
int numberOfNodes = clusterHealth.getNumberOfNodes();
//then
assertEquals(numberOfNodes, 1);
}
@Test
public void testReturningNodeNamesWithNullTransport() throws Exception {
//given
DefaultCacheManager cacheManagerWithNullTransport = mock(DefaultCacheManager.class);
clusterHealth = new ClusterHealthImpl(cacheManagerWithNullTransport);
//when
List<String> nodeNames = clusterHealth.getNodeNames();
//then
assertEquals(nodeNames.size(), 0);
}
}