public void CreatesFromClientIssueIssue()
        {
            var newIssue     = new NewIssue("some title");
            var gitHubClient = Substitute.For <IGitHubClient>();
            var client       = new ObservableIssuesClient(gitHubClient);

            client.Create("fake", "repo", newIssue);

            gitHubClient.Issue.Received().Create("fake", "repo", newIssue);
        }
        public void EnsuresNonNullArguments()
        {
            var gitHubClient = Substitute.For <IGitHubClient>();
            var client       = new ObservableIssuesClient(gitHubClient);

            Assert.Throws <ArgumentNullException>(() => client.Create(null, "name", new NewIssue("x")));
            Assert.Throws <ArgumentNullException>(() => client.Create("owner", null, new NewIssue("x")));
            Assert.Throws <ArgumentNullException>(() => client.Create("owner", "name", null));

            Assert.Throws <ArgumentNullException>(() => client.Create(1, null));

            Assert.Throws <ArgumentException>(() => client.Create("", "name", new NewIssue("x")));
            Assert.Throws <ArgumentException>(() => client.Create("owner", "", new NewIssue("x")));
        }