internal void Non_Generic_Wait_Invocation_Creates_Valid_Wait(MessageCode.Server code, string token, int?timeout) { var key = new WaitKey(code, token); using (var waiter = new Waiter()) { Task task = waiter.Wait(key, timeout); var waits = waiter.GetProperty <ConcurrentDictionary <WaitKey, ConcurrentQueue <PendingWait> > >("Waits"); waits.TryGetValue(key, out var queue); queue.TryPeek(out var wait); try { Assert.IsType <Task <object> >(task); Assert.NotNull(task); Assert.Equal(TaskStatus.WaitingForActivation, task.Status); Assert.NotEmpty(waits); Assert.Single(waits); Assert.NotNull(queue); Assert.Single(queue); if (timeout != null) { Assert.Equal(timeout, wait.Timeout); } } finally { wait.Dispose(); } } }
public void Handles_IntegerResponse_Messages(MessageCode.Server code) { int value = new Random().Next(); int?result = null; var(handler, mocks) = GetFixture(); mocks.Waiter.Setup(m => m.Complete(It.IsAny <WaitKey>(), It.IsAny <int>())) .Callback <WaitKey, int>((key, response) => result = response); var msg = new MessageBuilder() .WriteCode(code) .WriteInteger(value) .Build(); handler.HandleMessage(null, msg); Assert.Equal(value, result); }
public void Handles_IntegerResponse_Messages(MessageCode.Server code) { int value = new Random().Next(); int?result = null; var waiter = new Mock <IWaiter>(); waiter.Setup(m => m.Complete(It.IsAny <WaitKey>(), It.IsAny <int>())) .Callback <WaitKey, int>((key, response) => result = response); var msg = new MessageBuilder() .WriteCode(code) .WriteInteger(value) .Build(); using (var s = new SoulseekClient("127.0.0.1", 1, waiter: waiter.Object)) { s.InvokeMethod("ServerConnection_MessageRead", null, msg); Assert.Equal(value, result); } }
/// <summary> /// Sets the message code. /// </summary> /// <param name="code">The desired message code.</param> /// <returns>This MessageBuilder.</returns> public MessageBuilder WriteCode(MessageCode.Server code) { return(WriteCode(BitConverter.GetBytes((int)code))); }