public void Should_abandon_message_if_errors() { // Given var subscriberOne = A.Fake <IDynamicSubscriber>(); string foo = null; long baz = 0; A.CallTo(() => subscriberOne.CanProcess(A <IServiceBusMessage> ._)) .Returns(true); A.CallTo(() => subscriberOne.Process(A <IServiceBusMessage> ._, A <object> ._)) .Invokes(foc => { throw new InvalidOperationException(); }); var listener = new ServiceBusListener( new[] { subscriberOne }, new SimpleJsonSerialiser(), this.bus); var message = this.GetMessage("foo", "{ \"Foo\" : \"Bar\", \"Baz\" : 23 }"); listener.Connect(this.connectionString, this.queueName); // When this.bus.CallBack.Invoke(message).Wait(); // Then message.Completed.ShouldBeFalse(); message.Abandoned.ShouldBeTrue(); }
public void Should_complete_message_if_no_error() { // Given var subscriberOne = A.Fake <IDynamicSubscriber>(); string foo = null; long baz = 0; A.CallTo(() => subscriberOne.CanProcess(A <IServiceBusMessage> ._)) .Returns(true); A.CallTo(() => subscriberOne.Process(A <IServiceBusMessage> ._, A <object> ._)) .Invokes(foc => { dynamic model = foc.Arguments[1]; foo = model.Foo; baz = model.Baz; }).Returns(Task.FromResult(0)); var listener = new ServiceBusListener( new[] { subscriberOne }, new SimpleJsonSerialiser(), this.bus); var message = this.GetMessage("foo", "{ \"Foo\" : \"Bar\", \"Baz\" : 23 }"); listener.Connect(this.connectionString, this.queueName); // When this.bus.CallBack.Invoke(message).Wait(); // Then message.Completed.ShouldBeTrue(); message.Abandoned.ShouldBeFalse(); }
public void Should_only_call_subscriber_who_can_process() { // Given var subscriberOne = A.Fake <IDynamicSubscriber>(); A.CallTo(() => subscriberOne.CanProcess(A <IServiceBusMessage> ._)).Returns(true); var subscriberTwo = A.Fake <IDynamicSubscriber>(); A.CallTo(() => subscriberTwo.CanProcess(A <IServiceBusMessage> ._)).Returns(false); var listener = new ServiceBusListener( new[] { subscriberOne, subscriberTwo }, this.serialiser, this.bus); var message = this.GetMessage("foo"); listener.Connect(this.connectionString, this.queueName); // When this.bus.CallBack.Invoke(message).Wait(); // Then A.CallTo(() => subscriberOne.Process(A <IServiceBusMessage> ._, A <object> ._)) .MustHaveHappened(Repeated.Exactly.Once); A.CallTo(() => subscriberTwo.Process(A <IServiceBusMessage> ._, A <object> ._)) .MustNotHaveHappened(); }
public void Should_connect() { // Given var listener = new ServiceBusListener( Enumerable.Empty<ISubscriber>(), this.serialiser, this.bus); // When listener.Connect(this.connectionString, this.queueName); // Then this.bus.ConnectionString.ShouldEqual(this.connectionString); this.bus.QueueName.ShouldEqual(this.queueName); }
public void Should_use_passed_in_queue_parameters_if_specified() { // Given var description = new QueueDescription(this.queueName); var listener = new ServiceBusListener( Enumerable.Empty<ISubscriber>(), this.serialiser, this.bus); // When listener.Connect(this.connectionString, this.queueName, description); // Then this.bus.VerifyQueueDescription.ShouldBeSameAs(description); }
public void Should_connect() { // Given var listener = new ServiceBusListener( Enumerable.Empty <ISubscriber>(), this.serialiser, this.bus); // When listener.Connect(this.connectionString, this.queueName); // Then this.bus.ConnectionString.ShouldEqual(this.connectionString); this.bus.QueueName.ShouldEqual(this.queueName); }
public void Should_use_passed_in_queue_parameters_if_specified() { // Given var description = new QueueDescription(this.queueName); var listener = new ServiceBusListener( Enumerable.Empty <ISubscriber>(), this.serialiser, this.bus); // When listener.Connect(this.connectionString, this.queueName, description); // Then this.bus.VerifyQueueDescription.ShouldBeSameAs(description); }
public void Should_verify_queue_on_connect() { // Given var listener = new ServiceBusListener( Enumerable.Empty<ISubscriber>(), this.serialiser, this.bus); // When listener.Connect(this.connectionString, this.queueName); // Then this.bus.VerifyQueueConnectionString.ShouldEqual(this.connectionString); this.bus.VerifyQueueDescription.ShouldNotBeNull(); this.bus.VerifyQueueDescription.Path.ShouldEqual(this.queueName); }
public void Should_verify_queue_on_connect() { // Given var listener = new ServiceBusListener( Enumerable.Empty <ISubscriber>(), this.serialiser, this.bus); // When listener.Connect(this.connectionString, this.queueName); // Then this.bus.VerifyQueueConnectionString.ShouldEqual(this.connectionString); this.bus.VerifyQueueDescription.ShouldNotBeNull(); this.bus.VerifyQueueDescription.Path.ShouldEqual(this.queueName); }
static void Main(string[] args) { Console.Write("Enter connectionstring: "); var connectionString = Console.ReadLine(); Console.Write("Enter queue name: "); var queueName = Console.ReadLine(); var listener = new ServiceBusListener(new[] { new BusSubscriber() }); listener.Connect(connectionString, queueName); while (true) { Thread.Sleep(1000); } }
public void Should_call_can_process_on_each_subscriber() { // Given var subscriberOne = A.Fake<ISubscriber>(); var subscriberTwo = A.Fake<ISubscriber>(); var listener = new ServiceBusListener( new[] { subscriberOne, subscriberTwo }, this.serialiser, this.bus); var message = this.GetMessage("foo"); listener.Connect(this.connectionString, this.queueName); // When this.bus.CallBack.Invoke(message).Wait(); // Then A.CallTo(() => subscriberOne.CanProcess(A<IServiceBusMessage>._)) .MustHaveHappened(Repeated.Exactly.Once); A.CallTo(() => subscriberTwo.CanProcess(A<IServiceBusMessage>._)) .MustHaveHappened(Repeated.Exactly.Once); }
public void Should_abandon_message_if_errors() { // Given var subscriberOne = A.Fake<IDynamicSubscriber>(); string foo = null; long baz = 0; A.CallTo(() => subscriberOne.CanProcess(A<IServiceBusMessage>._)) .Returns(true); A.CallTo(() => subscriberOne.Process(A<IServiceBusMessage>._, A<object>._)) .Invokes(foc => { throw new InvalidOperationException(); }); var listener = new ServiceBusListener( new[] { subscriberOne }, new SimpleJsonSerialiser(), this.bus); var message = this.GetMessage("foo", "{ \"Foo\" : \"Bar\", \"Baz\" : 23 }"); listener.Connect(this.connectionString, this.queueName); // When this.bus.CallBack.Invoke(message).Wait(); // Then message.Completed.ShouldBeFalse(); message.Abandoned.ShouldBeTrue(); }
public void Should_complete_message_if_no_error() { // Given var subscriberOne = A.Fake<IDynamicSubscriber>(); string foo = null; long baz = 0; A.CallTo(() => subscriberOne.CanProcess(A<IServiceBusMessage>._)) .Returns(true); A.CallTo(() => subscriberOne.Process(A<IServiceBusMessage>._, A<object>._)) .Invokes(foc => { dynamic model = foc.Arguments[1]; foo = model.Foo; baz = model.Baz; }).Returns(Task.FromResult(0)); var listener = new ServiceBusListener( new[] { subscriberOne }, new SimpleJsonSerialiser(), this.bus); var message = this.GetMessage("foo", "{ \"Foo\" : \"Bar\", \"Baz\" : 23 }"); listener.Connect(this.connectionString, this.queueName); // When this.bus.CallBack.Invoke(message).Wait(); // Then message.Completed.ShouldBeTrue(); message.Abandoned.ShouldBeFalse(); }