public void NullPublishCausesException() { var messenger = new MvxMessengerHub(); Assert.Throws <ArgumentNullException>(() => { messenger.Publish <TestMessage>(null); }); }
public void MultipleSubscribeAndPublishAllowsMessageToBeReceived() { var messenger = new MvxMessengerHub(); var message = new TestMessage(this); var otherMessage = new OtherTestMessage(this); var messageReceived = 0; messenger.Subscribe <TestMessage>(m => { Assert.That(m, Is.EqualTo(message)); Assert.That(m.Sender, Is.EqualTo(this)); messageReceived++; }); var otherMessageReceived = 0; messenger.Subscribe <OtherTestMessage>(m => { Assert.That(m, Is.EqualTo(otherMessage)); Assert.That(m.Sender, Is.EqualTo(this)); otherMessageReceived++; }); messenger.Publish(otherMessage); Assert.AreEqual(0, messageReceived); Assert.AreEqual(1, otherMessageReceived); messenger.Publish(message); Assert.AreEqual(1, messageReceived); Assert.AreEqual(1, otherMessageReceived); messenger.Publish(message); Assert.AreEqual(2, messageReceived); Assert.AreEqual(1, otherMessageReceived); messenger.Publish(message); Assert.AreEqual(3, messageReceived); Assert.AreEqual(1, otherMessageReceived); messenger.Publish(otherMessage); Assert.AreEqual(3, messageReceived); Assert.AreEqual(2, otherMessageReceived); }
protected override void AdditionalSetup() { _queueItems = new List <Core.Models.GatewayQueueItem>(); _mockQueueItemRepository = new Mock <Core.Repositories.IGatewayQueueItemRepository>(); _mockQueueItemRepository.Setup(m => m.GetAllInQueueOrderAsync()).ReturnsAsync(_queueItems); _mockQueueItemRepository.Setup(m => m.InsertAsync(It.IsAny <Core.Models.GatewayQueueItem>())) .Callback <Core.Models.GatewayQueueItem>(gqi => _queueItems.Add(gqi)) .Returns(Task.FromResult(0)); _mockQueueItemRepository.Setup(m => m.DeleteAsync(It.IsAny <Core.Models.GatewayQueueItem>())) .Callback <Core.Models.GatewayQueueItem>(gqi => _queueItems.Remove(gqi)) .Returns(Task.FromResult(0)); _fixture = new Fixture().Customize(new AutoMoqCustomization()); IDeviceRepository repo = Mock.Of <IDeviceRepository>(dr => dr.GetAllAsync() == Task.FromResult(_fixture.CreateMany <Device>())); IRepositories repos = Mock.Of <IRepositories>(r => r.DeviceRepository == repo && r.GatewayQueueItemRepository == _mockQueueItemRepository.Object); _fixture.Register <IRepositories>(() => repos); // Mock a success response from the BlueSphere MWF Mobile gateway service var responseActions = new[] { new Core.Models.GatewayServiceResponse.ResponseAction { Ack = true } }; var response = new Core.HttpResult <Core.Models.GatewayServiceResponse.Response> { StatusCode = System.Net.HttpStatusCode.Accepted, Content = new Core.Models.GatewayServiceResponse.Response { Actions = responseActions }, }; var mockHttpService = new Mock <Core.Services.IHttpService>(); mockHttpService.Setup(m => m.PostJsonAsync <Core.Models.GatewayServiceResponse.Response>(It.IsAny <string>(), It.IsAny <string>())).ReturnsAsync(response); _fixture.Register <Core.Services.IHttpService>(() => mockHttpService.Object); _fixture.Register <Core.Services.IDeviceInfo>(() => Mock.Of <Core.Services.IDeviceInfo>()); var messenger = new MvxMessengerHub(); _fixture.Register <IMvxMessenger>(() => messenger); // We don't have the GatewayQueueTimerService so replicate the trigger -> publish elapsed message functionality _token = messenger.Subscribe <GatewayQueueTimerCommandMessage>(m => { if (m.Command == GatewayQueueTimerCommandMessage.TimerCommand.Trigger) { messenger.Publish(new GatewayQueueTimerElapsedMessage(this)); } }); }
public void DisposeTokenPreventsMessagesBeingReceived() { var messenger = new MvxMessengerHub(); Action <TestMessage> action = _ => Assert.That(false, "This event should not fire!"); var id = messenger.Subscribe(action); id.Dispose(); messenger.Publish(new TestMessage(this)); }
public void UnsubscribePreventsMessagesBeingReceived() { var messenger = new MvxMessengerHub(); Action <TestMessage> action = _ => Assert.True(false, "This event should not fire!"); var id = messenger.Subscribe(action); messenger.Unsubscribe <TestMessage>(id); messenger.Publish(new TestMessage(this)); }
public void SubscribeAndPublishAllowsMessageToBeReceived() { var messenger = new MvxMessengerHub(); var message = new TestMessage(this); var messageReceived = false; messenger.Subscribe<TestMessage>(m => { Assert.That(m, Is.EqualTo(message)); Assert.That(m.Sender, Is.EqualTo(this)); messageReceived = true; }); messenger.Publish(message); Assert.IsTrue(messageReceived); }
public void SubscribeAndPublishAllowsMessageToBeReceived() { var messenger = new MvxMessengerHub(); var message = new TestMessage(this); var messageReceived = false; messenger.Subscribe <TestMessage>(m => { Assert.That(m, Is.EqualTo(message)); Assert.That(m.Sender, Is.EqualTo(this)); messageReceived = true; }); messenger.Publish(message); Assert.IsTrue(messageReceived); }
public void MultipleSubscribeAndPublishAllowsMessageToBeReceived() { var messenger = new MvxMessengerHub(); var message = new TestMessage(this); var otherMessage = new OtherTestMessage(this); var messageReceived = 0; messenger.Subscribe<TestMessage>(m => { Assert.That(m, Is.EqualTo(message)); Assert.That(m.Sender, Is.EqualTo(this)); messageReceived++; }); var otherMessageReceived = 0; messenger.Subscribe<OtherTestMessage>(m => { Assert.That(m, Is.EqualTo(otherMessage)); Assert.That(m.Sender, Is.EqualTo(this)); otherMessageReceived++; }); messenger.Publish(otherMessage); Assert.AreEqual(0, messageReceived); Assert.AreEqual(1, otherMessageReceived); messenger.Publish(message); Assert.AreEqual(1, messageReceived); Assert.AreEqual(1, otherMessageReceived); messenger.Publish(message); Assert.AreEqual(2, messageReceived); Assert.AreEqual(1, otherMessageReceived); messenger.Publish(message); Assert.AreEqual(3, messageReceived); Assert.AreEqual(1, otherMessageReceived); messenger.Publish(otherMessage); Assert.AreEqual(3, messageReceived); Assert.AreEqual(2, otherMessageReceived); }
public void PurgeCausesChangeMessage() { var messenger = new MvxMessengerHub(); MvxSubscriberChangeMessage subscriberChangeMessage = null; var changeToken = messenger.Subscribe <MvxSubscriberChangeMessage>(message => subscriberChangeMessage = message); CreateShortLivedSubscription(messenger); Assert.NotNull(subscriberChangeMessage); Assert.AreEqual(1, subscriberChangeMessage.SubscriberCount); Assert.AreEqual(typeof(TestMessage), subscriberChangeMessage.MessageType); subscriberChangeMessage = null; System.Threading.Thread.Sleep(100); GC.Collect(); GC.WaitForFullGCComplete(); messenger.Publish(new TestMessage(this)); System.Threading.Thread.Sleep(100); Assert.NotNull(subscriberChangeMessage); Assert.AreEqual(0, subscriberChangeMessage.SubscriberCount); Assert.AreEqual(typeof(TestMessage), subscriberChangeMessage.MessageType); }
public void PurgeCausesChangeMessage() { var messenger = new MvxMessengerHub(); MvxSubscriberChangeMessage subscriberChangeMessage = null; var changeToken = messenger.Subscribe <MvxSubscriberChangeMessage>(message => subscriberChangeMessage = message); CreateShortLivedSubscription(messenger); Assert.NotNull(subscriberChangeMessage); Assert.AreEqual(1, subscriberChangeMessage.SubscriberCount); Assert.AreEqual(typeof(TestMessage), subscriberChangeMessage.MessageType); subscriberChangeMessage = null; Thread.Sleep(100); GC.Collect(); GC.WaitForFullGCComplete(); messenger.Publish(new TestMessage(this)); Thread.Sleep(100); // TODO - figure out why this test fails in NUnit console runner, but not through VS Test Execution //Assert.NotNull(subscriberChangeMessage); //Assert.AreEqual(0, subscriberChangeMessage.SubscriberCount); //Assert.AreEqual(typeof(TestMessage), subscriberChangeMessage.MessageType); }
public void PurgeCausesChangeMessage() { var messenger = new MvxMessengerHub(); MvxSubscriberChangeMessage subscriberChangeMessage = null; var changeToken = messenger.Subscribe<MvxSubscriberChangeMessage>(message => subscriberChangeMessage = message); CreateShortLivedSubscription(messenger); Assert.NotNull(subscriberChangeMessage); Assert.AreEqual(1, subscriberChangeMessage.SubscriberCount); Assert.AreEqual(typeof(TestMessage), subscriberChangeMessage.MessageType); subscriberChangeMessage = null; System.Threading.Thread.Sleep(100); GC.Collect(); GC.WaitForFullGCComplete(); messenger.Publish(new TestMessage(this)); System.Threading.Thread.Sleep(100); Assert.NotNull(subscriberChangeMessage); Assert.AreEqual(0, subscriberChangeMessage.SubscriberCount); Assert.AreEqual(typeof(TestMessage), subscriberChangeMessage.MessageType); }
public void NullPublishCausesException() { var messenger = new MvxMessengerHub(); messenger.Publish<TestMessage>(null); }
public void DisposeTokenPreventsMessagesBeingReceived() { var messenger = new MvxMessengerHub(); Action<TestMessage> action = _ => Assert.That(false, "This event should not fire!"); var id = messenger.Subscribe(action); id.Dispose(); messenger.Publish(new TestMessage(this)); }
public void NullPublishCausesException() { var messenger = new MvxMessengerHub(); messenger.Publish <TestMessage>(null); }
public void NullPublishCausesException() { var messenger = new MvxMessengerHub(); Assert.Throws<ArgumentNullException>(() => { messenger.Publish<TestMessage>(null); }); }
protected void SendEvent <T>(T evt) where T : MvxMessage { _messengerHub.Publish(evt); }