Skip to content
This repository was archived by the owner on Feb 12, 2023. It is now read-only.

Commit 9d7ab06

Browse files
committed
Implement Issue influxdata#389 : Support for MessagePack
test for MessagePackTraverser
1 parent fc5f874 commit 9d7ab06

File tree

5 files changed

+80
-0
lines changed

5 files changed

+80
-0
lines changed

pom.xml

+3
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,9 @@
7373
<exclude>docker-compose.yml</exclude>
7474
</excludes>
7575
</resource>
76+
<resource>
77+
<directory>src/test/resources</directory>
78+
</resource>
7679
</resources>
7780
<pluginManagement>
7881
<plugins>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
package org.influxdb.msgpack;
2+
3+
import java.util.Iterator;
4+
import java.util.List;
5+
6+
import org.influxdb.dto.QueryResult;
7+
import org.junit.jupiter.api.Assertions;
8+
import org.junit.jupiter.api.Test;
9+
import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable;
10+
import org.junit.platform.runner.JUnitPlatform;
11+
import org.junit.runner.RunWith;
12+
13+
import static org.junit.jupiter.api.Assertions.*;
14+
15+
@RunWith(JUnitPlatform.class)
16+
@EnabledIfEnvironmentVariable(named = "INFLUXDB_VERSION", matches = "1\\.6|1\\.5|1\\.4")
17+
public class MessagePackTraverserTest {
18+
19+
@Test
20+
public void testTraverseMethod() {
21+
MessagePackTraverser traverser = new MessagePackTraverser();
22+
23+
/* a json-like view of msgpack_1.bin
24+
25+
{"results":[{"statement_id":0,"series":[{"name":"disk","columns":["time","atag","free","used"],
26+
"values":[[(5,0x00005b556c-252f-23-6438),"a",1,60],[(5,0x00005b556c-252f-23-6438),"b",2,70]],"partial":true}],"partial":true}]}
27+
{"results":[{"statement_id":0,"series":[{"name":"disk","columns":["time","atag","free","used"],"values":[[(5,0x00005b556c-252f-23-6438),"c",3,80]]}]}]}
28+
29+
*/
30+
31+
Iterator<QueryResult> iter = traverser.traverse(MessagePackTraverserTest.class.getResourceAsStream("msgpack_1.bin")).iterator();
32+
assertTrue(iter.hasNext());
33+
QueryResult result = iter.next();
34+
List<List<Object>> values = result.getResults().get(0).getSeries().get(0).getValues();
35+
Assertions.assertEquals(2, values.size());
36+
assertEquals(1532325083L, values.get(0).get(0));
37+
assertEquals("b", values.get(1).get(1));
38+
39+
assertTrue(iter.hasNext());
40+
result = iter.next();
41+
values = result.getResults().get(0).getSeries().get(0).getValues();
42+
Assertions.assertEquals(1, values.size());
43+
assertEquals(3, values.get(0).get(2));
44+
45+
assertFalse(iter.hasNext());
46+
}
47+
48+
@Test
49+
public void testParseMethodOnNonEmptyResult() {
50+
MessagePackTraverser traverser = new MessagePackTraverser();
51+
/* a json-like view of msgpack_2.bin
52+
53+
{"results":[{"statement_id":0,"series":[{"name":"measurement_957996674028300","columns":["time","device","foo"],
54+
"values":[[(5,0x000058-797a00000),"one",1.0],[(5,0x000058-79-78100000),"two",2.0],[(5,0x000058-79-6a200000),"three",3.0]]}]}]}
55+
*/
56+
QueryResult queryResult = traverser.parse(MessagePackTraverserTest.class.getResourceAsStream("msgpack_2.bin"));
57+
List<List<Object>> values = queryResult.getResults().get(0).getSeries().get(0).getValues();
58+
Assertions.assertEquals(3, values.size());
59+
assertEquals(1485273600L, values.get(0).get(0));
60+
assertEquals("two", values.get(1).get(1));
61+
assertEquals(3.0, values.get(2).get(2));
62+
}
63+
64+
@Test
65+
public void testParseMethodOnEmptyResult() {
66+
MessagePackTraverser traverser = new MessagePackTraverser();
67+
/* a json-like view of msgpack_3.bin
68+
69+
{"results":[{"statement_id":0,"series":[]}]}
70+
71+
*/
72+
QueryResult queryResult = traverser.parse(MessagePackTraverserTest.class.getResourceAsStream("msgpack_3.bin"));
73+
System.out.println();
74+
assertNull(queryResult.getResults().get(0).getSeries());
75+
76+
}
77+
}
Binary file not shown.
Binary file not shown.
Binary file not shown.

0 commit comments

Comments
 (0)