private Func<BasicReturn, bool> WrapCallback(WeakReference callback, RogerGuid messageId) { return @return => { if (!callback.IsAlive) return true; if (@return.MessageId == messageId) { log.DebugFormat("Invoking basic return callback for message id {0}", @return.MessageId); ((Action<BasicReturn>)callback.Target)(@return); return true; } return false; }; }
public void Should_enqueue_reply_when_correlation_id_same_as_request_id() { aggregator.Notify(new ConsumingEnabled(new RogerEndpoint("whatever"), connection)); var requestId = RogerGuid.NewGuid(); sut.Reply(new MyReply(), new CurrentMessageInformation { MessageId = requestId, Endpoint = new RogerEndpoint("someEndpoint") }, null, true, true); Thread.Sleep(100); model.Received().BasicPublish(Arg.Any <string>(), Arg.Any <string>(), true, false, Arg.Is <IBasicProperties>(p => p.CorrelationId == requestId), Arg.Any <byte[]>()); }
private Func <BasicReturn, bool> WrapCallback(WeakReference callback, RogerGuid messageId) { return(@return => { if (!callback.IsAlive) { return true; } if (@return.MessageId == messageId) { log.DebugFormat("Invoking basic return callback for message id {0}", @return.MessageId); ((Action <BasicReturn>)callback.Target)(@return); return true; } return false; }); }
public RogerGuid Next() { return(RogerGuid.NewGuid()); }
public void Subscribe(RogerGuid messageId, Action <BasicReturn> callback) { callbacks.TryAdd(messageId, WrapCallback(new WeakReference(callback), messageId)); }
public void Subscribe(RogerGuid messageId, Action<BasicReturn> callback) { callbacks.TryAdd(messageId, WrapCallback(new WeakReference(callback), messageId)); }
internal BasicReturn(RogerGuid messageId, ushort replyCode, string replyText) { MessageId = messageId; ReplyCode = replyCode; ReplyText = replyText; }
public void Should_create_new_random_guid() { Assert.AreNotEqual(RogerGuid.NewGuid(), new RogerGuid()); }