private TestContext CreateContext() { var seqNumber = 1; var props = new Mock <IBasicProperties>(); var model = new Mock <IModel>(); model.Setup(m => m.CreateBasicProperties()).Returns(props.Object); var mreForFirstMessage = new ManualResetEventSlim(false); var connection = new Mock <IConnection>(); connection.Setup(c => c.CreateModel()).Returns(model.Object); var settings = HarePublisherSettings.GetDefaultSettings(); settings.UseConfirms = true; settings.IntervalConnectionTries = TimeSpan.Zero; settings.MaxMessageWaitingToBeSent = 1; var publisher = new RabbitMQHare.RabbitPublisher(settings, new RabbitExchange("testing")) { CreateConnection = () => connection.Object, RedeclareMyTopology = m => { } }; model.Setup(m => m.NextPublishSeqNo).Returns((ulong)seqNumber).Callback(() => Interlocked.Increment(ref seqNumber)); return(new TestContext { Connection = connection, Model = model, MreForFirstMessage = mreForFirstMessage, Publisher = publisher, SeqNumber = seqNumber }); }
private TestContext CreateContext(int maxMessageInTheQueue = 1) { var props = new Mock <IBasicProperties>(); var model = new Mock <IModel>(); model.Setup(m => m.CreateBasicProperties()).Returns(props.Object); var mre = new ManualResetEventSlim(false); var connection = new Mock <IConnection>(); connection.Setup(c => c.CreateModel()).Returns(model.Object); var settings = HarePublisherSettings.GetDefaultSettings(); settings.MaxConnectionRetry = -1; settings.IntervalConnectionTries = TimeSpan.Zero; settings.MaxMessageWaitingToBeSent = maxMessageInTheQueue; var publisher = new RabbitMQHare.RabbitPublisher(settings, new RabbitExchange("testing")) { CreateConnection = () => connection.Object, RedeclareMyTopology = m => { }, }; return(new TestContext { Connection = connection, Model = model, Mre = mre, Publisher = publisher }); }
public void PlugGenericHandler() { var set = HarePublisherSettings.GetDefaultSettings(); var publisher = new RabbitMQHare.RabbitPublisher(set, new RabbitExchange("test")); publisher.HasEnoughEventHandlers(0); publisher.PlugGenericHook((m, e) => { }); publisher.HasEnoughEventHandlers(1, "EventHandlerFailureHandler"); }