public void Can_register_files_with_exclude() { using (var testDirectory = new WorkingDirectorySession()) { File.WriteAllText(Path.Combine(testDirectory.Directory, "file1.txt"), "test"); File.WriteAllText(Path.Combine(testDirectory.Directory, "file2.txt"), "test"); Directory.CreateDirectory(Path.Combine(testDirectory.Directory, "nested")); File.WriteAllText(Path.Combine(testDirectory.Directory, "nested", "file3.txt"), "test"); File.WriteAllText(Path.Combine(testDirectory.Directory, "nested", "file4.txt"), "test"); Directory.CreateDirectory(Path.Combine(testDirectory.Directory, "nested", "nested2")); File.WriteAllText(Path.Combine(testDirectory.Directory, "nested", "nested2", "file5.txt"), "test"); var webBuilder = new Mock <IWebBuilder>(); var options = new RegisterOptions(); options.Matcher = new Matcher(); options.Matcher.AddInclude("**/*"); options.Matcher.AddExclude("**/file3.*"); webBuilder.Setup(x => x.Register("/file1.txt", It.IsAny <Func <HttpContext, Task> >(), null, true)); webBuilder.Setup(x => x.Register("/file2.txt", It.IsAny <Func <HttpContext, Task> >(), null, true)); webBuilder.Setup(x => x.Register("/nested/file3.txt", It.IsAny <Func <HttpContext, Task> >(), null, true)); webBuilder.Setup(x => x.Register("/nested/file4.txt", It.IsAny <Func <HttpContext, Task> >(), null, true)); webBuilder.Setup(x => x.Register("/nested/nested2/file5.txt", It.IsAny <Func <HttpContext, Task> >(), null, true)); webBuilder.Object.RegisterDirectory(testDirectory.Directory, options); webBuilder.Verify(x => x.Register("/file1.txt", It.IsAny <Func <HttpContext, Task> >(), null, true), Times.Exactly(1)); webBuilder.Verify(x => x.Register("/file2.txt", It.IsAny <Func <HttpContext, Task> >(), null, true), Times.Exactly(1)); webBuilder.Verify(x => x.Register("/nested/file3.txt", It.IsAny <Func <HttpContext, Task> >(), null, true), Times.Never); webBuilder.Verify(x => x.Register("/nested/file4.txt", It.IsAny <Func <HttpContext, Task> >(), null, true), Times.Exactly(1)); webBuilder.Verify(x => x.Register("/nested/nested2/file5.txt", It.IsAny <Func <HttpContext, Task> >(), null, true), Times.Exactly(1)); } }
public async Task Can_serve_files_at_path() { using (var testDirectory = new WorkingDirectorySession()) { File.WriteAllText(Path.Combine(testDirectory.Directory, "test.txt"), "test"); Directory.CreateDirectory(Path.Combine(testDirectory.Directory, "nested")); File.WriteAllText(Path.Combine(testDirectory.Directory, "nested", "test2.txt"), "test2"); _webBuilder.RegisterDirectory("/prefix", testDirectory.Directory); using (var host = _webBuilder.BuildVirtualHost()) { using (var client = host.CreateClient()) { var responseMessage = await client.GetAsync("/prefix/test.txt"); responseMessage.EnsureSuccessStatusCode(); var response = await responseMessage.Content.ReadAsStringAsync(); Assert.Equal("test", response); responseMessage = await client.GetAsync("/prefix/nested/test2.txt"); responseMessage.EnsureSuccessStatusCode(); response = await responseMessage.Content.ReadAsStringAsync(); Assert.Equal("test2", response); } } using (var host = _webBuilder.BuildVirtualHost("/appbase")) { using (var client = host.CreateClient()) { var responseMessage = await client.GetAsync("/prefix/test.txt"); responseMessage.EnsureSuccessStatusCode(); var response = await responseMessage.Content.ReadAsStringAsync(); Assert.Equal("test", response); responseMessage = await client.GetAsync("/prefix/nested/test2.txt"); responseMessage.EnsureSuccessStatusCode(); response = await responseMessage.Content.ReadAsStringAsync(); Assert.Equal("test2", response); } } } }
public CodeOwnersChangesetTests() { _workingDirectory = new WorkingDirectorySession(); _changeset = new CodeOwnersChangeset(new CodeOwnersWalker(new CodeOwnersParser()), new CodeOwnersParser()); }
public CodeOwnersWalkerTests() { _workingDirectory = new WorkingDirectorySession(); _fileProvider = new PhysicalFileProvider(_workingDirectory.Directory); _codeOwnersBuilder = new CodeOwnersWalker(new CodeOwnersParser()); }
public ApproversBuilderTests() { _workingDirectory = new WorkingDirectorySession(); void EnsureParentDirectory(string path) { var directory = Path.GetDirectoryName(path); if (string.IsNullOrEmpty(directory)) { return; } if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } } void WriteConfig(List <string> approvers, List <string> appendedApprovers, string path) { var sb = new StringBuilder(); if (approvers != null) { sb.AppendLine($"Approvers: {string.Join(",", approvers)}"); } if (appendedApprovers != null) { sb.AppendLine($"AppendedApprovers: {string.Join(",", appendedApprovers)}"); } EnsureParentDirectory(path); File.WriteAllText(Path.Combine(_workingDirectory.Directory, path), sb.ToString()); } void WriteFrontMatter(List <string> approvers, string path) { var sb = new StringBuilder(); if (approvers != null) { sb.AppendLine("---"); sb.AppendLine($"Approvers: {string.Join(",", approvers)}"); sb.AppendLine("---"); } sb.AppendLine("Some other text..."); EnsureParentDirectory(path); File.WriteAllText(Path.Combine(_workingDirectory.Directory, path), sb.ToString()); } void WriteBinary(string path) { var bytes = new byte[2000]; new Random().NextBytes(bytes); EnsureParentDirectory(path); File.WriteAllBytes(Path.Combine(_workingDirectory.Directory, path), bytes); } WriteConfig(new List <string> { "user1" }, new List <string> { "user1" }, ".approvers"); WriteBinary("testbinary"); WriteFrontMatter(new List <string>(), "file1.md"); WriteFrontMatter(new List <string>(), "dir/file1.md"); WriteFrontMatter(new List <string> { "user2" }, "dir/file2.md"); WriteConfig(null, new List <string> { "user2" }, "dir/sub/.approvers"); WriteBinary("dir/sub/testbinary"); WriteFrontMatter(null, "dir/sub/file1.md"); WriteFrontMatter(new List <string> { "user3" }, "dir/sub/file2.md"); _approversBuilder = new ApproversBuilder(new ApproversParser()); }