@@ -218,18 +218,7 @@ public async Task TestPostDoublePointAsync()
218218 }
219219 }
220220
221- private string GenerateRandomString ( )
222- {
223- var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 ,=/\\ " ;
224- var stringChars = new char [ 16 ] ;
225- var random = new Random ( ) ;
226221
227- for ( int i = 0 ; i < stringChars . Length ; i ++ )
228- {
229- stringChars [ i ] = chars [ random . Next ( chars . Length ) ] ;
230- }
231- return new String ( stringChars ) ;
232- }
233222
234223 [ TestMethod ]
235224 public async Task TestPostStringPointAsync ( )
@@ -242,7 +231,7 @@ public async Task TestPostStringPointAsync()
242231 valString . UtcTimestamp = DateTime . UtcNow ;
243232 valString . Tags . Add ( "TestDate" , time . ToShortDateString ( ) ) ;
244233 valString . Tags . Add ( "TestTime" , time . ToShortTimeString ( ) ) ;
245- valString . Fields . Add ( "Stringfield" , GenerateRandomString ( ) ) ;
234+ valString . Fields . Add ( "Stringfield" , @"j0,Oox7ju6lJvA0\" ) ; //DataGen.RandomString ());
246235 valString . MeasurementName = measurementName ;
247236 valString . Precision = TimePrecision . Seconds ;
248237 var r = await client . PostPointAsync ( dbName , valString ) ;
@@ -291,47 +280,70 @@ public async Task TestPostPointsAsync()
291280 {
292281 var client = new InfluxDBClient ( influxUrl , dbUName , dbpwd ) ;
293282 var time = DateTime . Now ;
294- var rand = new Random ( ) ;
283+ var today = DateTime . Now . ToShortDateString ( ) ;
284+ var now = DateTime . Now . ToShortTimeString ( ) ;
285+
286+ var points = new List < IInfluxDatapoint > ( ) ;
295287
296288 var valDouble = new InfluxDatapoint < double > ( ) ;
297289 valDouble . UtcTimestamp = DateTime . UtcNow ;
298- valDouble . Tags . Add ( "TestDate" , time . ToShortDateString ( ) ) ;
299- valDouble . Tags . Add ( "TestTime" , time . ToShortTimeString ( ) ) ;
300- valDouble . Fields . Add ( "Doublefield" , rand . NextDouble ( ) ) ;
301- valDouble . Fields . Add ( "Doublefield2" , rand . NextDouble ( ) ) ;
290+ valDouble . Tags . Add ( "TestDate" , today ) ;
291+ valDouble . Tags . Add ( "TestTime" , now ) ;
292+ valDouble . Fields . Add ( "Doublefield" , DataGen . RandomDouble ( ) ) ;
293+ valDouble . Fields . Add ( "Doublefield2" , DataGen . RandomDouble ( ) ) ;
294+ valDouble . MeasurementName = measurementName ;
295+ valDouble . Precision = TimePrecision . Nanoseconds ;
296+ points . Add ( valDouble ) ;
297+
298+ valDouble = new InfluxDatapoint < double > ( ) ;
299+ valDouble . UtcTimestamp = DateTime . UtcNow ;
300+ valDouble . Tags . Add ( "TestDate" , today ) ;
301+ valDouble . Tags . Add ( "TestTime" , now ) ;
302+ valDouble . Fields . Add ( "Doublefield" , DataGen . RandomDouble ( ) ) ;
303+ valDouble . Fields . Add ( "Doublefield2" , DataGen . RandomDouble ( ) ) ;
302304 valDouble . MeasurementName = measurementName ;
303- valDouble . Precision = TimePrecision . Milliseconds ;
305+ valDouble . Precision = TimePrecision . Microseconds ;
306+ points . Add ( valDouble ) ;
304307
305308 var valInt = new InfluxDatapoint < int > ( ) ;
306309 valInt . UtcTimestamp = DateTime . UtcNow ;
307- valInt . Tags . Add ( "TestDate" , time . ToShortDateString ( ) ) ;
308- valInt . Tags . Add ( "TestTime" , time . ToShortTimeString ( ) ) ;
309- valInt . Fields . Add ( "Intfield" , rand . Next ( ) ) ;
310- valInt . Fields . Add ( "Intfield2" , rand . Next ( ) ) ;
310+ valInt . Tags . Add ( "TestDate" , today ) ;
311+ valInt . Tags . Add ( "TestTime" , now ) ;
312+ valInt . Fields . Add ( "Intfield" , DataGen . RandomInt ( ) ) ;
313+ valInt . Fields . Add ( "Intfield2" , DataGen . RandomInt ( ) ) ;
314+ valInt . MeasurementName = measurementName ;
315+ valInt . Precision = TimePrecision . Milliseconds ;
316+ points . Add ( valInt ) ;
317+
318+ valInt = new InfluxDatapoint < int > ( ) ;
319+ valInt . UtcTimestamp = DateTime . UtcNow ;
320+ valInt . Tags . Add ( "TestDate" , today ) ;
321+ valInt . Tags . Add ( "TestTime" , now ) ;
322+ valInt . Fields . Add ( "Intfield" , DataGen . RandomInt ( ) ) ;
323+ valInt . Fields . Add ( "Intfield2" , DataGen . RandomInt ( ) ) ;
311324 valInt . MeasurementName = measurementName ;
312325 valInt . Precision = TimePrecision . Seconds ;
326+ points . Add ( valInt ) ;
313327
314328 var valBool = new InfluxDatapoint < bool > ( ) ;
315329 valBool . UtcTimestamp = DateTime . UtcNow ;
316- valBool . Tags . Add ( "TestDate" , time . ToShortDateString ( ) ) ;
317- valBool . Tags . Add ( "TestTime" , time . ToShortTimeString ( ) ) ;
330+ valBool . Tags . Add ( "TestDate" , today ) ;
331+ valBool . Tags . Add ( "TestTime" , now ) ;
318332 valBool . Fields . Add ( "Booleanfield" , time . Ticks % 2 == 0 ) ;
319333 valBool . MeasurementName = measurementName ;
320334 valBool . Precision = TimePrecision . Minutes ;
335+ points . Add ( valBool ) ;
321336
322337 var valString = new InfluxDatapoint < string > ( ) ;
323338 valString . UtcTimestamp = DateTime . UtcNow ;
324- valString . Tags . Add ( "TestDate" , time . ToShortDateString ( ) ) ;
325- valString . Tags . Add ( "TestTime" , time . ToShortTimeString ( ) ) ;
326- valString . Fields . Add ( "Stringfield" , GenerateRandomString ( ) ) ;
339+ valString . Tags . Add ( "TestDate" , today ) ;
340+ valString . Tags . Add ( "TestTime" , now ) ;
341+ valString . Fields . Add ( "Stringfield" , DataGen . RandomString ( ) ) ;
327342 valString . MeasurementName = measurementName ;
328343 valString . Precision = TimePrecision . Hours ;
329-
330- var points = new List < IInfluxDatapoint > ( ) ;
331344 points . Add ( valString ) ;
332- points . Add ( valInt ) ;
333- points . Add ( valDouble ) ;
334- points . Add ( valBool ) ;
345+
346+
335347 var r = await client . PostPointsAsync ( dbName , points ) ;
336348 Assert . IsTrue ( r , "PostPointsAsync retunred false" ) ;
337349 }
@@ -344,6 +356,82 @@ public async Task TestPostPointsAsync()
344356 }
345357 }
346358
359+
360+ [ TestMethod ]
361+ [ ExpectedException ( typeof ( InfluxDBException ) ) ]
362+ public async Task TestPostPointAsync_InvalidReq ( )
363+ {
364+ var client = new InfluxDBClient ( influxUrl , dbUName , dbpwd ) ;
365+ var time = DateTime . Now ;
366+ var today = DateTime . Now . ToShortDateString ( ) ;
367+ var now = DateTime . Now . ToShortTimeString ( ) ;
368+
369+ var valDouble = new InfluxDatapoint < double > ( ) ;
370+ valDouble . UtcTimestamp = DateTime . UtcNow ;
371+ valDouble . Tags . Add ( "TestDate" , today ) ;
372+ valDouble . Tags . Add ( "TestTime" , now ) ;
373+ valDouble . Fields . Add ( "Doublefield" , DataGen . RandomDouble ( ) ) ;
374+ valDouble . Fields . Add ( "Doublefield2" , Double . NaN ) ;
375+ valDouble . MeasurementName = measurementName ;
376+ valDouble . Precision = TimePrecision . Seconds ;
377+
378+ var r = await client . PostPointAsync ( dbName , valDouble ) ;
379+ Assert . IsTrue ( r , "PostPointsAsync retunred false" ) ;
380+
381+ }
382+
383+
384+ [ TestMethod ]
385+ [ ExpectedException ( typeof ( InfluxDBException ) ) ]
386+ public async Task TestPostPointsAsync_PartialWrite ( )
387+ {
388+ var client = new InfluxDBClient ( influxUrl , dbUName , dbpwd ) ;
389+ var time = DateTime . Now ;
390+ var today = DateTime . Now . ToShortDateString ( ) ;
391+ var now = DateTime . Now . ToShortTimeString ( ) ;
392+
393+ var points = new List < IInfluxDatapoint > ( ) ;
394+
395+
396+ var valDouble = new InfluxDatapoint < double > ( ) ;
397+ valDouble . UtcTimestamp = DateTime . UtcNow ;
398+ valDouble . Tags . Add ( "TestDate" , today ) ;
399+ valDouble . Tags . Add ( "TestTime" , now ) ;
400+ valDouble . Fields . Add ( "Doublefield" , DataGen . RandomDouble ( ) ) ;
401+ valDouble . Fields . Add ( "Doublefield2" , Double . NaN ) ;
402+ valDouble . MeasurementName = measurementName ;
403+ valDouble . Precision = TimePrecision . Seconds ;
404+ points . Add ( valDouble ) ;
405+
406+
407+ for ( int i = 0 ; i < 5 ; i ++ )
408+ {
409+ var valInt = new InfluxDatapoint < int > ( ) ;
410+ valInt . UtcTimestamp = DateTime . UtcNow . AddSeconds ( - 1 * DataGen . RandomInt ( 3600 ) ) ;
411+ valInt . Tags . Add ( "TestDate" , today ) ;
412+ valInt . Tags . Add ( "TestTime" , now ) ;
413+ valInt . Fields . Add ( "Intfield" , DataGen . RandomInt ( ) ) ;
414+ valInt . Fields . Add ( "Intfield2" , DataGen . RandomInt ( ) ) ;
415+ valInt . MeasurementName = measurementName ;
416+ valInt . Precision = TimePrecision . Seconds ;
417+ points . Add ( valInt ) ;
418+ }
419+
420+ valDouble = new InfluxDatapoint < double > ( ) ;
421+ valDouble . UtcTimestamp = DateTime . UtcNow ;
422+ valDouble . Tags . Add ( "TestDate" , today ) ;
423+ valDouble . Tags . Add ( "TestTime" , now ) ;
424+ valDouble . Fields . Add ( "Doublefield" , DataGen . RandomDouble ( ) ) ;
425+ valDouble . Fields . Add ( "Doublefield2" , Double . NaN ) ;
426+ valDouble . MeasurementName = measurementName ;
427+ valDouble . Precision = TimePrecision . Seconds ;
428+ points . Add ( valDouble ) ;
429+
430+ var r = await client . PostPointsAsync ( dbName , points ) ;
431+ Assert . IsTrue ( r , "PostPointsAsync retunred false" ) ;
432+
433+ }
434+
347435 /// <summary>
348436 /// This will create 2000 objects, and posts them to Influx. Since the precision is random, many points get overwritten
349437 /// (e.g. you can have only point per hour at hour precision.
@@ -355,49 +443,49 @@ public async Task TestBachingPostPointsAsync()
355443 try
356444 {
357445 var client = new InfluxDBClient ( influxUrl , dbUName , dbpwd ) ;
358-
359- var rand = new Random ( ) ;
446+
360447 var points = new List < IInfluxDatapoint > ( ) ;
361448
362449 var today = DateTime . Now . ToShortDateString ( ) ;
363450 var now = DateTime . Now . ToShortTimeString ( ) ;
451+ var start = DateTime . Now . AddDays ( - 5 ) ;
452+ var end = DateTime . Now ;
364453
365- for ( int i = 0 ; i < 500 ; i ++ )
454+ for ( int i = 0 ; i < 5000 ; i ++ )
366455 {
367- var utcTime = DateTime . UtcNow ;
368456 var valDouble = new InfluxDatapoint < double > ( ) ;
369- valDouble . UtcTimestamp = utcTime ;
457+ valDouble . UtcTimestamp = DataGen . RandomDate ( start , end ) ;
370458 valDouble . Tags . Add ( "TestDate" , today ) ;
371459 valDouble . Tags . Add ( "TestTime" , now ) ;
372- valDouble . Fields . Add ( "Doublefield" , rand . NextDouble ( ) ) ;
373- valDouble . Fields . Add ( "Doublefield2" , rand . NextDouble ( ) ) ;
460+ valDouble . Fields . Add ( "Doublefield" , DataGen . RandomDouble ( ) ) ;
461+ valDouble . Fields . Add ( "Doublefield2" , DataGen . RandomDouble ( ) ) ;
374462 valDouble . MeasurementName = measurementName ;
375- valDouble . Precision = ( TimePrecision ) ( rand . Next ( ) % 6 ) + 1 ;
463+ valDouble . Precision = ( TimePrecision ) ( DataGen . RandomInt ( ) % 6 ) + 1 ;
376464
377465 var valInt = new InfluxDatapoint < int > ( ) ;
378- valInt . UtcTimestamp = utcTime ;
466+ valInt . UtcTimestamp = DataGen . RandomDate ( start , end ) ;
379467 valInt . Tags . Add ( "TestDate" , today ) ;
380468 valInt . Tags . Add ( "TestTime" , now ) ;
381- valInt . Fields . Add ( "Intfield" , rand . Next ( ) ) ;
382- valInt . Fields . Add ( "Intfield2" , rand . Next ( ) ) ;
469+ valInt . Fields . Add ( "Intfield" , DataGen . RandomInt ( ) ) ;
470+ valInt . Fields . Add ( "Intfield2" , DataGen . RandomInt ( ) ) ;
383471 valInt . MeasurementName = measurementName ;
384- valInt . Precision = ( TimePrecision ) ( rand . Next ( ) % 6 ) + 1 ;
472+ valInt . Precision = ( TimePrecision ) ( DataGen . RandomInt ( ) % 6 ) + 1 ;
385473
386474 var valBool = new InfluxDatapoint < bool > ( ) ;
387- valBool . UtcTimestamp = utcTime ;
475+ valBool . UtcTimestamp = DataGen . RandomDate ( start , end ) ;
388476 valBool . Tags . Add ( "TestDate" , today ) ;
389477 valBool . Tags . Add ( "TestTime" , now ) ;
390478 valBool . Fields . Add ( "Booleanfield" , DateTime . Now . Ticks % 2 == 0 ) ;
391479 valBool . MeasurementName = measurementName ;
392- valBool . Precision = ( TimePrecision ) ( rand . Next ( ) % 6 ) + 1 ;
480+ valBool . Precision = ( TimePrecision ) ( DataGen . RandomInt ( ) % 6 ) + 1 ;
393481
394482 var valString = new InfluxDatapoint < string > ( ) ;
395- valString . UtcTimestamp = utcTime ;
483+ valString . UtcTimestamp = DataGen . RandomDate ( start , end ) ;
396484 valString . Tags . Add ( "TestDate" , today ) ;
397485 valString . Tags . Add ( "TestTime" , now ) ;
398- valString . Fields . Add ( "Stringfield" , GenerateRandomString ( ) ) ;
486+ valString . Fields . Add ( "Stringfield" , DataGen . RandomString ( ) ) ;
399487 valString . MeasurementName = measurementName ;
400- valString . Precision = ( TimePrecision ) ( rand . Next ( ) % 6 ) + 1 ;
488+ valString . Precision = ( TimePrecision ) ( DataGen . RandomInt ( ) % 6 ) + 1 ;
401489
402490
403491 points . Add ( valString ) ;
0 commit comments