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); }