using System; using System.Linq; using System.Threading.Tasks; using Xunit; namespace Octokit.Tests.Integration.Clients { public class RepositoryContentsClientTests { public class TheGetReadmeMethod { [IntegrationTest] public async Task ReturnsReadmeForSeeGit() { var github = new GitHubClient(new ProductHeaderValue("OctokitTests")) { Credentials = Helper.Credentials }; var readme = await github.Repository.Content.GetReadme("octokit", "octokit.net"); Assert.Equal("README.md", readme.Name); string readMeHtml = await readme.GetHtmlContent(); Assert.True(readMeHtml.StartsWith("
2); Assert.Equal(ContentType.Dir, contents.First().Type); } } [IntegrationTest] public async Task CrudTest() { var client = new GitHubClient(new ProductHeaderValue("OctokitTests")) { Credentials = Helper.Credentials }; Repository repository = null; try { var fixture = client.Repository.Content; var repoName = Helper.MakeNameWithTimestamp("source-repo"); repository = await client.Repository.Create(new NewRepository(repoName) { AutoInit = true }); var file = await fixture.CreateFile( repository.Owner.Login, repository.Name, "somefile.txt", new CreateFileRequest("Test commit", "Some Content")); Assert.Equal("somefile.txt", file.Content.Name); var contents = await fixture.GetAllContents(repository.Owner.Login, repository.Name, "somefile.txt"); string fileSha = contents.First().Sha; Assert.Equal("Some Content", contents.First().Content); var update = await fixture.UpdateFile( repository.Owner.Login, repository.Name, "somefile.txt", new UpdateFileRequest("Updating file", "New Content", fileSha)); Assert.Equal("somefile.txt", update.Content.Name); contents = await fixture.GetAllContents(repository.Owner.Login, repository.Name, "somefile.txt"); Assert.Equal("New Content", contents.First().Content); fileSha = contents.First().Sha; await fixture.DeleteFile( repository.Owner.Login, repository.Name, "somefile.txt", new DeleteFileRequest("Deleted file", fileSha)); await Assert.ThrowsAsync( async () => await fixture.GetAllContents(repository.Owner.Login, repository.Name, "somefile.txt")); } finally { Helper.DeleteRepo(repository); } } } }