Esempio n. 1
0
        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));
            }
        }
Esempio n. 2
0
        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());
 }
Esempio n. 4
0
 public CodeOwnersWalkerTests()
 {
     _workingDirectory  = new WorkingDirectorySession();
     _fileProvider      = new PhysicalFileProvider(_workingDirectory.Directory);
     _codeOwnersBuilder = new CodeOwnersWalker(new CodeOwnersParser());
 }
Esempio n. 5
0
        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());
        }