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

            client.Create(1, newIssue);

            gitHubClient.Issue.Received().Create(1, 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")));
        }
            public async Task EnsuresArgumentsNotNull()
            {
                var gitHubClient = Substitute.For<IGitHubClient>();
                var client = new ObservableIssuesClient(gitHubClient);

                AssertEx.Throws<ArgumentNullException>(async () => await
                    client.Create(null, "name", new NewIssue("title")));
                AssertEx.Throws<ArgumentException>(async () => await
                    client.Create("", "name", new NewIssue("x")));
                AssertEx.Throws<ArgumentNullException>(async () => await
                    client.Create("owner", null, new NewIssue("x")));
                AssertEx.Throws<ArgumentException>(async () => await
                    client.Create("owner", "", new NewIssue("x")));
                AssertEx.Throws<ArgumentNullException>(async () => await
                    client.Create("owner", "name", null));
            }