public async Task EnsuresNonNullArguments()
            {
                var client = new ObservableIssuesLabelsClient(Substitute.For<IGitHubClient>());

                Assert.Throws<ArgumentNullException>(() => client.RemoveFromIssue(null, "name", 42, "label"));
                Assert.Throws<ArgumentNullException>(() => client.RemoveFromIssue("owner", null, 42, "label"));
                Assert.Throws<ArgumentNullException>(() => client.RemoveFromIssue("owner", "name", 42, null));

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

                Assert.Throws<ArgumentException>(() => client.RemoveFromIssue("", "name", 42, "label"));
                Assert.Throws<ArgumentException>(() => client.RemoveFromIssue("owner", "", 42, "label"));
                Assert.Throws<ArgumentException>(() => client.RemoveFromIssue("owner", "name", 42, ""));

                Assert.Throws<ArgumentException>(() => client.RemoveFromIssue(1, 42, ""));
            }
            public void DeleteCorrectUrlWithRepositoryId()
            {
                var connection = Substitute.For<IConnection>();
                var gitHubClient = new GitHubClient(connection);
                var client = new ObservableIssuesLabelsClient(gitHubClient);

                client.RemoveFromIssue(1, 42, "label");

                connection.Received().Delete(Arg.Is<Uri>(u => u.ToString() == "repositories/1/issues/42/labels/label"));
            }