public void MessageIsRepublished() { ArtificialQueueWrapper qw = new ArtificialQueueWrapper(); Mock <ILogger> log = new Mock <ILogger>(); Mock <IMethodInspectorManager> mim = new Mock <IMethodInspectorManager>(); Mock <IConfigurationManager> config = new Mock <IConfigurationManager>(); config.Setup(x => x.Get("UseStructureMap", false)).Returns(true); var container = new Container(new MicroserviceRegistry(typeof(ConsumeMessageTests).Assembly)); container.Configure(x => { x.For <IQueueWrapper>().ClearAll().Use(qw); }); var containerFacade = new ContainerFacade(container, config.Object); MessageSubscriber subscriber = new MessageSubscriber(qw, log.Object, config.Object, _metrics, mim.Object, containerFacade); Guid messageGuid = Guid.NewGuid(); BasicDeliverEventArgs eventDetails = new BasicDeliverEventArgs() { Body = Encoding.ASCII.GetBytes("{uuid:\"" + messageGuid + "\", method:\"GetFish\", source:\"Nowhere\", need:\"redherring\",publishedTime:\"" + DateTime.UtcNow.ToString("s") + "\", lastModifiedBy:\"test\", lastModifiedTime:\"" + DateTime.UtcNow.ToString("s") + "\"}") }; subscriber.ConsumeMessage(null, eventDetails); Thread.Sleep(50); Assert.AreEqual(1, qw.AcknowledgedMessages.Count); Assert.IsTrue(qw.AcknowledgedMessages.Contains(eventDetails)); Assert.AreEqual(1, qw.PublishedMessages.Count); }
public void UndeserialisableMessageIsAcked() { ArtificialQueueWrapper qw = new ArtificialQueueWrapper(); Mock <ILogger> log = new Mock <ILogger>(); Mock <IMethodInspectorManager> mim = new Mock <IMethodInspectorManager>(); Mock <IConfigurationManager> config = new Mock <IConfigurationManager>(); MessageSubscriber subscriber = new MessageSubscriber(qw, log.Object, config.Object, _metrics, mim.Object, Mock.Of <IContainerFacade>()); BasicDeliverEventArgs eventDetails = new BasicDeliverEventArgs() { Body = Encoding.ASCII.GetBytes("{message:\"Hello World\"}") }; subscriber.ConsumeMessage(null, eventDetails); Assert.IsTrue(qw.AcknowledgedMessages.Contains(eventDetails)); }