public void EnsuresNonNullArguments()
            {
                var client      = new ObservableIssuesLabelsClient(Substitute.For <IGitHubClient>());
                var labelUpdate = new LabelUpdate("name", "FF0000");

                Assert.Throws <ArgumentNullException>(() => client.Update(null, "name", "labelName", labelUpdate));
                Assert.Throws <ArgumentNullException>(() => client.Update("owner", null, "labelName", labelUpdate));
                Assert.Throws <ArgumentNullException>(() => client.Update("owner", "name", null, labelUpdate));
                Assert.Throws <ArgumentNullException>(() => client.Update("owner", "name", "labelName", null));

                Assert.Throws <ArgumentNullException>(() => client.Update(1, null, labelUpdate));
                Assert.Throws <ArgumentNullException>(() => client.Update(1, "labelName", null));

                Assert.Throws <ArgumentException>(() => client.Update("", "name", "labelName", labelUpdate));
                Assert.Throws <ArgumentException>(() => client.Update("owner", "", "labelName", labelUpdate));
                Assert.Throws <ArgumentException>(() => client.Update("owner", "name", "", labelUpdate));

                Assert.Throws <ArgumentException>(() => client.Update(1, "", labelUpdate));
            }
            public void UpdatesCorrectUrlWithRepositoryId()
            {
                var gitHubClient = Substitute.For <IGitHubClient>();
                var client       = new ObservableIssuesLabelsClient(gitHubClient);

                var labelUpdate = new LabelUpdate("name", "FF0000");

                client.Update(1, "labelName", labelUpdate);

                gitHubClient.Received().Issue.Labels.Update(1, "labelName", labelUpdate);
            }