public void EnsuresNonNullArguments()
            {
                var gitHubClient = Substitute.For <IGitHubClient>();
                var client       = new ObservablePullRequestReviewsClient(gitHubClient);

                var submitMessage = new PullRequestReviewSubmit()
                {
                    Body  = "string",
                    Event = PullRequestReviewEvent.Approve
                };

                Assert.Throws <ArgumentNullException>(() => client.Submit(null, "name", 1, 1, submitMessage));
                Assert.Throws <ArgumentNullException>(() => client.Submit("owner", null, 1, 1, submitMessage));
                Assert.Throws <ArgumentNullException>(() => client.Submit("owner", "name", 1, 1, null));

                Assert.Throws <ArgumentException>(() => client.Submit("", "name", 1, 1, submitMessage));
                Assert.Throws <ArgumentException>(() => client.Submit("owner", "", 1, 1, submitMessage));
            }
            public void PostsToCorrectUrlWithRepositoryId()
            {
                var gitHubClient = Substitute.For <IGitHubClient>();
                var client       = new ObservablePullRequestReviewsClient(gitHubClient);

                var submitMessage = new PullRequestReviewSubmit()
                {
                    Body  = "string",
                    Event = PullRequestReviewEvent.Approve
                };

                client.Submit(1, 13, 13, submitMessage);

                gitHubClient.Received().PullRequest.Review.Submit(1, 13, 13, submitMessage);
            }