package com.intrbiz.bergamot.nagios.model;
import static org.hamcrest.CoreMatchers.*;
import static org.junit.Assert.*;
import java.nio.CharBuffer;
import java.util.List;
import org.junit.Test;
import com.intrbiz.gerald.polyakov.Reading;
import com.intrbiz.gerald.polyakov.gauge.DoubleGaugeReading;
public class TestNagiosPerfData
{
@Test
public void testReadUnquotedLabel() throws Exception
{
String label = NagiosPerfData.readLabel(CharBuffer.wrap("load1=0.490;15.000;30.000;0;".toCharArray()));
assertThat(label, is(equalTo("load1")));
}
@Test
public void testReadQuotedLabel() throws Exception
{
String label = NagiosPerfData.readLabel(CharBuffer.wrap("'chris'' load1'=0.490;15.000;30.000;0;".toCharArray()));
assertThat(label, is(equalTo("chris' load1")));
}
@Test
public void testParsePerfData() throws Exception
{
List<NagiosPerfData> perfData = NagiosPerfData.parsePerfData("load1=0.490;15.000;30.000;0; load5=0.760;10.000;25.000;0; load15=0.850;5.000;20.000;0;");
assertThat(perfData.size(), is(equalTo(3)));
}
@Test
public void testParsePingPerfData() throws Exception
{
List<NagiosPerfData> perfData = NagiosPerfData.parsePerfData("rta=15.289000ms;3000.000000;5000.000000;0.000000 pl=0%;80;100;0");
assertThat(perfData.size(), is(equalTo(2)));
// rta metric
NagiosPerfData rta = perfData.get(0);
assertThat(rta, is(notNullValue()));
Reading rrta = rta.toReading();
assertThat(rrta, is(notNullValue()));
assertThat(rrta, is(instanceOf(DoubleGaugeReading.class)));
assertThat(rrta.getName(), is(equalTo("rta")));
assertThat(rrta.getUnit(), is(equalTo("ms")));
assertThat(((DoubleGaugeReading)rrta).getValue(), is(equalTo(15.289000D)));
assertThat(((DoubleGaugeReading)rrta).getWarning(), is(equalTo(3000.000000D)));
assertThat(((DoubleGaugeReading)rrta).getCritical(), is(equalTo(5000.000000D)));
assertThat(((DoubleGaugeReading)rrta).getMin(), is(equalTo(0D)));
// pl metric
NagiosPerfData pl = perfData.get(1);
assertThat(pl, is(notNullValue()));
Reading rpl = pl.toReading();
assertThat(rpl, is(notNullValue()));
assertThat(rpl, is(instanceOf(DoubleGaugeReading.class)));
assertThat(rpl.getName(), is(equalTo("pl")));
assertThat(rpl.getUnit(), is(equalTo("%")));
assertThat(((DoubleGaugeReading)rpl).getValue(), is(equalTo(0D)));
assertThat(((DoubleGaugeReading)rpl).getWarning(), is(equalTo(80D)));
assertThat(((DoubleGaugeReading)rpl).getCritical(), is(equalTo(100D)));
assertThat(((DoubleGaugeReading)rpl).getMin(), is(equalTo(0D)));
}
}