Example #1
0
        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);
        }
Example #2
0
        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?>()));
        }