package eu.choreos.monitoring.platform.utils;
import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import java.io.IOException;
import java.net.Socket;
import java.util.List;
import org.junit.Before;
import org.junit.Test;
import eu.choreos.monitoring.platform.daemon.datatypes.Host;
import eu.choreos.monitoring.platform.exception.GangliaException;
public class GmondDataReaderTest {
private GmondDataReader gmondReader;
private Socket socket;
@Before
public void setUp() throws IOException, GangliaException {
gmondReader = new GmondDataReader("http://localhost/", 8649);
socket = mock(Socket.class);
gmondReader.setSocket(socket);
}
@Test
public void testParseGangliaCurrentMetricsWithOneHost() throws Exception {
when(socket.getInputStream()).thenReturn(
getClass().getResourceAsStream("/campinas.xml"));
List<Host> hosts = gmondReader.getUpToDateHostsInfo();
assertEquals(1, hosts.size());
assertEquals("0.00", hosts.get(0).getMetricValue("load_one"));
}
@Test
public void testParseGangliaCurrentMetricsWithManyHosts() throws Exception {
when(socket.getInputStream()).thenReturn(
getClass().getResourceAsStream("/ganglia_opencirrus.xml"));
List<Host> hosts = gmondReader.getUpToDateHostsInfo();
assertEquals(22, hosts.size());
assertEquals("opencirrus-08039.hpl.hp.com", hosts.get(0).getHostName());
//assertEquals("opencirrus-07901.hpl.hp.com", hosts.get(13).getHostName());
//assertEquals("cirrus078-mgmt-n3.hpl.hp.com", hosts.get(24).getHostName());
}
}