/// <summary> /// Get the total number of clones and breakdown per day or week for the last 14 days /// </summary> /// <remarks>https://developer.github.com/v3/repos/traffic/#clones</remarks> /// <param name="owner">The owner of the repository</param> /// <param name="name">The name of the repository</param> /// <param name="per">Breakdown per day or week</param> public IObservable<RepositoryTrafficCloneSummary> GetClones(string owner, string name, RepositoryTrafficRequest per) { Ensure.ArgumentNotNullOrEmptyString(owner, "owner"); Ensure.ArgumentNotNullOrEmptyString(name, "name"); Ensure.ArgumentNotNull(per, "per"); return _client.GetClones(owner, name, per).ToObservable(); }
public async override Task <string> GetGitHubValue(GitHubClient client, RepoModel repo) { var trafficRequest = new RepositoryTrafficRequest(TrafficDayOrWeek.Week); // var stats = await client.Repository.Traffic.GetClones(repo.Owner, repo.Name, trafficRequest); var stats = await client.Repository.Traffic.GetViews(repo.Owner, repo.Name, trafficRequest); return((stats?.Uniques ?? 0).ToString()); }
public async Task GetsClonesWithRepositoryId() { var request = new RepositoryTrafficRequest(TrafficDayOrWeek.Day); var clones = await _fixture.GetClones(_repoId, request); Assert.True(clones.Count > 0); Assert.True(clones.Clones.Count > 0); Assert.True(clones.Uniques > 0); }
public async Task GetsViews() { var request = new RepositoryTrafficRequest(TrafficDayOrWeek.Day); var views = await _fixture.GetViews(_owner, _repo, request); Assert.True(views.Count > 0); Assert.True(views.Views.Count > 0); Assert.True(views.Uniques > 0); }
public async Task RequestsCorrectUrlWithRepositoryId() { var connection = Substitute.For <IApiConnection>(); var client = new RepositoryTrafficClient(connection); var per = new RepositoryTrafficRequest(TrafficDayOrWeek.Day); await client.GetClones(1, per); connection.Received().Get <RepositoryTrafficCloneSummary>(Arg.Is <Uri>(u => u.ToString() == "repositories/1/traffic/clones"), Arg.Is <Dictionary <string, string> >(s => s["per"] == "day")); }
public async Task RequestsCorrectUrl() { var connection = Substitute.For <IApiConnection>(); var client = new RepositoryTrafficClient(connection); var per = new RepositoryTrafficRequest(TrafficDayOrWeek.Day); await client.GetViews("fake", "repo", per); connection.Received().Get <RepositoryTrafficViewSummary>(Arg.Is <Uri>(u => u.ToString() == "repos/fake/repo/traffic/views"), Arg.Is <Dictionary <string, string> >(s => s["per"] == "day")); }
public async Task RequestsCorrectUrlWithRepositoryId() { var connection = Substitute.For <IApiConnection>(); var client = new RepositoryTrafficClient(connection); var per = new RepositoryTrafficRequest(TrafficDayOrWeek.Day); await client.GetViews(1, per); connection.Received().Get <RepositoryTrafficViewSummary>(Arg.Is <Uri>(u => u.ToString() == "repositories/1/traffic/views"), Arg.Is <Dictionary <string, string> >(s => s["per"] == "day"), "application/vnd.github.spiderman-preview"); }
public void RequestsCorrectUrl() { var gitHubClient = Substitute.For <IGitHubClient>(); var client = new ObservableRepositoryTrafficClient(gitHubClient); var per = new RepositoryTrafficRequest(TrafficDayOrWeek.Day); client.GetClones("fake", "repo", per); gitHubClient.Received().Repository.Traffic.GetClones("fake", "repo", per); }
public void RequestsCorrectUrlWithRepositoryId() { var gitHubClient = Substitute.For <IGitHubClient>(); var client = new ObservableRepositoryTrafficClient(gitHubClient); var per = new RepositoryTrafficRequest(TrafficDayOrWeek.Day); client.GetViews(1, per); gitHubClient.Received().Repository.Traffic.GetViews(1, per); }
public void EnsuresNonNullArguments() { var client = new ObservableRepositoryTrafficClient(Substitute.For <IGitHubClient>()); var per = new RepositoryTrafficRequest(TrafficDayOrWeek.Day); Assert.Throws <ArgumentNullException>(() => client.GetViews(null, "name", per)); Assert.Throws <ArgumentNullException>(() => client.GetViews("owner", null, per)); Assert.Throws <ArgumentNullException>(() => client.GetViews("owner", "name", null)); Assert.Throws <ArgumentException>(() => client.GetViews("", "name", per)); Assert.Throws <ArgumentException>(() => client.GetViews("owner", "", per)); Assert.Throws <ArgumentNullException>(() => client.GetViews(1, null)); }
public async Task EnsuresNonNullArguments() { var client = new RepositoryTrafficClient(Substitute.For <IApiConnection>()); var per = new RepositoryTrafficRequest(TrafficDayOrWeek.Day); await Assert.ThrowsAsync <ArgumentNullException>(() => client.GetViews(null, "name", per)); await Assert.ThrowsAsync <ArgumentNullException>(() => client.GetViews("owner", null, per)); await Assert.ThrowsAsync <ArgumentNullException>(() => client.GetViews("owner", "name", null)); await Assert.ThrowsAsync <ArgumentException>(() => client.GetViews("", "name", per)); await Assert.ThrowsAsync <ArgumentException>(() => client.GetViews("owner", "", per)); await Assert.ThrowsAsync <ArgumentNullException>(() => client.GetViews(1, null)); }
/// <summary> /// Get the total number of clones and breakdown per day or week for the last 14 days /// </summary> /// <remarks>https://developer.github.com/v3/repos/traffic/#clones</remarks> /// <param name="repositoryId">The owner of the repository</param> /// <param name="per">Breakdown per day or week</param> public IObservable<RepositoryTrafficCloneSummary> GetClones(long repositoryId, RepositoryTrafficRequest per) { Ensure.ArgumentNotNull(per, "per"); return _client.GetClones(repositoryId, per).ToObservable(); }
/// <summary> /// Get the total number of clones and breakdown per day or week for the last 14 days /// </summary> /// <remarks>https://developer.github.com/v3/repos/traffic/#clones</remarks> /// <param name="owner">The owner of the repository</param> /// <param name="name">The name of the repository</param> /// <param name="per">Breakdown per day or week</param> public IObservable <RepositoryTrafficCloneSummary> GetClones(string owner, string name, RepositoryTrafficRequest per) { Ensure.ArgumentNotNullOrEmptyString(owner, "owner"); Ensure.ArgumentNotNullOrEmptyString(name, "name"); Ensure.ArgumentNotNull(per, "per"); return(_client.GetClones(owner, name, per).ToObservable()); }
/// <summary> /// Get the total number of clones and breakdown per day or week for the last 14 days /// </summary> /// <remarks>https://developer.github.com/v3/repos/traffic/#clones</remarks> /// <param name="repositoryId">The owner of the repository</param> /// <param name="per">Breakdown per day or week</param> public IObservable <RepositoryTrafficCloneSummary> GetClones(long repositoryId, RepositoryTrafficRequest per) { Ensure.ArgumentNotNull(per, "per"); return(_client.GetClones(repositoryId, per).ToObservable()); }
/// <summary> /// Get the total number of views and breakdown per day or week for the last 14 days /// </summary> /// <remarks>https://developer.github.com/v3/repos/traffic/#views</remarks> /// <param name="owner">The owner of the repository</param> /// <param name="name">The name of the repository</param> /// <param name="per">Breakdown per day or week</param> public IObservable <RepositoryTrafficViewSummary> GetViews(string owner, string name, RepositoryTrafficRequest per) { Ensure.ArgumentNotNullOrEmptyString(owner, nameof(owner)); Ensure.ArgumentNotNullOrEmptyString(name, nameof(name)); Ensure.ArgumentNotNull(per, nameof(per)); return(_client.GetViews(owner, name, per).ToObservable()); }
/// <summary> /// Get the total number of views and breakdown per day or week for the last 14 days /// </summary> /// <remarks>https://developer.github.com/v3/repos/traffic/#views</remarks> /// <param name="repositoryId">The owner of the repository</param> /// <param name="per">Breakdown per day or week</param> public IObservable <RepositoryTrafficViewSummary> GetViews(long repositoryId, RepositoryTrafficRequest per) { Ensure.ArgumentNotNull(per, nameof(per)); return(_client.GetViews(repositoryId, per).ToObservable()); }
public void RequestsCorrectUrlWithRepositoryId() { var gitHubClient = Substitute.For<IGitHubClient>(); var client = new ObservableRepositoryTrafficClient(gitHubClient); var per = new RepositoryTrafficRequest(TrafficDayOrWeek.Day); client.GetViews(1, per); gitHubClient.Received().Repository.Traffic.GetViews(1, per); }
public async Task RequestsCorrectUrl() { var connection = Substitute.For<IApiConnection>(); var client = new RepositoryTrafficClient(connection); var per = new RepositoryTrafficRequest(TrafficDayOrWeek.Day); await client.GetClones("fake", "repo", per); connection.Received().Get<RepositoryTrafficCloneSummary>(Arg.Is<Uri>(u => u.ToString() == "repos/fake/repo/traffic/clones"), Arg.Is<Dictionary<string, string>>(s => s["per"] == "day"), "application/vnd.github.spiderman-preview"); }
public async Task EnsuresNonNullArguments() { var client = new RepositoryTrafficClient(Substitute.For<IApiConnection>()); var per = new RepositoryTrafficRequest(TrafficDayOrWeek.Day); await Assert.ThrowsAsync<ArgumentNullException>(() => client.GetViews(null, "name", per)); await Assert.ThrowsAsync<ArgumentNullException>(() => client.GetViews("owner", null, per)); await Assert.ThrowsAsync<ArgumentNullException>(() => client.GetViews("owner", "name", null)); await Assert.ThrowsAsync<ArgumentException>(() => client.GetViews("", "name", per)); await Assert.ThrowsAsync<ArgumentException>(() => client.GetViews("owner", "", per)); await Assert.ThrowsAsync<ArgumentNullException>(() => client.GetViews(1, null)); }
public void RequestsCorrectUrl() { var gitHubClient = Substitute.For<IGitHubClient>(); var client = new ObservableRepositoryTrafficClient(gitHubClient); var per = new RepositoryTrafficRequest(TrafficDayOrWeek.Day); client.GetClones("fake", "repo", per); gitHubClient.Received().Repository.Traffic.GetClones("fake", "repo", per); }
public void EnsuresNonNullArguments() { var client = new ObservableRepositoryTrafficClient(Substitute.For<IGitHubClient>()); var per = new RepositoryTrafficRequest(TrafficDayOrWeek.Day); Assert.Throws<ArgumentNullException>(() => client.GetViews(null, "name", per)); Assert.Throws<ArgumentNullException>(() => client.GetViews("owner", null, per)); Assert.Throws<ArgumentNullException>(() => client.GetViews("owner", "name", null)); Assert.Throws<ArgumentException>(() => client.GetViews("", "name", per)); Assert.Throws<ArgumentException>(() => client.GetViews("owner", "", per)); Assert.Throws<ArgumentNullException>(() => client.GetViews(1, null)); }