Exemplo n.º 1
0
        public async Task Should_load_extension_in_directory()
        {
            var directory = Create.EmptyWorkspace().Directory;

            const string nugetPackageName      = "myNugetPackage";
            var          nugetPackageDirectory = new InMemoryDirectoryAccessor(
                directory.Subdirectory($"{nugetPackageName}/2.0.0"))
                                                 .CreateFiles();

            var extensionsDir =
                (FileSystemDirectoryAccessor)nugetPackageDirectory.GetDirectoryAccessorForRelativePath(new RelativeDirectoryPath("interactive-extensions/dotnet/cs"));

            var extensionDll = await KernelExtensionTestHelper.CreateExtensionInDirectory(
                directory, @"await kernel.SendAsync(new SubmitCode(""using System.Reflection;""));",
                extensionsDir);

            var kernel = CreateKernel();

            await kernel.SendAsync(new LoadExtensionsInDirectory(nugetPackageDirectory));


            KernelEvents.Should()
            .ContainSingle(e => e.Value is ExtensionLoaded &&
                           e.Value.As <ExtensionLoaded>().ExtensionPath.FullName.Equals(extensionDll.FullName));

            KernelEvents.Should()
            .ContainSingle(e => e.Value is CommandHandled &&
                           e.Value
                           .As <CommandHandled>()
                           .Command
                           .As <SubmitCode>()
                           .Code
                           .Contains("using System.Reflection;"));
        }
Exemplo n.º 2
0
            public async Task When_target_directory_is_sub_directory_of_source_then_markdown_files_in_target_dir_are_ignored()
            {
                const string markdown = @"
## C# null coalesce example
``` cs --source-file ./../project/Program.cs --region null_coalesce --project ./../project/some.csproj
```
";
                var          files    = PrepareFiles(
                    ("./project/some.csproj", CsprojContents),
                    ("./project/Program.cs", CompilingProgramWithRegionCs),
                    ("./documentation/details/doc.md", markdown),
                    ("./doc_output/details/doc.md", "result file of previous publish run, will be overridden when publishing docs and should be ignored as source")
                    );

                var targetDir = (DirectoryInfo)files.GetFullyQualifiedPath(new RelativeDirectoryPath("doc_output"));
                var target    = new InMemoryDirectoryAccessor(targetDir);

                var(publishOutput, resultCode) = await DoPublish(files, target);

                resultCode.Should().Be(0);
                publishOutput.OutputFiles.Count().Should().Be(1, "Expected existing file in doc_output to be ignored");
                var outputFilePath   = new FileInfo(publishOutput.OutputFiles.Single().Path);
                var expectedFilePath = target.GetFullyQualifiedPath(new RelativeFilePath("documentation/details/doc.md"));

                outputFilePath.FullName.Should().Be(expectedFilePath.FullName);
            }
Exemplo n.º 3
0
            public async Task Returns_false_for_nonexistent_file()
            {
                var workingDir  = TestAssets.SampleConsole;
                var dirAccessor = new InMemoryDirectoryAccessor(workingDir);
                var project     = new MarkdownProject(dirAccessor, await Default.PackageRegistry.ValueAsync());
                var path        = new RelativeFilePath("DOESNOTEXIST");

                project.TryGetMarkdownFile(path, out _).Should().BeFalse();
            }
Exemplo n.º 4
0
            public void Returns_false_for_nonexistent_file()
            {
                var workingDir  = TestAssets.SampleConsole;
                var dirAccessor = new InMemoryDirectoryAccessor(workingDir);
                var project     = new MarkdownProject(dirAccessor, PackageRegistry.CreateForHostedMode());
                var path        = new RelativeFilePath("DOESNOTEXIST");

                project.TryGetMarkdownFile(path, out _).Should().BeFalse();
            }
Exemplo n.º 5
0
 public FakeToolPackageLocator(InMemoryDirectoryAccessor directory)
 {
     _directory = directory;
 }