public void EnsuresNonNullArguments()
            {
                var releasesClient = new ObservableReleasesClient(Substitute.For<IGitHubClient>());
                var update = new ReleaseUpdate { TagName = "tag" };

                Assert.Throws<ArgumentNullException>(() => releasesClient.Edit(null, "name", 1, update));
                Assert.Throws<ArgumentException>(() => releasesClient.Edit("", "name", 1, update));
                Assert.Throws<ArgumentNullException>(() => releasesClient.Edit("owner", null, 1, update));
                Assert.Throws<ArgumentException>(() => releasesClient.Edit("owner", "", 1, update));
                Assert.Throws<ArgumentNullException>(() => releasesClient.Edit("owner", "name", 1, null));
            }
            public void RequestsTheCorrectUrl()
            {
                var gitHubClient = Substitute.For<IGitHubClient>();
                var releasesClient = new ObservableReleasesClient(gitHubClient);
                var data = new ReleaseUpdate { TagName = "fake-tag" };

                releasesClient.Edit("fake", "repo", 1, data);

                gitHubClient.Repository.Release.Received(1).Edit("fake", "repo", 1, data);
            }