import com.google.common.collect.Lists;
import org.robobninjas.riemann.json.RiemannEvent;
import org.robobninjas.riemann.json.RiemannEventObjectMapper;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import java.io.IOException;
import static org.fest.assertions.api.Assertions.assertThat;
/**
* Tests Riemann JSON message deserialization.
*
* @author Itai Frenkel
* @since 0.1
*/
public class DeserializeJsonTest {
private RiemannEventObjectMapper objectMapper;
@BeforeMethod
public void initDeserializer() {
this.objectMapper = new RiemannEventObjectMapper();
}
@Test
public void desTest() throws IOException {
String result = "{\"host\":null,\"service\":\"fridge\",\"state\":\"running\",\"description\":null,\"metric\":5.3,\"tags\":[\"appliance\",\"cold\"],\"time\":\"2013-07-11T04:00:17.450Z\",\"ttl\":300}";
RiemannEvent event = objectMapper.readEvent(result);
assertThat(event.getHost()).isNull();
assertThat(event.getService()).isEqualTo("fridge");
assertThat(event.getState()).isEqualTo("running");
assertThat(event.getDescription()).isNull();
assertThat(event.getMetric()).isEqualTo("5.3");
assertThat(event.getMetricF()).isEqualTo(5.3f);
assertThat(event.getMetricD()).isEqualTo(5.3d);
assertThat(event.getTags()).isEqualTo(Lists.newArrayList("appliance","cold"));
assertThat(event.getTime().getYear()).isEqualTo(2013);
assertThat(event.getTime().getMonthOfYear()).isEqualTo(7);
assertThat(event.getTime().getDayOfMonth()).isEqualTo(11);
assertThat(event.getTime().getHourOfDay()).isEqualTo(4);
assertThat(event.getTime().getMinuteOfHour()).isEqualTo(0);
assertThat(event.getTime().getSecondOfMinute()).isEqualTo(17);
assertThat(event.getTime().getMillisOfSecond()).isEqualTo(450);
assertThat(event.getTtl()).isEqualTo(300);
}
}