public void EnsuresNonNullArguments() { var gitHubClient = Substitute.For<IGitHubClient>(); var client = new ObservableRepositoryContentsClient(gitHubClient); Assert.Throws<ArgumentNullException>(() => client.GetAllContents(null, "name")); Assert.Throws<ArgumentNullException>(() => client.GetAllContents("owner", null)); Assert.Throws<ArgumentNullException>(() => client.GetAllContents(null, "name", "path")); Assert.Throws<ArgumentNullException>(() => client.GetAllContents("owner", null, "path")); Assert.Throws<ArgumentNullException>(() => client.GetAllContents("owner", "name", null)); Assert.Throws<ArgumentNullException>(() => client.GetAllContents(1, null)); Assert.Throws<ArgumentException>(() => client.GetAllContents("", "name")); Assert.Throws<ArgumentException>(() => client.GetAllContents("owner", "")); Assert.Throws<ArgumentException>(() => client.GetAllContents("", "name", "path")); Assert.Throws<ArgumentException>(() => client.GetAllContents("owner", "", "path")); Assert.Throws<ArgumentException>(() => client.GetAllContents("owner", "name", "")); Assert.Throws<ArgumentException>(() => client.GetAllContents(1, "")); }
public async Task ReturnsAllContentsWithRepositoryId() { var result = new List<RepositoryContent> { new RepositoryContent() }; var connection = Substitute.For<IConnection>(); var gitHubClient = new GitHubClient(connection); var contentsClient = new ObservableRepositoryContentsClient(gitHubClient); IApiResponse<List<RepositoryContent>> response = new ApiResponse<List<RepositoryContent>> ( new Response { ApiInfo = new ApiInfo(new Dictionary<string, Uri>(), new List<string>(), new List<string>(), "etag", new RateLimit()) }, result ); connection.Get<List<RepositoryContent>>(Args.Uri, null, null) .Returns(Task.FromResult(response)); var contents = await contentsClient.GetAllContents(1).ToList(); connection.Received().Get<List<RepositoryContent>>(Arg.Is<Uri>(u => u.ToString() == "repositories/1/contents/"), null, null); Assert.Equal(1, contents.Count); }