Exemplo n.º 1
0
        public async Task fast_path_commands_over_proxy_can_be_handled()
        {
            var connector = new StdIoKernelConnector(new[]
            {
                Dotnet.Path.FullName,
                typeof(App.Program).Assembly.Location,
                "stdio",
                "--default-kernel",
                "csharp",
            });

            using var kernel = await connector.ConnectKernelAsync(new KernelInfo ("proxy"));

            var markedCode = "var x = 12$$34;";

            MarkupTestFile.GetLineAndColumn(markedCode, out var code, out var line, out var column);

            var result = await kernel.SendAsync(new RequestHoverText(code, new LinePosition(line, column)));

            var events = result.KernelEvents.ToSubscribedList();

            events
            .Should()
            .EventuallyContainSingle <HoverTextProduced>();
        }
Exemplo n.º 2
0
    protected override Task <KernelConnectorBase> CreateConnectorAsync(StdioConnectionTestConfiguration configuration)
    {
        var command = new List <string> {
            configuration.Command
        };

        if (configuration.Args?.Length > 0)
        {
            command.AddRange(configuration.Args);
        }

        var connector = new StdIoKernelConnector(command.ToArray(), configuration.WorkingDirectory);



        return(Task.FromResult <KernelConnectorBase>(connector));
    }
Exemplo n.º 3
0
        public async Task it_can_reuse_connection_for_multiple_proxy_kernel()
        {
            // setup connection

            using var connector = new StdIoKernelConnector(new[]
            {
                Dotnet.Path.FullName,
                typeof(App.Program).Assembly.Location,
                "stdio",
                "--default-kernel",
                "csharp",
            });

            // use same connection to create 2 proxy kernel

            using var localKernel1 = await connector.ConnectKernelAsync(new KernelInfo ("kernel1"));

            using var localKernel2 = await connector.ConnectKernelAsync(new KernelInfo ("kernel2"));

            var kernelCommand1 = new SubmitCode("(1+1).Display(\"text/plain\")");

            var kernelCommand2 = new SubmitCode("(3+3).Display(\"text/plain\")");

            var res1 = await localKernel1.SendAsync(kernelCommand1);

            var res2 = await localKernel2.SendAsync(kernelCommand2);

            var kernelEvents1 = res1.KernelEvents.ToSubscribedList();

            var kernelEvents2 = res2.KernelEvents.ToSubscribedList();

            kernelEvents1.Should().ContainSingle <CommandSucceeded>().Which.Command.As <SubmitCode>().Code.Should()
            .Be(kernelCommand1.Code);

            kernelEvents1.Should().ContainSingle <DisplayedValueProduced>().Which.FormattedValues.Should().ContainSingle(f => f.Value == "2");

            kernelEvents2.Should().ContainSingle <CommandSucceeded>().Which.Command.As <SubmitCode>().Code.Should()
            .Be(kernelCommand2.Code);

            kernelEvents2.Should().ContainSingle <DisplayedValueProduced>().Which.FormattedValues.Should().ContainSingle(f => f.Value == "6");
        }