@@ -51,7 +51,9 @@ void setup() {
5151class Test {
5252public:
5353 static void run ();
54- private:
54+ private: // helpers
55+ static void setServerUrl (InfluxDBClient &client, String serverUrl);
56+ private: // tests
5557 static void testOptions ();
5658 static void testEcaping ();
5759 static void testPoint ();
@@ -481,16 +483,29 @@ void Test::testRetryOnFailedConnection() {
481483
482484 InfluxDBClient clientOk (INFLUXDB_CLIENT_TESTING_URL, INFLUXDB_CLIENT_TESTING_ORG, INFLUXDB_CLIENT_TESTING_BUC, INFLUXDB_CLIENT_TESTING_TOK);
483485 clientOk.setWriteOptions (WriteOptions ().batchSize (1 ).bufferSize (5 ));
486+ waitServer (clientOk, true );
487+ TEST_ASSERT (clientOk.validateConnection ());
488+ Point *p = createPoint (" test1" );
489+ TEST_ASSERT (clientOk.writePoint (*p));
490+ delete p;
491+ p = createPoint (" test1" );
492+ TEST_ASSERT (clientOk.writePoint (*p));
493+ delete p;
494+ TEST_ASSERT (clientOk.isBufferEmpty ());
495+
484496 clientOk.setHTTPOptions (HTTPOptions ().httpReadTimeout (500 ));
485497
486498 Serial.println (" Stop server!" );
487499 waitServer (clientOk, false );
488500 TEST_ASSERT (!clientOk.validateConnection ());
489- Point *p = createPoint (" test1" );
501+ TEST_ASSERTM (clientOk._lastRetryAfter == 0 , String (clientOk._lastRetryAfter ));
502+ p = createPoint (" test1" );
490503 TEST_ASSERT (!clientOk.writePoint (*p));
504+ TEST_ASSERTM (clientOk._lastRetryAfter == 0 , String (clientOk._lastRetryAfter ));
491505 delete p;
492506 p = createPoint (" test1" );
493507 TEST_ASSERT (!clientOk.writePoint (*p));
508+ TEST_ASSERTM (clientOk._lastRetryAfter == 0 , String (clientOk._lastRetryAfter ));
494509 delete p;
495510
496511 Serial.println (" Start server!" );
@@ -499,6 +514,7 @@ void Test::testRetryOnFailedConnection() {
499514 TEST_ASSERT (clientOk.validateConnection ());
500515 p = createPoint (" test1" );
501516 TEST_ASSERT (clientOk.writePoint (*p));
517+ TEST_ASSERTM (clientOk._lastRetryAfter == 0 , String (clientOk._lastRetryAfter ));
502518 delete p;
503519 TEST_ASSERT (clientOk.isBufferEmpty ());
504520 String query = " select" ;
@@ -525,8 +541,8 @@ void Test::testBufferOverwriteBatchsize1() {
525541 TEST_ASSERT (client.isBufferFull ());
526542 TEST_ASSERTM (client._writeBuffer [0 ]->buffer [0 ].indexOf (" index=10i" ) > 0 , client._writeBuffer [0 ]->buffer [0 ]);
527543
528- client. _serverUrl = INFLUXDB_CLIENT_TESTING_URL;
529- client. setUrls ();
544+ setServerUrl ( client, INFLUXDB_CLIENT_TESTING_URL ) ;
545+
530546 waitServer (client, true );
531547 client.setHTTPOptions (HTTPOptions ().httpReadTimeout (5000 ));
532548 Point *p = createPoint (" test1" );
@@ -566,8 +582,7 @@ void Test::testBufferOverwriteBatchsize5() {
566582 TEST_ASSERT (client.isBufferFull ());
567583 TEST_ASSERTM (client._writeBuffer [0 ]->buffer [0 ].indexOf (" index=20i" ) > 0 , client._writeBuffer [0 ]->buffer [0 ]);
568584
569- client._serverUrl = INFLUXDB_CLIENT_TESTING_URL;
570- client.setUrls ();
585+ setServerUrl (client,INFLUXDB_CLIENT_TESTING_URL );
571586
572587 waitServer (client, true );
573588 client.setHTTPOptions (HTTPOptions ().httpReadTimeout (5000 ));
@@ -1685,34 +1700,42 @@ void Test::testRetryInterval() {
16851700
16861701 String rec = " test1,direction=permanent-set,x-code=502,SSID=bonitoo.io,device_name=ESP32,device_id=4272205360 temperature=28.60,humidity=86i,code=69i,door=false,status=\" failed\" ,index=0" ;
16871702 TEST_ASSERT (!client.writeRecord (rec));
1703+ TEST_ASSERT (!client.canSendRequest ());
16881704 TEST_ASSERTM (client._lastRetryAfter == 2 , String (client._lastRetryAfter ));
16891705 TEST_ASSERTM (client._writeBuffer [0 ]->retryCount == 1 , String (client._writeBuffer [0 ]->retryCount ));
16901706 delay (2000 );
16911707 rec = " test1,direction=permanent-unset,SSID=bonitoo.io,device_name=ESP32,device_id=4272205360 temperature=28.60,humidity=86i,code=69i,door=false,status=\" failed\" ,index=2" ;
16921708 TEST_ASSERT (!client.writeRecord (rec));
1709+ TEST_ASSERT (!client.canSendRequest ());
16931710 TEST_ASSERTM (client._lastRetryAfter == 4 , String (client._lastRetryAfter ));
16941711 TEST_ASSERTM (client._writeBuffer [0 ]->retryCount == 2 , String (client._writeBuffer [0 ]->retryCount ));
16951712 delay (4000 );
16961713 rec = " test1,SSID=bonitoo.io,device_name=ESP32,device_id=4272205360 temperature=28.60,humidity=86i,code=69i,door=false,status=\" failed\" ,index=3" ;
16971714 TEST_ASSERT (!client.writeRecord (rec));
1715+ TEST_ASSERT (!client.canSendRequest ());
16981716 TEST_ASSERTM (client._lastRetryAfter == 8 , String (client._lastRetryAfter ));
16991717 TEST_ASSERTM (client._writeBuffer [0 ]->retryCount == 3 , String (client._writeBuffer [0 ]->retryCount ));
17001718 delay (8000 );
17011719 rec = " test1,SSID=bonitoo.io,device_name=ESP32,device_id=4272205360 temperature=28.60,humidity=86i,code=69i,door=false,status=\" failed\" ,index=4" ;
17021720 TEST_ASSERT (!client.writeRecord (rec));
1721+ TEST_ASSERT (!client.canSendRequest ());
17031722 TEST_ASSERTM (client._lastRetryAfter == 2 , String (client._lastRetryAfter ));
17041723 TEST_ASSERT (!client._writeBuffer [0 ]);
17051724 TEST_ASSERTM (client._writeBuffer [1 ]->retryCount == 0 , String (client._writeBuffer [1 ]->retryCount ));
17061725
17071726 delay (2000 );
17081727 rec = " test1,SSID=bonitoo.io,device_name=ESP32,device_id=4272205360 temperature=28.60,humidity=86i,code=69i,door=false,status=\" failed\" ,index=5" ;
17091728 TEST_ASSERT (!client.writeRecord (rec));
1729+ TEST_ASSERT (!client.canSendRequest ());
17101730 TEST_ASSERTM (client._lastRetryAfter == 2 , String (client._lastRetryAfter ));
17111731 TEST_ASSERT (!client._writeBuffer [0 ]);
17121732 TEST_ASSERTM (client._writeBuffer [1 ]->retryCount == 1 , String (client._writeBuffer [1 ]->retryCount ));
17131733
17141734 delay (2000 );
1735+ TEST_ASSERT (client.canSendRequest ());
17151736 TEST_ASSERTM (client.flushBuffer (), client.getLastErrorMessage ());
1737+ TEST_ASSERT (client.isBufferEmpty ());
1738+ TEST_ASSERT (!client.isBufferFull ());
17161739 String query = " select" ;
17171740 FluxQueryResult q = client.query (query);
17181741 TEST_ASSERT (countLines (q) == 3 ); // point with the direction tag is skipped
@@ -1782,6 +1805,11 @@ void Test::testDefaultTags() {
17821805 deleteAll (INFLUXDB_CLIENT_TESTING_URL);
17831806}
17841807
1808+ void Test::setServerUrl (InfluxDBClient &client, String serverUrl) {
1809+ client._serverUrl = serverUrl;
1810+ client.setUrls ();
1811+ }
1812+
17851813Point *createPoint (String measurement) {
17861814 Point *point = new Point (measurement);
17871815 point->addTag (" SSID" , WiFi.SSID ());
0 commit comments