autogen/dotnet/test/AutoGen.DotnetInteractive.Tests/DotnetInteractiveStdioKernelConnectorTests.cs
Griffin Bassman 9af6883fbe
fix: dotnet test CI and standardize test categories (#5286)
Co-authored-by: Ryan Sweet <rysweet@microsoft.com>
2025-02-03 11:49:08 -05:00

86 lines
2.4 KiB
C#

// Copyright (c) Microsoft Corporation. All rights reserved.
// DotnetInteractiveStdioKernelConnectorTests.cs
using AutoGen.DotnetInteractive.Extension;
using FluentAssertions;
using Microsoft.DotNet.Interactive;
using Xunit;
using Xunit.Abstractions;
namespace AutoGen.DotnetInteractive.Tests;
[Collection("Sequential")]
[Trait("Category", "UnitV1Kernel")]
public class DotnetInteractiveStdioKernelConnectorTests : IDisposable
{
private string _workingDir;
private Kernel kernel;
public DotnetInteractiveStdioKernelConnectorTests(ITestOutputHelper output)
{
_workingDir = Path.Combine(Path.GetTempPath(), "test", Path.GetRandomFileName());
if (!Directory.Exists(_workingDir))
{
Directory.CreateDirectory(_workingDir);
}
kernel = DotnetInteractiveKernelBuilder
.CreateKernelBuilder(_workingDir)
.RestoreDotnetInteractive()
.AddPythonKernel("python3")
.BuildAsync().Result;
}
[Fact]
public async Task ItAddCSharpKernelTestAsync()
{
var csharpCode = """
#r "nuget:Microsoft.ML, 1.5.2"
var str = "Hello" + ", World!";
Console.WriteLine(str);
""";
var result = await this.kernel.RunSubmitCodeCommandAsync(csharpCode, "csharp");
result.Should().Contain("Hello, World!");
}
[Fact]
public async Task ItAddPowershellKernelTestAsync()
{
var powershellCode = @"
Write-Host 'Hello, World!'
";
var result = await this.kernel.RunSubmitCodeCommandAsync(powershellCode, "pwsh");
result.Should().Contain("Hello, World!");
}
[Fact]
public async Task ItAddFSharpKernelTestAsync()
{
var fsharpCode = """
printfn "Hello, World!"
""";
var result = await this.kernel.RunSubmitCodeCommandAsync(fsharpCode, "fsharp");
result.Should().Contain("Hello, World!");
}
[Fact]
public async Task ItAddPythonKernelTestAsync()
{
var pythonCode = """
%pip install numpy
str = 'Hello' + ', World!'
print(str)
""";
var result = await this.kernel.RunSubmitCodeCommandAsync(pythonCode, "python");
result.Should().Contain("Hello, World!");
}
public void Dispose()
{
this.kernel.Dispose();
}
}