public void Bus_SubscribtionWithFilter_CallReceived() { ManualResetEvent ev = new ManualResetEvent(false); FilterImplementation implementation = new FilterImplementation(ev); using (IBus bus = new RabbitMQBus()) { using (ISubscription subscription = bus.RegisterSubscription(implementation)) { subscription.Open(); using (IPublisher publisher = bus.CreatePublisher()) { Person person = new Person { Id = 5 }; BusMessage <Person> busMessage = new BusMessage <Person> { Data = person }; busMessage.Headers.Add(new BusHeader { Name = "Header", Value = "RightValue" }); publisher.Send(busMessage); bool waitOne = ev.WaitOne(TimeSpan.FromSeconds(5)); waitOne.Should().BeTrue(); person.ShouldBeEquivalentTo(implementation.Person); } } } }
public void Bus_SubscriptionWithFilter_CallReceived() { ManualResetEvent ev = new ManualResetEvent(false); FilterImplementation implementation = new FilterImplementation(ev); using (IBus bus = new MessageBus.Core.RabbitMQBus()) { using (ISubscription subscription = bus.RegisterSubscription(implementation, c => c.SetReceiveSelfPublish())) { subscription.Open(); using (IPublisher publisher = bus.CreatePublisher()) { Person person = new Person {Id = 5}; BusMessage<Person> busMessage = new BusMessage<Person> { Data = person }; busMessage.Headers.Add(new BusHeader { Name = "Header", Value = "RightValue" }); publisher.Send(busMessage); bool waitOne = ev.WaitOne(TimeSpan.FromSeconds(5)); waitOne.Should().BeTrue(); person.ShouldBeEquivalentTo(implementation.Person); } } } }
public void Bus_SubscribtionWithFilter_CallFiltered() { ManualResetEvent ev = new ManualResetEvent(false); FilterImplementation implementation = new FilterImplementation(ev); using (IBus bus = new RabbitMQBus()) { using (ISubscription subscription = bus.RegisterSubscription(implementation)) { subscription.Open(); using (IPublisher publisher = bus.CreatePublisher()) { Person person = new Person {Id = 5}; BusMessage<Person> busMessage = new BusMessage<Person> { Data = person }; busMessage.Headers.Add(new BusHeader { Name = "Header", Value = "WrongValue" }); publisher.Send(busMessage); bool waitOne = ev.WaitOne(TimeSpan.FromSeconds(5)); waitOne.Should().BeFalse(); } } } }