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

                Assert.Throws<ArgumentNullException>(() => client.Edit(null, "name", 12345678, new EditRepositoryHook()));
                Assert.Throws<ArgumentNullException>(() => client.Edit("owner", null, 12345678, new EditRepositoryHook()));
                Assert.Throws<ArgumentNullException>(() => client.Edit("owner", "name", 12345678, null));

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

                Assert.Throws<ArgumentException>(() => client.Edit("", "name", 12345678, new EditRepositoryHook()));
                Assert.Throws<ArgumentException>(() => client.Edit("owner", "", 12345678, new EditRepositoryHook()));
            }
            public void RequestsCorrectUrlWithRepositoryId()
            {
                var gitHubClient = Substitute.For<IGitHubClient>();
                var client = new ObservableRepositoryHooksClient(gitHubClient);

                var hook = new EditRepositoryHook();

                client.Edit(1, 12345678, hook);

                gitHubClient.Received().Repository.Hooks.Edit(1, 12345678, hook);
            }