public async Task GetComments_ResultsPerPageIsLessThanMinimum_ThrowsArgumentOutOfRangeException()
        {
            var sut = new CommitRepository(_requestFactory);

            await Assert.ThrowsAsync <ArgumentOutOfRangeException>(
                () => sut.GetComments(0, "commitSha", resultsPerPage: uint.MinValue));
        }
        public async Task GetComments_ValidParameters_SetsCorrectResourceAndMethod()
        {
            var sut = new CommitRepository(_requestFactory);

            await sut.GetComments(0, "commitSha");

            _requestFactory.Received()
            .Create("projects/{projectId}/repository/commits/{commitSha}/comments", Method.Get);
        }
        public async Task GetComments_ValidParameters_AddsProjectIdUrlSegment()
        {
            const uint expected = 0;
            var        sut      = new CommitRepository(_requestFactory);

            await sut.GetComments(expected, "commitSha");

            _request.Received().AddUrlSegment("projectId", expected);
        }
        public async Task GetComments_ValidParameters_AddsCommitShaUrlSegment()
        {
            const string expected = "commitSha";
            var          sut      = new CommitRepository(_requestFactory);

            await sut.GetComments(0, expected);

            _request.Received().AddUrlSegment("commitSha", expected);
        }
        public async Task GetComments_ResultsPerPageIsSet_AddsPerPageParameter()
        {
            const uint expected = 5;
            var        sut      = new CommitRepository(_requestFactory);

            await sut.GetComments(0, "commitSha", resultsPerPage : expected);

            _request.Received().AddParameter("per_page", expected);
        }
        public async Task GetComments_CommitShaIsNull_ThrowsArgumentNullException()
        {
            var sut = new CommitRepository(_requestFactory);

            await Assert.ThrowsAsync <ArgumentNullException>(() => sut.GetComments(0, null));
        }