public void CallsIntoClient()
            {
                var gitHubClient = Substitute.For<IGitHubClient>();
                var releasesClient = new ObservableReleasesClient(gitHubClient);
                var data = new ReleaseUpdate("fake-tag");

                releasesClient.Create("fake", "repo", data);

                gitHubClient.Release.Received(1).Create("fake", "repo", data);
            }
            public void EnsuresArgumentsNotNull()
            {
                var releasesClient = new ObservableReleasesClient(Substitute.For<IGitHubClient>());
                var data = new NewRelease("fake-tag");

                Assert.Throws<ArgumentNullException>(() => new NewRelease(null));
                Assert.Throws<ArgumentNullException>(() => releasesClient.Create(null, "name", data));
                Assert.Throws<ArgumentNullException>(() => releasesClient.Create("owner", null, data));
                Assert.Throws<ArgumentNullException>(() => releasesClient.Create("owner", "name", null));
            }
            public void RequestsTheCorrectUrlWithRepositoryId()
            {
                var gitHubClient = Substitute.For<IGitHubClient>();
                var releasesClient = new ObservableReleasesClient(gitHubClient);
                var data = new NewRelease("fake-tag");

                releasesClient.Create(1, data);

                gitHubClient.Repository.Release.Received(1).Create(1, data);
            }