@@ -151,7 +151,7 @@ public void testParseSeriesAs_testNonNullAndValidValues() {
151151		Double  now  = Long .valueOf (System .currentTimeMillis ()).doubleValue ();
152152		String  uuidAsString  = UUID .randomUUID ().toString ();
153153
154- 		// InfluxDB client returns any number as Double. 
154+ 		// InfluxDB client returns any number as Double. (with JSON response format, but not with msgpack)  
155155		// See https://github.com/influxdata/influxdb-java/issues/153#issuecomment-259681987 
156156		// for more information. 
157157		List <Object > seriesResult  = Arrays .asList (now , uuidAsString ,
@@ -201,6 +201,62 @@ Double asDouble(Object obj) {
201201		return  (Double ) obj ;
202202	}
203203
204+ 	@ Test 
205+ 	public  void  testParseSeriesAs_testNonNullAndValidValues_msgpack () {
206+ 		// Given... 
207+ 		mapper .cacheMeasurementClass (MyCustomMeasurement .class );
208+ 
209+ 		List <String > columnList  = Arrays .asList ("time" , "uuid" ,
210+ 				"doubleObject" , "longObject" , "integerObject" ,
211+ 				"doublePrimitive" , "longPrimitive" , "integerPrimitive" ,
212+ 				"booleanObject" , "booleanPrimitive" );
213+ 
214+ 		// InfluxDB client returns the time representation as Double. 
215+ 		Double  now  = Long .valueOf (System .currentTimeMillis ()).doubleValue ();
216+ 		String  uuidAsString  = UUID .randomUUID ().toString ();
217+ 
218+ 		// InfluxDB client returns any number as Double. (with JSON response format, but not with msgpack) 
219+ 		// See https://github.com/influxdata/influxdb-java/issues/153#issuecomment-259681987 
220+ 		// for more information. 
221+ 		List <Object > seriesResult  = Arrays .asList (now , uuidAsString ,
222+ 				new  Double ("1.01" ), Long .valueOf (2 ), Integer .valueOf (3 ),
223+ 				new  Double ("1.01" ), Long .valueOf (4 ), Integer .valueOf (5 ),
224+ 				Boolean .FALSE , Boolean .TRUE );
225+ 
226+ 		QueryResult .Series  series  = new  QueryResult .Series ();
227+ 		series .setColumns (columnList );
228+ 		series .setValues (Arrays .asList (seriesResult ));
229+ 
230+ 		//When... 
231+ 		List <MyCustomMeasurement > result  = new  LinkedList <>();
232+ 		mapper .parseSeriesAs (series , MyCustomMeasurement .class , result );
233+ 
234+ 		//Then... 
235+ 		MyCustomMeasurement  myObject  = result .get (0 );
236+ 		Assertions .assertEquals (now .longValue (), myObject .time .toEpochMilli (), "field 'time' does not match" );
237+ 		Assertions .assertEquals (uuidAsString , myObject .uuid , "field 'uuid' does not match" );
238+ 
239+ 		Assertions .assertEquals (asDouble (seriesResult .get (2 )), myObject .doubleObject , "field 'doubleObject' does not match" );
240+ 		Assertions .assertEquals (Long .valueOf (2 ), myObject .longObject , "field 'longObject' does not match" );
241+ 		Assertions .assertEquals (Integer .valueOf (3 ), myObject .integerObject , "field 'integerObject' does not match" );
242+ 
243+ 		Assertions .assertTrue (
244+ 				Double .compare (asDouble (seriesResult .get (5 )).doubleValue (), myObject .doublePrimitive ) == 0 ,
245+ 				"field 'doublePrimitive' does not match" );
246+ 
247+ 		Assertions .assertEquals ( myObject .longPrimitive , 4 , "field 'longPrimitive' does not match" );
248+ 		Assertions .assertEquals ( myObject .integerPrimitive , 5 , "field 'integerPrimitive' does not match" );
249+ 
250+ 		Assertions .assertEquals (
251+ 				Boolean .valueOf (String .valueOf (seriesResult .get (8 ))), myObject .booleanObject ,
252+ 				"field 'booleanObject' does not match" );
253+ 
254+ 		Assertions .assertEquals (
255+ 				Boolean .valueOf (String .valueOf (seriesResult .get (9 ))).booleanValue (), myObject .booleanPrimitive ,
256+ 				"field 'booleanPrimitive' does not match" );
257+ 	}
258+ 
259+ 
204260	@ Test 
205261	public  void  testFieldValueModified_DateAsISO8601 () {
206262	  // Given... 
@@ -638,4 +694,4 @@ public String toString() {
638694        + ", median="  + median  + ", min="  + min  + ", max="  + max  + "]" ;
639695    }
640696  }
641- }
697+ }
0 commit comments