102 lines
4 KiB
C++
102 lines
4 KiB
C++
|
#include "E2ETest.h"
|
||
|
|
||
|
void E2ETest::run() {
|
||
|
failures = 0;
|
||
|
Serial.println("E2E Tests");
|
||
|
testBuckets();
|
||
|
testWriteAndQuery();
|
||
|
Serial.printf("E2E Tests %s\n", failures ? "FAILED" : "SUCCEEDED");
|
||
|
}
|
||
|
|
||
|
void E2ETest::testBuckets() {
|
||
|
TEST_INIT("testBuckets");
|
||
|
InfluxDBClient client(E2ETest::e2eApiUrl, E2ETest::orgName, E2ETest::bucketName, E2ETest::token);
|
||
|
BucketsClient buckets = client.getBucketsClient();
|
||
|
TEST_ASSERT(!buckets.isNull());
|
||
|
TEST_ASSERTM(client.validateConnection(),client.getLastErrorMessage());
|
||
|
String id = buckets.getOrgID("my-org");
|
||
|
TEST_ASSERTM( isValidID(id.c_str()), id.length()?id:buckets.getLastErrorMessage());
|
||
|
id = buckets.getOrgID("org");
|
||
|
TEST_ASSERT( id == "");
|
||
|
TEST_ASSERT(buckets.checkBucketExists("my-bucket"));
|
||
|
|
||
|
TEST_ASSERT(!buckets.checkBucketExists("bucket-1"));
|
||
|
Bucket b = buckets.createBucket("bucket-1");
|
||
|
TEST_ASSERTM(!b.isNull(), buckets.getLastErrorMessage());
|
||
|
TEST_ASSERTM(isValidID(b.getID()), b.getID());
|
||
|
TEST_ASSERTM(!strcmp(b.getName(), "bucket-1"), b.getName());
|
||
|
TEST_ASSERTM(b.getExpire() == 0, String(b.getExpire()));
|
||
|
TEST_ASSERT(buckets.checkBucketExists("bucket-1"));
|
||
|
TEST_ASSERT(buckets.deleteBucket(b.getID()));;
|
||
|
TEST_ASSERT(!buckets.checkBucketExists("bucket-1"));
|
||
|
TEST_ASSERT(!buckets.deleteBucket("bucket-1"));
|
||
|
|
||
|
uint32_t monthSec = 3600*24*30;
|
||
|
b = buckets.createBucket("bucket-2", monthSec);
|
||
|
TEST_ASSERTM(!b.isNull(), buckets.getLastErrorMessage());
|
||
|
TEST_ASSERT(buckets.checkBucketExists("bucket-2"));
|
||
|
TEST_ASSERTM(b.getExpire() == monthSec, String(b.getExpire()));
|
||
|
|
||
|
uint32_t yearSec = 12*monthSec;
|
||
|
Bucket b2 = buckets.createBucket("bucket-3", yearSec);
|
||
|
TEST_ASSERTM(!b2.isNull(), buckets.getLastErrorMessage());
|
||
|
TEST_ASSERT(buckets.checkBucketExists("bucket-3"));
|
||
|
TEST_ASSERTM(b2.getExpire() == yearSec, String(b2.getExpire()));
|
||
|
|
||
|
TEST_ASSERT(buckets.checkBucketExists("bucket-2"));
|
||
|
TEST_ASSERT(buckets.deleteBucket(b.getID()));
|
||
|
TEST_ASSERT(buckets.checkBucketExists("bucket-3"));
|
||
|
TEST_ASSERT(buckets.deleteBucket(b2.getID()));;
|
||
|
TEST_ASSERT(!buckets.checkBucketExists("bucket-3"));
|
||
|
TEST_ASSERT(!buckets.checkBucketExists("bucket-2"));
|
||
|
|
||
|
TEST_END();
|
||
|
}
|
||
|
|
||
|
const char *QueryTemplate PROGMEM = "from(bucket: \"%s\") |> range(start: %ld) |> pivot(rowKey:[\"_time\"],columnKey: [\"_field\"],valueColumn: \"_value\") |> count(column: \"index\")";
|
||
|
|
||
|
void E2ETest::testWriteAndQuery() {
|
||
|
TEST_INIT("testWriteAndQuery");
|
||
|
const char *TestBucket = "test-bucket";
|
||
|
InfluxDBClient client(E2ETest::e2eApiUrl, E2ETest::orgName, TestBucket, E2ETest::token);
|
||
|
|
||
|
|
||
|
TEST_ASSERTM(client.validateConnection(),client.getLastErrorMessage());
|
||
|
time_t start = time(nullptr);
|
||
|
BucketsClient buckets = client.getBucketsClient();
|
||
|
TEST_ASSERT(!buckets.isNull());
|
||
|
Bucket t = buckets.findBucket(TestBucket);
|
||
|
if(!t.isNull()) {
|
||
|
Serial.println(F("Bucket already exists, deleting."));
|
||
|
TEST_ASSERTM(buckets.deleteBucket(t.getID()), buckets.getLastErrorMessage());
|
||
|
}
|
||
|
TEST_ASSERT(!buckets.checkBucketExists(TestBucket));
|
||
|
Bucket b = buckets.createBucket(TestBucket);
|
||
|
TEST_ASSERTM(!b.isNull(), buckets.getLastErrorMessage());
|
||
|
|
||
|
delay(1000);
|
||
|
for (int i = 0; i < 5; i++) {
|
||
|
Point *p = createPoint("test1");
|
||
|
p->addField("index", i);
|
||
|
TEST_ASSERTM(client.writePoint(*p),client.getLastErrorMessage());
|
||
|
delete p;
|
||
|
}
|
||
|
|
||
|
char *query = new char[strlen_P(QueryTemplate)+strlen(TestBucket)+10+1]; //10 - maximum=length of timestamo
|
||
|
sprintf_P(query, QueryTemplate, TestBucket, start);
|
||
|
FluxQueryResult result = client.query(query);
|
||
|
delete [] query;
|
||
|
TEST_ASSERTM(result.next(), result.getError());
|
||
|
FluxValue val = result.getValueByName("index");
|
||
|
TEST_ASSERT(!val.isNull());
|
||
|
TEST_ASSERTM(val.getLong() == 5, String(val.getLong()));
|
||
|
TEST_ASSERTM(!result.next(), result.getError());
|
||
|
|
||
|
result.close();
|
||
|
|
||
|
TEST_ASSERT(buckets.deleteBucket(b.getID()));
|
||
|
|
||
|
|
||
|
TEST_END();
|
||
|
}
|