22
22
import com .arpnetworking .tsdcore .model .Key ;
23
23
import com .arpnetworking .tsdcore .model .MetricType ;
24
24
import com .arpnetworking .tsdcore .model .Quantity ;
25
- import com .google .common .collect .Iterables ;
26
25
import com .google .common .io .Resources ;
27
26
import org .junit .Assert ;
28
27
import org .junit .Test ;
32
31
import java .time .Instant ;
33
32
import java .time .ZoneOffset ;
34
33
import java .time .ZonedDateTime ;
34
+ import java .util .Collection ;
35
+ import java .util .Iterator ;
35
36
import java .util .List ;
36
37
import java .util .Map ;
37
38
@@ -44,10 +45,69 @@ public class TelegrafJsonToRecordParserTest {
44
45
45
46
@ Test
46
47
public void testParse () throws ParsingException , IOException {
47
- final Record record = parseRecord ("TelegrafJsonParserTest/testParse.json" );
48
+ final Collection <Record > records = parseRecord ("TelegrafJsonParserTest/testParse.json" );
49
+
50
+ Assert .assertNotNull (records );
51
+ Assert .assertEquals (1 , records .size ());
52
+
53
+ final Record record = records .iterator ().next ();
54
+
55
+ verifyRecordOne (record );
56
+ }
57
+
58
+ @ Test
59
+ public void testParseBatch () throws ParsingException , IOException {
60
+ final Collection <Record > records = parseRecord ("TelegrafJsonParserTest/testBatch.json" );
61
+
62
+ Assert .assertNotNull (records );
63
+ Assert .assertEquals (2 , records .size ());
64
+
65
+ final Iterator <Record > iterator = records .iterator ();
66
+ final Record recordOne = iterator .next ();
67
+ final Record recordTwo = iterator .next ();
68
+
69
+ verifyRecordOne (recordOne );
70
+ verifyRecordTwo (recordTwo );
71
+ }
72
+
73
+ @ Test
74
+ public void tesBlankName () throws ParsingException , IOException {
75
+ final Collection <Record > records = parseRecord ("TelegrafJsonParserTest/testBlankName.json" );
76
+
77
+ Assert .assertNotNull (records );
78
+ Assert .assertEquals (1 , records .size ());
79
+
80
+ final Record record = records .iterator ().next ();
48
81
49
82
Assert .assertNotNull (record );
50
83
84
+ Assert .assertEquals (3 , record .getDimensions ().size ());
85
+ Assert .assertEquals ("MyHost" , record .getDimensions ().get (Key .HOST_DIMENSION_KEY ));
86
+ Assert .assertEquals ("MyService" , record .getDimensions ().get (Key .SERVICE_DIMENSION_KEY ));
87
+ Assert .assertEquals ("MyCluster" , record .getDimensions ().get (Key .CLUSTER_DIMENSION_KEY ));
88
+
89
+ Assert .assertEquals (0 , record .getAnnotations ().size ());
90
+
91
+ final Map <String , ? extends Metric > map = record .getMetrics ();
92
+ Assert .assertEquals (2 , map .size ());
93
+
94
+ final Metric t1 = map .get ("foo.t1" );
95
+ List <Quantity > vals = t1 .getValues ();
96
+ Assert .assertEquals (1 , vals .size ());
97
+ Assert .assertEquals (123d , vals .get (0 ).getValue (), 0.001 );
98
+ Assert .assertFalse (vals .get (0 ).getUnit ().isPresent ());
99
+ Assert .assertEquals (MetricType .TIMER , t1 .getType ());
100
+
101
+ final Metric t2 = map .get ("bar.t2" );
102
+ vals = t2 .getValues ();
103
+ Assert .assertEquals (1 , vals .size ());
104
+ Assert .assertEquals (1.23d , vals .get (0 ).getValue (), 0.001 );
105
+ Assert .assertFalse (vals .get (0 ).getUnit ().isPresent ());
106
+ Assert .assertEquals (MetricType .TIMER , t2 .getType ());
107
+ }
108
+
109
+
110
+ private void verifyRecordOne (final Record record ) {
51
111
Assert .assertNotNull (record .getAnnotations ());
52
112
Assert .assertEquals (0 , record .getAnnotations ().size ());
53
113
@@ -99,45 +159,65 @@ public void testParse() throws ParsingException, IOException {
99
159
Assert .assertEquals (ZonedDateTime .ofInstant (Instant .ofEpochMilli ((long ) (1458229140 * 1000d )), ZoneOffset .UTC ), record .getTime ());
100
160
}
101
161
102
- @ Test
103
- public void tesBlankName () throws ParsingException , IOException {
104
- final Record record = parseRecord ("TelegrafJsonParserTest/testBlankName.json" );
105
-
106
- Assert .assertNotNull (record );
107
-
108
- Assert .assertEquals (3 , record .getDimensions ().size ());
109
- Assert .assertEquals ("MyHost" , record .getDimensions ().get (Key .HOST_DIMENSION_KEY ));
110
- Assert .assertEquals ("MyService" , record .getDimensions ().get (Key .SERVICE_DIMENSION_KEY ));
111
- Assert .assertEquals ("MyCluster" , record .getDimensions ().get (Key .CLUSTER_DIMENSION_KEY ));
112
-
162
+ private void verifyRecordTwo (final Record record ) {
163
+ Assert .assertNotNull (record .getAnnotations ());
113
164
Assert .assertEquals (0 , record .getAnnotations ().size ());
114
165
166
+ Assert .assertEquals (5 , record .getDimensions ().size ());
167
+ Assert .assertEquals ("MyCluster2" , record .getDimensions ().get (Key .CLUSTER_DIMENSION_KEY ));
168
+ Assert .assertEquals ("MyService2" , record .getDimensions ().get (Key .SERVICE_DIMENSION_KEY ));
169
+ Assert .assertEquals ("MyHost2" , record .getDimensions ().get (Key .HOST_DIMENSION_KEY ));
170
+ Assert .assertEquals ("CA" , record .getDimensions ().get ("region" ));
171
+ Assert .assertEquals ("foo" , record .getDimensions ().get ("bar" ));
172
+
115
173
final Map <String , ? extends Metric > map = record .getMetrics ();
116
- Assert .assertEquals (2 , map .size ());
174
+ Assert .assertEquals (5 , map .size ());
117
175
118
- final Metric t1 = map .get ("foo .t1" );
176
+ final Metric t1 = map .get ("MyName2 .t1" );
119
177
List <Quantity > vals = t1 .getValues ();
120
178
Assert .assertEquals (1 , vals .size ());
121
- Assert .assertEquals (123d , vals .get (0 ).getValue (), 0.001 );
179
+ Assert .assertEquals (456d , vals .get (0 ).getValue (), 0.001 );
122
180
Assert .assertFalse (vals .get (0 ).getUnit ().isPresent ());
123
181
Assert .assertEquals (MetricType .TIMER , t1 .getType ());
124
182
125
- final Metric t2 = map .get ("bar .t2" );
183
+ final Metric t2 = map .get ("MyName2 .t2" );
126
184
vals = t2 .getValues ();
127
185
Assert .assertEquals (1 , vals .size ());
128
- Assert .assertEquals (1.23d , vals .get (0 ).getValue (), 0.001 );
186
+ Assert .assertEquals (4.56d , vals .get (0 ).getValue (), 0.001 );
129
187
Assert .assertFalse (vals .get (0 ).getUnit ().isPresent ());
130
188
Assert .assertEquals (MetricType .TIMER , t2 .getType ());
189
+
190
+ final Metric g1 = map .get ("MyName2.g1" );
191
+ vals = g1 .getValues ();
192
+ Assert .assertEquals (1 , vals .size ());
193
+ Assert .assertEquals (482d , vals .get (0 ).getValue (), 0.001 );
194
+ Assert .assertFalse (vals .get (0 ).getUnit ().isPresent ());
195
+ Assert .assertEquals (MetricType .TIMER , g1 .getType ());
196
+
197
+ final Metric g2 = map .get ("MyName2.g2" );
198
+ vals = g2 .getValues ();
199
+ Assert .assertEquals (1 , vals .size ());
200
+ Assert .assertEquals (4.82d , vals .get (0 ).getValue (), 0.001 );
201
+ Assert .assertFalse (vals .get (0 ).getUnit ().isPresent ());
202
+ Assert .assertEquals (MetricType .TIMER , g2 .getType ());
203
+
204
+ final Metric c1 = map .get ("MyName2.c1" );
205
+ vals = c1 .getValues ();
206
+ Assert .assertEquals (1 , vals .size ());
207
+ Assert .assertEquals (2d , vals .get (0 ).getValue (), 0.001 );
208
+ Assert .assertFalse (vals .get (0 ).getUnit ().isPresent ());
209
+ Assert .assertEquals (MetricType .TIMER , c1 .getType ());
210
+
211
+ Assert .assertEquals (ZonedDateTime .ofInstant (Instant .ofEpochMilli ((long ) (1458229140 * 1000d )), ZoneOffset .UTC ), record .getTime ());
131
212
}
132
213
133
- private static Record parseRecord (final String fileName ) throws ParsingException , IOException {
134
- return Iterables .getOnlyElement (
135
- new TelegrafJsonToRecordParser .Builder ()
136
- .build ()
137
- .parse (ByteBuffer .wrap (
138
- Resources .toByteArray (
139
- Resources .getResource (
140
- TelegrafJsonToRecordParserTest .class ,
141
- fileName )))));
214
+ private static Collection <Record > parseRecord (final String fileName ) throws ParsingException , IOException {
215
+ return new TelegrafJsonToRecordParser .Builder ()
216
+ .build ()
217
+ .parse (ByteBuffer .wrap (
218
+ Resources .toByteArray (
219
+ Resources .getResource (
220
+ TelegrafJsonToRecordParserTest .class ,
221
+ fileName ))));
142
222
}
143
223
}
0 commit comments