public async Task Create_Branch_Exception() { var InputOwner = "foo"; var InputRepo = "bar"; var InputBranchName = "baz"; var InputSha = "qux"; var ExpectedURL = $"https://api.github.com/repos/{InputOwner}/{InputRepo}/git/refs"; var branchRef = new BranchRef() { Ref = $"refs/heads/{InputBranchName}", sha = InputSha }; var ExpectedJson = JsonConvert.SerializeObject(branchRef); var fixture = new GitHubFixture(); fixture.SetupCreateBranchWithFailure(ExpectedURL, ExpectedJson); var repository = new GitHubRepository(fixture.GitHubContext); var ex = await Assert.ThrowsAsync <RestAPICallException>(async() => await repository.CreateBranchAsync(InputOwner, InputRepo, InputBranchName, InputSha) ); Assert.Equal("InternalServerError", ex.StatusCode); Assert.Equal("Internal Server Error", ex.Message); Assert.Equal(ExpectedURL, ex.RequestMessage.RequestUri.ToString()); }
public async Task Update_File_Normal_Case() { var ExpectedCommitName = "Tsuyoshi Ushio"; var ExpectedCommitEmail = "*****@*****.**"; using (var session = new CommitSession(ExpectedCommitName, ExpectedCommitEmail)) { var InputPath = "foo"; var InputText = "konnichiwa."; var ExpectedTargetBranch = "foo-ja"; var ExpectedSha = "quux"; var InputLanguage = "ja"; var fixture = new GitHubFixture(); fixture.SetupUpdateFileContents(fixture.InputOwner, fixture.InputRepo, InputPath); // public async Task UpdateFileContentsAsync(string owner, string repo, string path, string branch, string text, string sha, string language) var service = new GitHubService(fixture.GitHubRepository); await service.UpdateFileContentsAsync(fixture.InputOwner, fixture.InputRepo, InputPath, ExpectedTargetBranch, InputText, ExpectedSha, InputLanguage); var operation = fixture.ActualFileOperation; Assert.Equal($"Generate {InputLanguage} version", operation.message); Assert.Equal(ExpectedCommitName, operation.commiter.name); Assert.Equal(ExpectedCommitEmail, operation.commiter.email); Assert.Equal(ExpectedTargetBranch, operation.branch); Assert.Equal(ExpectedSha, operation.sha); Assert.Equal(Convert.ToBase64String(Encoding.UTF8.GetBytes(InputText)), operation.content); } }
public async Task Update_FileContents_Normal() { var fixture = new GitHubFixture(); fixture.SetUpSampleInputOperation(); var ExpectedURL = $"https://api.github.com/repos/{fixture.InputOwner}/{fixture.InputRepo}/contents/{fixture.InputPath}"; // On the Setup, I call Assert on the Callback. fixture.SetupUpdateFileContents(ExpectedURL, fixture.InputOperation); var repository = new GitHubRepository(fixture.GitHubContext); await repository.UpdateFileContents(fixture.InputOwner, fixture.InputRepo, fixture.InputPath, fixture.InputOperation); }
public void Delete_BranchAsync_NormalCase() { var InputOwner = "foo"; var InputRepo = "bar"; var InputBranch = "baz"; var ExpectedURL = $"https://api.github.com/repos/{InputOwner}/{InputRepo}/git/refs/heads/{InputBranch}"; var fixture = new GitHubFixture(); fixture.SetUpDeleteAsync(ExpectedURL); var repository = new GitHubRepository(fixture.GitHubContext); var result = repository.DeleteBranchAsync(InputOwner, InputRepo, InputBranch); fixture.VerifyDeleteAsync(ExpectedURL); }
public async Task Create_Branch_Normal_Case() { var fixture = new GitHubFixture(); var ExpectedTargetBranchName = $"{fixture.InputSourceBranch}-{fixture.InputLanguage}"; var ExpectedSha = "quux"; fixture.SetUpCreateBranchAsync(fixture.InputOwner, fixture.InputRepo, fixture.InputSourceBranch, ExpectedTargetBranchName, ExpectedSha); var service = new GitHubService(fixture.GitHubRepository); var result = await service.CreateBranchAsync(fixture.InputOwner, fixture.InputRepo, fixture.InputSourceBranch, fixture.InputLanguage); fixture.VerifyCreateBranchAsync(); Assert.Equal(ExpectedSha, result.commit.sha); }
public async Task Update_FileContents_Exception() { var fixture = new GitHubFixture(); fixture.SetUpSampleInputOperation(); var ExpectedURL = $"https://api.github.com/repos/{fixture.InputOwner}/{fixture.InputRepo}/contents/{fixture.InputPath}"; fixture.SetupUpdateFileContentsFailure(ExpectedURL, fixture.InputOperation); var repository = new GitHubRepository(fixture.GitHubContext); var ex = await Assert.ThrowsAsync <RestAPICallException>(async() => await repository.UpdateFileContents(fixture.InputOwner, fixture.InputRepo, fixture.InputPath, fixture.InputOperation) ); Assert.Equal("InternalServerError", ex.StatusCode); Assert.Equal("Internal Server Error", ex.Message); Assert.Equal(ExpectedURL, ex.RequestMessage.RequestUri.ToString()); }
public async Task Search_MdFiles_Normal() { var InputOwner = "foo"; var InputRepo = "bar"; var InputSha = "baz"; var ExpectedURL = $"https://api.github.com/repos/{InputOwner}/{InputRepo}/git/trees/{InputSha}?recursive=1"; var fixture = new GitHubFixture(); var trees = new Tree[] { new Tree() { path = "abc.txt" }, new Tree() { path = "bcd.md" }, new Tree() { path = "cde.md" }, new Tree() { path = "def.lock" } }; var searchResult = new SearchResult(); searchResult.tree = trees; var treeJson = JsonConvert.SerializeObject(searchResult); fixture.SetupSearchMd(ExpectedURL, treeJson); var repository = new GitHubRepository(fixture.GitHubContext); var result = await repository.SearchMdFilesAsync(InputOwner, InputRepo, InputSha); Assert.Equal(2, result.Count()); var enumerator = result.GetEnumerator(); enumerator.MoveNext(); Assert.Equal("bcd.md", enumerator.Current.path); enumerator.MoveNext(); Assert.Equal("cde.md", enumerator.Current.path); }
public async Task Get_Branch_Exception() { var InputOwner = "foo"; var InputRepo = "bar"; var InputBranch = "baz"; var ExpectedURL = $"https://api.github.com/repos/{InputOwner}/{InputRepo}/branches/{InputBranch}"; var ExpectedSha = "qux"; var fixture = new GitHubFixture(); fixture.SetupGetBranchWithFailure(ExpectedURL); var repository = new GitHubRepository(fixture.GitHubContext); var ex = await Assert.ThrowsAsync <RestAPICallException>(async() => await repository.GetBranchAsync(InputOwner, InputRepo, InputBranch) ); Assert.Equal("InternalServerError", ex.StatusCode); Assert.Equal("Internal Server Error", ex.Message); Assert.Equal(ExpectedURL, ex.RequestMessage.RequestUri.ToString()); }
public async Task Get_FileContents_Exception_First() { var InputOwner = "foo"; var InputRepo = "bar"; var InputBranch = "baz"; var InputPath = "qux.md"; var ExpectedContentURL = $"https://api.github.com/repos/{InputOwner}/{InputRepo}/contents/{InputPath}?ref={InputBranch}"; var fixture = new GitHubFixture(); fixture.SetupGetFileContentsFirstFails(ExpectedContentURL); var respository = new GitHubRepository(fixture.GitHubContext); var ex = await Assert.ThrowsAsync <RestAPICallException>(async() => await respository.GetFileContents(InputOwner, InputRepo, InputBranch, InputPath) ); Assert.Equal("InternalServerError", ex.StatusCode); Assert.Equal("Internal Server Error", ex.Message); Assert.Equal(ExpectedContentURL, ex.RequestMessage.RequestUri.ToString()); }
public async Task Search_MdFiles_Exception() { var InputOwner = "foo"; var InputRepo = "bar"; var InputSha = "baz"; var ExpectedURL = $"https://api.github.com/repos/{InputOwner}/{InputRepo}/git/trees/{InputSha}?recursive=1"; var fixture = new GitHubFixture(); fixture.SetupSearchMdWithFailure(ExpectedURL); var repository = new GitHubRepository(fixture.GitHubContext); var ex = await Assert.ThrowsAsync <RestAPICallException>(async() => await repository.SearchMdFilesAsync(InputOwner, InputRepo, InputSha) ); Assert.Equal("InternalServerError", ex.StatusCode); Assert.Equal("Internal Server Error", ex.Message); Assert.Equal(ExpectedURL, ex.RequestMessage.RequestUri.ToString()); }
public async Task Get_FileContents_Normal() { var InputOwner = "foo"; var InputRepo = "bar"; var InputBranch = "baz"; var InputPath = "qux.md"; var ExpectedContentURL = $"https://api.github.com/repos/{InputOwner}/{InputRepo}/contents/{InputPath}?ref={InputBranch}"; var ExpectedDownloadURL = $"https://raw.githubusercontent.com/foo/bar/baz/qux.md"; var ExpectedContent = "quux"; // Task<string> GetFileContents(string owner, string repo, string branch, string path) // var response = await context.GetAsync($"{RestAPIBase}/{owner}/{repo}/contents/{path}?ref={branch}"); // var response = await context.GetAsync(downloadUrl); var fixture = new GitHubFixture(); fixture.SetupGetFileContents(ExpectedContentURL, ExpectedDownloadURL, ExpectedContent); var respository = new GitHubRepository(fixture.GitHubContext); var result = await respository.GetFileContents(InputOwner, InputRepo, InputBranch, InputPath); Assert.Equal(ExpectedContent, result.Item2); Assert.Equal(ExpectedDownloadURL, result.Item1.download_url); }
public async Task Create_Branch_Normal() { var InputOwner = "foo"; var InputRepo = "bar"; var InputBranchName = "baz"; var InputSha = "qux"; // public async Task CreateBranchAsync(string owner, string repo, string branchName, string sha) var ExpectedURL = $"https://api.github.com/repos/{InputOwner}/{InputRepo}/git/refs"; var branchRef = new BranchRef() { Ref = $"refs/heads/{InputBranchName}", sha = InputSha }; var ExpectedJson = JsonConvert.SerializeObject(branchRef); var fixture = new GitHubFixture(); fixture.SetupCreateBranch(ExpectedURL, ExpectedJson); var repository = new GitHubRepository(fixture.GitHubContext); await repository.CreateBranchAsync(InputOwner, InputRepo, InputBranchName, InputSha); fixture.VerifyCreateBranch(ExpectedURL, ExpectedJson); }
public async Task Get_BranchAsync_NormalCase() { var InputOwner = "foo"; var InputRepo = "bar"; var InputBranch = "baz"; var ExpectedURL = $"https://api.github.com/repos/{InputOwner}/{InputRepo}/branches/{InputBranch}"; var ExpectedSha = "qux"; var fixture = new GitHubFixture(); var ReturnBranch = new Branch { commit = new Commit() { sha = ExpectedSha } }; fixture.SetupGetBranchAsync(ExpectedURL, JsonConvert.SerializeObject(ReturnBranch)); var repository = new GitHubRepository(fixture.GitHubContext); var branch = await repository.GetBranchAsync(InputOwner, InputRepo, InputBranch); Assert.Equal(ExpectedSha, branch.commit.sha); }