public async Task EnsuresNonNullArguments()
            {
                var connection = Substitute.For<IApiConnection>();
                var client = new GistCommentsClient(connection);

                await Assert.ThrowsAsync<ArgumentNullException>(() => client.GetAllForGist(null));
                await Assert.ThrowsAsync<ArgumentException>(() => client.GetAllForGist(""));
                await Assert.ThrowsAsync<ArgumentNullException>(() => client.GetAllForGist("24", null));
                await Assert.ThrowsAsync<ArgumentException>(() => client.GetAllForGist("", ApiOptions.None));

            }
            public async Task EnsuresNonNullArguments()
            {
                var connection = Substitute.For <IApiConnection>();
                var client     = new GistCommentsClient(connection);

                await Assert.ThrowsAsync <ArgumentNullException>(() => client.GetAllForGist(null));

                await Assert.ThrowsAsync <ArgumentException>(() => client.GetAllForGist(""));

                await Assert.ThrowsAsync <ArgumentNullException>(() => client.GetAllForGist("24", null));

                await Assert.ThrowsAsync <ArgumentException>(() => client.GetAllForGist("", ApiOptions.None));
            }
            public async Task RequestsCorrectUrl()
            {
                var connection = Substitute.For <IApiConnection>();
                var client     = new GistCommentsClient(connection);

                await client.GetAllForGist("24");

                connection.Received().GetAll <GistComment>(Arg.Is <Uri>(u => u.ToString() == "gists/24/comments"), Args.ApiOptions);
            }
            public async Task RequestsCorrectUrl()
            {
                var connection = Substitute.For<IApiConnection>();
                var client = new GistCommentsClient(connection);

                await client.GetAllForGist("24");

                connection.Received().GetAll<GistComment>(Arg.Is<Uri>(u => u.ToString() == "gists/24/comments"), Args.ApiOptions);
            }
            public async Task RequestsCorrectUrlWithApiOptions()
            {
                var connection = Substitute.For <IApiConnection>();
                var client     = new GistCommentsClient(connection);

                var options = new ApiOptions
                {
                    PageSize  = 1,
                    PageCount = 1,
                    StartPage = 1
                };

                await client.GetAllForGist("24", options);

                connection.Received().GetAll <GistComment>(Arg.Is <Uri>(u => u.ToString() == "gists/24/comments"), options);
            }
            public async Task RequestsCorrectUrlWithApiOptions()
            {
                var connection = Substitute.For<IApiConnection>();
                var client = new GistCommentsClient(connection);

                var options = new ApiOptions
                {
                    PageSize = 1,
                    PageCount = 1,
                    StartPage = 1
                };

                await client.GetAllForGist("24", options);

                connection.Received().GetAll<GistComment>(Arg.Is<Uri>(u => u.ToString() == "gists/24/comments"), options);
            }