public async Task LoginAsync_Does_Not_Write_HaveNoParent_On_Success_If_Disabled(string user, string password, int port) { var waiter = new Mock <IWaiter>(); waiter.Setup(m => m.Wait <LoginResponse>(It.IsAny <WaitKey>(), null, It.IsAny <CancellationToken>())) .Returns(Task.FromResult(new LoginResponse(true, string.Empty))); var conn = new Mock <IMessageConnection>(); using (var s = new SoulseekClient("127.0.0.1", 1, serverConnection: conn.Object, waiter: waiter.Object, options: new SoulseekClientOptions(enableDistributedNetwork: false, listenPort: port))) { s.SetProperty("State", SoulseekClientStates.Connected); await s.LoginAsync(user, password); } var expectedBytes = new HaveNoParentsCommand(true).ToByteArray(); conn.Verify(m => m.WriteAsync(It.Is <byte[]>(b => b.Matches(expectedBytes)), It.IsAny <CancellationToken?>()), Times.Never); }
public async Task LoginAsync_Writes_HaveNoParent_On_Success_If_Enabled(string user, string password) { var port = GetPort(); var waiter = new Mock <IWaiter>(); waiter.Setup(m => m.Wait <LoginResponse>(It.IsAny <WaitKey>(), null, It.IsAny <CancellationToken>())) .Returns(Task.FromResult(new LoginResponse(true, string.Empty))); var conn = new Mock <IMessageConnection>(); using (var s = new SoulseekClient(serverConnection: conn.Object, waiter: waiter.Object, options: new SoulseekClientOptions(listenPort: port))) { s.SetProperty("State", SoulseekClientStates.Connected); await s.LoginAsync(user, password); } var expectedBytes = new HaveNoParentsCommand(true).ToByteArray(); conn.Verify(m => m.WriteAsync(It.Is <IOutgoingMessage>(msg => msg.ToByteArray().Matches(expectedBytes)), It.IsAny <CancellationToken?>())); }