public async Task EnsuresArgumentsNotNull() { var gitHubClient = Substitute.For <IGitHubClient>(); var client = new ObservableEventsClient(gitHubClient); await Assert.ThrowsAsync <ArgumentNullException>(() => client.GetAllIssuesForRepository(null, "name").ToTask()); await Assert.ThrowsAsync <ArgumentException>(() => client.GetAllIssuesForRepository("", "name").ToTask()); await Assert.ThrowsAsync <ArgumentNullException>(() => client.GetAllIssuesForRepository("owner", null).ToTask()); await Assert.ThrowsAsync <ArgumentException>(() => client.GetAllIssuesForRepository("owner", "").ToTask()); }
public async Task ReturnsRepositoryEvents() { var options = new ApiOptions { PageCount = 1, StartPage = 1, PageSize = 5 }; var repositoryEvents = await _eventsClient.GetAllIssuesForRepository(owner, name, options).ToList(); Assert.NotEmpty(repositoryEvents); }
public void RequestsCorrectUrl() { var gitHubClient = Substitute.For <IGitHubClient>(); var client = new ObservableEventsClient(gitHubClient); client.GetAllIssuesForRepository("fake", "repo"); gitHubClient.Connection.Received(1).Get <List <Activity> >(new Uri("repos/fake/repo/issues/events", UriKind.Relative), Args.EmptyDictionary, null); }
public async Task EnsuresNonNullArguments() { var gitHubClient = Substitute.For <IGitHubClient>(); var client = new ObservableEventsClient(gitHubClient); Assert.Throws <ArgumentNullException>(() => client.GetAllIssuesForRepository(null, "name")); Assert.Throws <ArgumentNullException>(() => client.GetAllIssuesForRepository("owner", null)); Assert.Throws <ArgumentNullException>(() => client.GetAllIssuesForRepository(null, "name", ApiOptions.None)); Assert.Throws <ArgumentNullException>(() => client.GetAllIssuesForRepository("owner", null, ApiOptions.None)); Assert.Throws <ArgumentNullException>(() => client.GetAllIssuesForRepository("owner", "name", null)); Assert.Throws <ArgumentNullException>(() => client.GetAllIssuesForRepository(1, null)); Assert.Throws <ArgumentException>(() => client.GetAllIssuesForRepository("", "name")); Assert.Throws <ArgumentException>(() => client.GetAllIssuesForRepository("owner", "")); Assert.Throws <ArgumentException>(() => client.GetAllIssuesForRepository("", "name", ApiOptions.None)); Assert.Throws <ArgumentException>(() => client.GetAllIssuesForRepository("owner", "", ApiOptions.None)); }
public void RequestsCorrectUrlWithRepositoryIdWithApiOptions() { var gitHubClient = Substitute.For <IGitHubClient>(); var client = new ObservableEventsClient(gitHubClient); var options = new ApiOptions { PageCount = 1, StartPage = 1, PageSize = 1 }; client.GetAllIssuesForRepository(1, options); gitHubClient.Connection.Received(1).Get <List <Activity> >(new Uri("repositories/1/issues/events", UriKind.Relative), Arg.Is <IDictionary <string, string> >(d => d.Count == 2), null); }
public async Task ReturnsRepositoryEvents() { var repositoryEvents = await _eventsClient.GetAllIssuesForRepository(owner, name).ToList(); Assert.NotEmpty(repositoryEvents); }