public void EnsuresNonNullArguments() { var gitHubClient = Substitute.For<IGitHubClient>(); var client = new ObservableRepositoryContentsClient(gitHubClient); Assert.Throws<ArgumentNullException>(() => client.GetReadmeHtml(null, "name")); Assert.Throws<ArgumentNullException>(() => client.GetReadmeHtml("owner", null)); Assert.Throws<ArgumentException>(() => client.GetReadmeHtml("", "name")); Assert.Throws<ArgumentException>(() => client.GetReadmeHtml("owner", "")); }
public async Task ReturnsReadmeHtmlWithRepositoryId() { var connection = Substitute.For<IConnection>(); var gitHubClient = new GitHubClient(connection); var contentsClient = new ObservableRepositoryContentsClient(gitHubClient); IApiResponse<string> apiResponse = new ApiResponse<string>(new Response(), "<html>README</html>"); connection.GetHtml(Args.Uri, null).Returns(Task.FromResult(apiResponse)); var readme = await contentsClient.GetReadmeHtml(1); connection.Received().GetHtml(Arg.Is<Uri>(u => u.ToString() == "repositories/1/readme"), null); Assert.Equal("<html>README</html>", readme); }