コード例 #1
0
        /// <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();
        }
コード例 #2
0
        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());
        }
コード例 #3
0
            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);
            }
コード例 #4
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);
            }
コード例 #5
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"));
            }
コード例 #6
0
            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"));
            }
コード例 #7
0
            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");
            }
コード例 #8
0
            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);
            }
コード例 #9
0
            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);
            }
コード例 #10
0
            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));
            }
コード例 #11
0
            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));
            }
コード例 #12
0
        /// <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();
        }
コード例 #13
0
        /// <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());
        }
コード例 #14
0
        /// <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());
        }
コード例 #15
0
        /// <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());
        }
コード例 #16
0
        /// <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());
        }
コード例 #17
0
            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);
            }
コード例 #18
0
            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");
            }
コード例 #19
0
            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));
            }
コード例 #20
0
            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);
            }
コード例 #21
0
            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));
            }