package org.sef4j.ext.influxdb;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import org.influxdb.InfluxDB;
import org.influxdb.InfluxDBFactory;
import org.influxdb.dto.Serie;
import org.junit.Assert;
import org.junit.BeforeClass;
import org.junit.Test;
public class RestApiInfluxDBSerieSenderIT extends AbstractInfluxDBSerieSenderIT {
private static InfluxDB influxDB;
private static RestApiInfluxDBSerieSender sut;
@BeforeClass
public static void beforeClass() {
influxDB = InfluxDBFactory.connect(url, username, password);
sut = new RestApiInfluxDBSerieSender(url, influxDB, dbName);
}
@Test
public void testPing() {
// Prepare
// Perform
sut.ping();
// Post-check
}
@Test
public void testQuery() {
// Prepare
// Perform
List<Serie> res = influxDB.query("db1", "select field1, field2 from metric1 limit 10", TimeUnit.SECONDS);
// Post-check
Assert.assertEquals(1, res.size());
Serie serie = res.get(0);
Assert.assertEquals("metric1", serie.getName());
String[] cols = serie.getColumns();
Assert.assertEquals(4, cols.length);
Assert.assertEquals("time", cols[0]);
Assert.assertEquals("sequence_number", cols[1]);
Assert.assertEquals("field1", cols[2]);
Assert.assertEquals("field2", cols[3]);
List<Map<String, Object>> rows = serie.getRows();
Assert.assertTrue(rows.size() <= 10);
Map<String,Object> pt0 = rows.get(0);
Assert.assertNotNull(pt0);
Double pt0_time = (Double) pt0.get("time");
Double pt0_field1 = (Double) pt0.get("field1");
Double pt0_field2 = (Double) pt0.get("field2");
Assert.assertNotNull(pt0_time);
Assert.assertNotNull(pt0_field1);
Assert.assertNotNull(pt0_field2);
Assert.assertTrue(10 < pt0_field1 && pt0_field1 < 15.0); // cf 11.5 as of test ...
// Serie field2Serie = metric1Res.get(1);
// Assert.assertEquals("field1", field1Serie.getName());
}
}