public void DisposeUnregistersCallback() { var queueName = "My.QueueName"; var topicFilters = new List <string> { "My.*.Filter", "MVM.#" }; var context = new InMemoryContext(); var target = new InMemoryMessageReceiver(context, queueName, topicFilters); target.StartReceivingMessages(); EventMessageReceivedCallback callback = m => { }; target.StartHandlingMessages(callback); // Check Arrange var queue = context.Connection.GetNamedMessageQueue(queueName); Assert.AreEqual(true, queue.HasConsumer); // Act target.Dispose(); // Assert queue = context.Connection.GetNamedMessageQueue(queueName); Assert.AreEqual(false, queue.HasConsumer); }
public void CannotCall_StartHandlingMessages_AfterDispose() { var queueName = "My.QueueName"; var topicFilters = new List <string> { "My.*.Filter", "MVM.#" }; var context = new InMemoryContext(); var target = new InMemoryMessageReceiver(context, queueName, topicFilters); target.Dispose(); Action act = () => { target.StartReceivingMessages(); }; var ex = Assert.ThrowsException <ObjectDisposedException>(act); Assert.AreEqual("Cannot access a disposed object.\r\nObject name: 'InMemoryMessageReceiver'.", ex.Message); }