2 using System.Collections.Generic;
3 using System.Threading.Tasks;
14 [Trait(
"Category",
"Integration")]
15 [Trait(
"Category",
"Async")]
21 using var ctx =
new TestContext(
"async_table_basic");
23 var typeDef =
@"{""type"":""record"",""name"":""test"",""fields"":[{""name"":""id"",""type"":""int""}]}";
24 var typeResp = await ctx.Kinetica.CreateTypeAsync(typeDef,
"test_type",
new Dictionary<
string, IList<string>>(),
new Dictionary<string, string>());
26 var tableName = ctx.QualifiedTable(
"test_table");
27 var resp = await ctx.Kinetica.CreateTableAsync(tableName, typeResp.type_id,
new Dictionary<string, string>());
29 Assert.Equal(tableName, resp.table_name);
30 Assert.Equal(typeResp.type_id, resp.type_id);
36 using var ctx =
new TestContext(
"async_table_opts");
38 var typeDef =
@"{""type"":""record"",""name"":""opts"",""fields"":[{""name"":""id"",""type"":""int""}]}";
39 var typeResp = await ctx.Kinetica.CreateTypeAsync(typeDef,
"opts_type",
new Dictionary<
string, IList<string>>(),
new Dictionary<string, string>());
41 var tableName = ctx.QualifiedTable(
"opts_table");
42 var options =
new Dictionary<string, string>
44 {
"is_replicated",
"true" }
47 var resp = await ctx.Kinetica.CreateTableAsync(tableName, typeResp.type_id, options);
49 Assert.Equal(tableName, resp.table_name);
55 using var ctx =
new TestContext(
"async_has_table_y");
57 var typeDef =
@"{""type"":""record"",""name"":""exists"",""fields"":[{""name"":""id"",""type"":""int""}]}";
58 var typeResp = await ctx.Kinetica.CreateTypeAsync(typeDef,
"exists_type",
new Dictionary<
string, IList<string>>(),
new Dictionary<string, string>());
60 var tableName = ctx.QualifiedTable(
"exists_table");
61 await ctx.Kinetica.CreateTableAsync(tableName, typeResp.type_id,
new Dictionary<string, string>());
63 var hasResp = await ctx.Kinetica.HasTableAsync(tableName,
new Dictionary<string, string>());
65 Assert.True(hasResp.table_exists);
66 Assert.Equal(tableName, hasResp.table_name);
72 using var ctx =
new TestContext(
"async_has_table_n");
74 var tableName = ctx.QualifiedTable(
"nonexistent");
75 var hasResp = await ctx.Kinetica.HasTableAsync(tableName,
new Dictionary<string, string>());
77 Assert.False(hasResp.table_exists);
83 using var ctx =
new TestContext(
"async_clear_table");
86 var tableName = ctx.QualifiedTable(
"clear_table");
87 await ctx.Kinetica.ExecuteSqlAsync($
"CREATE TABLE {tableName} (id INT NOT NULL, PRIMARY KEY (id))");
90 await ctx.Kinetica.ExecuteSqlAsync($
"INSERT INTO {tableName} (id) VALUES (1)");
91 await ctx.Kinetica.ExecuteSqlAsync($
"INSERT INTO {tableName} (id) VALUES (2)");
92 await ctx.Kinetica.ExecuteSqlAsync($
"INSERT INTO {tableName} (id) VALUES (3)");
95 var getBefore = await ctx.Kinetica.ExecuteSqlAsync($
"SELECT * FROM {tableName}", 0, -9999);
96 Assert.Equal(3, getBefore.total_number_of_records);
99 var clearResp = await ctx.Kinetica.ClearTableAsync(tableName,
null,
new Dictionary<string, string>());
100 Assert.Equal(tableName, clearResp.table_name);
103 var hasAfter = await ctx.Kinetica.HasTableAsync(tableName,
new Dictionary<string, string>());
104 Assert.False(hasAfter.table_exists);
110 using var ctx =
new TestContext(
"async_multi_tables");
112 var typeDef =
@"{""type"":""record"",""name"":""shared"",""fields"":[{""name"":""id"",""type"":""int""}]}";
113 var typeResp = await ctx.Kinetica.CreateTypeAsync(typeDef,
"shared_type",
new Dictionary<
string, IList<string>>(),
new Dictionary<string, string>());
116 var table1 = ctx.QualifiedTable(
"table1");
117 var table2 = ctx.QualifiedTable(
"table2");
118 var table3 = ctx.QualifiedTable(
"table3");
120 await ctx.Kinetica.CreateTableAsync(table1, typeResp.type_id,
new Dictionary<string, string>());
121 await ctx.Kinetica.CreateTableAsync(table2, typeResp.type_id,
new Dictionary<string, string>());
122 await ctx.Kinetica.CreateTableAsync(table3, typeResp.type_id,
new Dictionary<string, string>());
125 foreach (var table
in new[] { table1, table2, table3 })
127 var hasResp = await ctx.Kinetica.HasTableAsync(table,
new Dictionary<string, string>());
128 Assert.True(hasResp.table_exists);
Async tests for table management endpoints.
async Task TestHasTableExistsAsync()
Test context that manages schema and cleanup for integration tests.
async Task TestHasTableNotExistsAsync()
async Task TestCreateTableBasicAsync()
async Task TestCreateTableWithOptionsAsync()
async Task TestClearTableAsync()
async Task TestCreateMultipleTablesSameTypeAsync()