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_type_basic");
23 var typeDef =
@"{""type"":""record"",""name"":""simple"",""fields"":[{""name"":""id"",""type"":""int""},{""name"":""name"",""type"":""string""}]}";
25 var resp = await ctx.Kinetica.CreateTypeAsync(typeDef,
"simple_type",
new Dictionary<
string, IList<string>>(),
new Dictionary<string, string>());
27 Assert.False(
string.IsNullOrEmpty(resp.type_id));
28 Assert.Equal(
"simple_type", resp.label);
36 var typeDef =
@"{""type"":""record"",""name"":""pk_type"",""fields"":[{""name"":""id"",""type"":""int""},{""name"":""value"",""type"":""double""}]}";
38 var properties =
new Dictionary<string, IList<string>>
40 {
"id",
new List<string> {
"int",
"primary_key" } }
43 var resp = await ctx.Kinetica.CreateTypeAsync(typeDef,
"pk_type", properties,
new Dictionary<string, string>());
45 Assert.False(
string.IsNullOrEmpty(resp.type_id));
51 using var ctx =
new TestContext(
"async_type_props");
53 var typeDef =
@"{""type"":""record"",""name"":""multi_props"",""fields"":[{""name"":""id"",""type"":""int""},{""name"":""x"",""type"":""double""},{""name"":""name"",""type"":""string""}]}";
55 var properties =
new Dictionary<string, IList<string>>
57 {
"id",
new List<string> {
"int",
"primary_key" } },
58 {
"x",
new List<string> {
"data" } },
59 {
"name",
new List<string> {
"char32" } }
62 var resp = await ctx.Kinetica.CreateTypeAsync(typeDef,
"multi_prop_type", properties,
new Dictionary<string, string>());
64 Assert.False(
string.IsNullOrEmpty(resp.type_id));
70 using var ctx =
new TestContext(
"async_type_complex");
72 var typeDef =
@"{""type"":""record"",""name"":""complex_type"",""fields"":[{""name"":""id"",""type"":""int""},{""name"":""timestamp"",""type"":""long""},{""name"":""value"",""type"":""double""},{""name"":""name"",""type"":""string""},{""name"":""active"",""type"":""int""},{""name"":""score"",""type"":""float""}]}";
74 var properties =
new Dictionary<string, IList<string>>
76 {
"id",
new List<string> {
"int",
"primary_key" } }
79 var resp = await ctx.Kinetica.CreateTypeAsync(typeDef,
"complex_type", properties,
new Dictionary<string, string>());
81 Assert.False(
string.IsNullOrEmpty(resp.type_id));
87 using var ctx =
new TestContext(
"async_has_type_exists");
90 var typeDef =
@"{""type"":""record"",""name"":""test"",""fields"":[{""name"":""id"",""type"":""int""}]}";
91 var createResp = await ctx.Kinetica.CreateTypeAsync(typeDef,
"test_type",
new Dictionary<
string, IList<string>>(),
new Dictionary<string, string>());
94 var hasResp = await ctx.Kinetica.HasTypeAsync(createResp.type_id,
new Dictionary<string, string>());
96 Assert.True(hasResp.type_exists);
102 using var ctx =
new TestContext(
"async_has_type_not");
104 var hasResp = await ctx.Kinetica.HasTypeAsync(
"nonexistent_type_async_12345",
new Dictionary<string, string>());
106 Assert.False(hasResp.type_exists);
112 using var ctx =
new TestContext(
"async_type_string");
115 var typeDef =
@"{""type"":""record"",""name"":""string_type"",""fields"":[{""name"":""id"",""type"":""int""},{""name"":""name"",""type"":""string""}]}";
117 var resp = await ctx.Kinetica.CreateTypeAsync(typeDef,
"string_type",
new Dictionary<
string, IList<string>>(),
new Dictionary<string, string>());
119 Assert.False(
string.IsNullOrEmpty(resp.type_id));
Async tests for type management endpoints (create_type, has_type).
async Task TestHasTypeExistsAsync()
async Task TestCreateTypeWithMultiplePropertiesAsync()
async Task TestHasTypeNotExistsAsync()
async Task TestCreateTypeWithPrimaryKeyAsync()
Test context that manages schema and cleanup for integration tests.
async Task TestCreateTypeComplexSchemaAsync()
async Task TestCreateTypeWithStringFieldAsync()
async Task TestCreateTypeBasicAsync()