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;")); }
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); }
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(); }
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(); }
public FakeToolPackageLocator(InMemoryDirectoryAccessor directory) { _directory = directory; }