Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions src/Microsoft.DotNet.Interactive.Kql.Tests/KqlConnectionTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,34 @@ public async Task It_can_store_result_set_with_a_name()
.Which.Value.Should().BeAssignableTo<IEnumerable<TabularDataResource>>();
}

[KqlFact]
public async Task When_variable_does_not_exist_then_an_error_is_returned()
{
var cluster = KqlFactAttribute.GetClusterForTests();
using var kernel = await CreateKernelAsync();
var result = await kernel.SubmitCodeAsync(
$"#!connect kql --kernel-name KustoHelp --cluster \"{cluster}\" --database \"Samples\"");


result.KernelEvents
.ToSubscribedList()
.Should()
.NotContainErrors();

var kqlKernel = kernel.FindKernelByName("kql-KustoHelp");

result = await kqlKernel.SendAsync(new RequestValue("my_data_result"));

using var events = result.KernelEvents.ToSubscribedList();

events.Should()
.ContainSingle<CommandFailed>()
.Which
.Message
.Should()
.Contain("Value 'my_data_result' not found in kernel kql-KustoHelp");
}

[KqlFact]
public async Task sending_query_to_kusto_will_generate_suggestions()
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -297,6 +297,34 @@ await kernel.SubmitCodeAsync($@"
.Be(1);
}

[MsSqlFact]
public async Task When_variable_does_not_exist_then_an_error_is_returned()
{
var connectionString = MsSqlFactAttribute.GetConnectionStringForTests();
using var kernel = await CreateKernelAsync();
var result = await kernel.SubmitCodeAsync(
$"#!connect mssql --kernel-name adventureworks \"{connectionString}\"");


result.KernelEvents
.ToSubscribedList()
.Should()
.NotContainErrors();

var sqlKernel = kernel.FindKernelByName("sql-adventureworks");

result = await sqlKernel.SendAsync(new RequestValue("my_data_result"));

using var events = result.KernelEvents.ToSubscribedList();

events.Should()
.ContainSingle<CommandFailed>()
.Which
.Message
.Should()
.Contain("Value 'my_data_result' not found in kernel sql-adventureworks");
}

[MsSqlFact]
public async Task It_can_store_multiple_result_set_with_a_name()
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -351,6 +351,10 @@ public Task HandleAsync(RequestValue command, KernelInvocationContext context)
{
context.PublishValueProduced(command, value);
}
else
{
context.Fail(command, message: $"Value '{command.Name}' not found in kernel {Name}");
}

return Task.CompletedTask;
}
Expand Down