using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using NSubstitute; using Octokit.Reactive; using Xunit; namespace Octokit.Tests.Reactive { public class ObservableUserGpgKeysClientTests { public class TheGetAllForCurrentMethod { [Fact] public void CallsIntoClient() { var githubClient = Substitute.For(); var client = new ObservableUserGpgKeysClient(githubClient); client.GetAllForCurrent(); githubClient.User.GpgKeys.Received().GetAllForCurrent(Arg.Any()); } } public class TheGetMethod { [Fact] public void CallsIntoClient() { var githubClient = Substitute.For(); var client = new ObservableUserGpgKeysClient(githubClient); client.Get(1); githubClient.User.GpgKeys.Received().Get(1); } } public class TheCreateMethod { [Fact] public void CallsIntoClient() { var githubClient = Substitute.For(); var client = new ObservableUserGpgKeysClient(githubClient); client.Create(new NewGpgKey("ABCDEFG")); githubClient.User.GpgKeys.Received().Create(Arg.Is(k => k.ArmoredPublicKey == "ABCDEFG")); } } public class TheDeleteMethod { [Fact] public void CallsIntoClient() { var githubClient = Substitute.For(); var client = new ObservableUserGpgKeysClient(githubClient); client.Delete(1); githubClient.User.GpgKeys.Received().Delete(1); } } public class TheCtor { [Fact] public void EnsuresNonNullArguments() { Assert.Throws(() => new ObservableUserGpgKeysClient(null)); } } } }