2 using System.Collections.Generic;
3 using System.Threading.Tasks;
14 [Trait(
"Category",
"Integration")]
15 [Trait(
"Category",
"Async")]
18 private async Task<string> SetupTestTableAsync(
TestContext ctx,
int numRecords)
23 await ctx.
Kinetica.ExecuteSqlAsync($
"CREATE TABLE {tableName} (id INT NOT NULL, x DOUBLE, y DOUBLE, PRIMARY KEY (id))");
26 for (
int i = 0; i < numRecords; i++)
28 await ctx.
Kinetica.ExecuteSqlAsync($
"INSERT INTO {tableName} (id, x, y) VALUES ({i}, {i * 0.5}, {i * 1.5})");
38 var tableName = await SetupTestTableAsync(ctx, 100);
40 var resp = await ctx.Kinetica.ExecuteSqlAsync($
"SELECT * FROM {tableName}", 0, -9999);
42 Assert.Equal(100, resp.total_number_of_records);
43 Assert.False(resp.has_more_records);
50 var tableName = await SetupTestTableAsync(ctx, 100);
53 var page1 = await ctx.Kinetica.ExecuteSqlAsync($
"SELECT * FROM {tableName}", 0, 25);
55 Assert.Equal(100, page1.total_number_of_records);
56 Assert.True(page1.has_more_records);
59 var page2 = await ctx.Kinetica.ExecuteSqlAsync($
"SELECT * FROM {tableName}", 25, 25);
61 Assert.True(page2.has_more_records);
64 var page4 = await ctx.Kinetica.ExecuteSqlAsync($
"SELECT * FROM {tableName}", 75, 25);
66 Assert.False(page4.has_more_records);
72 using var ctx =
new TestContext(
"async_get_filter");
73 var tableName = await SetupTestTableAsync(ctx, 100);
76 var resp = await ctx.Kinetica.ExecuteSqlAsync($
"SELECT * FROM {tableName} WHERE x < 25", 0, -9999);
78 Assert.Equal(50, resp.total_number_of_records);
85 var tableName = await SetupTestTableAsync(ctx, 10);
88 var resp = await ctx.Kinetica.ExecuteSqlAsync($
"SELECT * FROM {tableName} ORDER BY x DESC", 0, -9999);
90 Assert.Equal(10, resp.total_number_of_records);
92 Assert.True(resp.data.Count > 0);
98 using var ctx =
new TestContext(
"async_get_limit0");
99 var tableName = await SetupTestTableAsync(ctx, 100);
102 var resp = await ctx.Kinetica.ExecuteSqlAsync($
"SELECT * FROM {tableName}", 0, 0);
104 Assert.Equal(100, resp.total_number_of_records);
105 Assert.Empty(resp.data);
111 using var ctx =
new TestContext(
"async_get_empty");
112 var tableName = await SetupTestTableAsync(ctx, 0);
114 var resp = await ctx.Kinetica.ExecuteSqlAsync($
"SELECT * FROM {tableName}", 0, -9999);
116 Assert.Equal(0, resp.total_number_of_records);
117 Assert.Empty(resp.data);
118 Assert.False(resp.has_more_records);
124 using var ctx =
new TestContext(
"async_get_offset");
125 var tableName = await SetupTestTableAsync(ctx, 10);
128 var resp = await ctx.Kinetica.ExecuteSqlAsync($
"SELECT * FROM {tableName}", 100, 10);
130 Assert.Equal(10, resp.total_number_of_records);
131 Assert.Empty(resp.data);
async Task TestGetRecordsAllAsync()
Test context that manages schema and cleanup for integration tests.
kinetica.Kinetica Kinetica
async Task TestGetRecordsWithSortingAsync()
async Task TestGetRecordsFromEmptyTableAsync()
string QualifiedTable(string tableName)
Get a qualified table name (schema.table).
async Task TestGetRecordsOffsetBeyondEndAsync()
async Task TestGetRecordsPaginationAsync()
Async tests for get_records endpoint.
async Task TestGetRecordsWithFilterAsync()
async Task TestGetRecordsLimitZeroAsync()