public MessageDispatcherShutConnectionTests() { var channel = new FakeChannel(); IAmACommandProcessor commandProcessor = new SpyCommandProcessor(); var messageMapperRegistry = new MessageMapperRegistry(new SimpleMessageMapperFactory(() => new MyEventMessageMapper())); messageMapperRegistry.Register <MyEvent, MyEventMessageMapper>(); _connection = new Connection <MyEvent>(new ConnectionName("test"), noOfPerformers: 3, timeoutInMilliseconds: 1000, channelFactory: new InMemoryChannelFactory(channel), channelName: new ChannelName("fakeChannel"), routingKey: new RoutingKey("fakekey")); _dispatcher = new Dispatcher(commandProcessor, messageMapperRegistry, new List <Connection> { _connection }); var @event = new MyEvent(); var message = new MyEventMessageMapper().MapToMessage(@event); for (var i = 0; i < 6; i++) { channel.Add(message); } _dispatcher.State.Should().Be(DispatcherState.DS_AWAITING); _dispatcher.Receive(); }
public MessagePumpDispatchTests() { var subscriberRegistry = new SubscriberRegistry(); subscriberRegistry.Register <MyEvent, MyEventHandler>(); var handlerFactory = new TestHandlerFactory <MyEvent, MyEventHandler>(() => new MyEventHandler(_receivedMessages)); var commandProcessor = new CommandProcessor( subscriberRegistry, handlerFactory, new InMemoryRequestContextFactory(), new PolicyRegistry()); PipelineBuilder <MyEvent> .ClearPipelineCache(); var channel = new FakeChannel(); var mapper = new MyEventMessageMapper(); _messagePump = new MessagePump <MyEvent>(commandProcessor, mapper) { Channel = channel, TimeoutInMilliseconds = 5000 }; var message = new Message(new MessageHeader(Guid.NewGuid(), "MyTopic", MessageType.MT_EVENT), new MessageBody(JsonSerializer.Serialize(_myEvent, JsonSerialisationOptions.Options))); channel.Enqueue(message); var quitMessage = new Message(new MessageHeader(Guid.Empty, "", MessageType.MT_QUIT), new MessageBody("")); channel.Enqueue(quitMessage); }
public MessagePumpDispatchAsyncTests() { var subscriberRegistry = new SubscriberRegistry(); subscriberRegistry.RegisterAsync <MyEvent, MyEventHandlerAsyncWithContinuation>(); var handlerFactory = new TestHandlerFactoryAsync <MyEvent, MyEventHandlerAsyncWithContinuation>(() => new MyEventHandlerAsyncWithContinuation()); var commandProcessor = new CommandProcessor( subscriberRegistry, handlerFactory, new InMemoryRequestContextFactory(), new PolicyRegistry()); var channel = new FakeChannel(); var mapper = new MyEventMessageMapper(); _messagePump = new MessagePumpAsync <MyEvent>(commandProcessor, mapper) { Channel = channel, TimeoutInMilliseconds = 5000 }; var message = new Message(new MessageHeader(Guid.NewGuid(), "MyTopic", MessageType.MT_EVENT), new MessageBody(JsonConvert.SerializeObject(_myEvent))); channel.Add(message); var quitMessage = new Message(new MessageHeader(Guid.Empty, "", MessageType.MT_QUIT), new MessageBody("")); channel.Add(quitMessage); }
public MessageDispatcherRoutingTests() { _channel = new FakeChannel(); _commandProcessor = new SpyCommandProcessor(); var messageMapperRegistry = new MessageMapperRegistry(new SimpleMessageMapperFactory((_) => new MyEventMessageMapper())); messageMapperRegistry.Register <MyEvent, MyEventMessageMapper>(); var connection = new Subscription <MyEvent>( new SubscriptionName("test"), noOfPerformers: 1, timeoutInMilliseconds: 1000, channelFactory: new InMemoryChannelFactory(_channel), channelName: new ChannelName("fakeChannel"), routingKey: new RoutingKey("fakekey")); _dispatcher = new Dispatcher(_commandProcessor, messageMapperRegistry, new List <Subscription> { connection }); var @event = new MyEvent(); var message = new MyEventMessageMapper().MapToMessage(@event); _channel.Enqueue(message); _dispatcher.State.Should().Be(DispatcherState.DS_AWAITING); _dispatcher.Receive(); }
public DispatcherRestartConnectionTests() { _channel = new FakeChannel(); _commandProcessor = new SpyCommandProcessor(); var messageMapperRegistry = new MessageMapperRegistry(new SimpleMessageMapperFactory((_) => new MyEventMessageMapper())); messageMapperRegistry.Register <MyEvent, MyEventMessageMapper>(); _connection = new Connection <MyEvent>(new ConnectionName("test"), noOfPerformers: 1, timeoutInMilliseconds: 100, channelFactory: new InMemoryChannelFactory(_channel), channelName: new ChannelName("fakeChannel"), routingKey: new RoutingKey("fakekey")); _newConnection = new Connection <MyEvent>(new ConnectionName("newTest"), noOfPerformers: 1, timeoutInMilliseconds: 100, channelFactory: new InMemoryChannelFactory(_channel), channelName: new ChannelName("fakeChannel"), routingKey: new RoutingKey("fakekey")); _dispatcher = new Dispatcher(_commandProcessor, messageMapperRegistry, new List <Connection> { _connection, _newConnection }); var @event = new MyEvent(); var message = new MyEventMessageMapper().MapToMessage(@event); _channel.Enqueue(message); _dispatcher.State.Should().Be(DispatcherState.DS_AWAITING); _dispatcher.Receive(); Task.Delay(250).Wait(); _dispatcher.Shut("test"); _dispatcher.Shut("newTest"); Task.Delay(1000).Wait(); _dispatcher.Consumers.Should().HaveCount(0); }
public void Establish() { _channel = new FakeChannel(); _commandProcessor = new SpyCommandProcessor(); var messageMapperRegistry = new MessageMapperRegistry(new SimpleMessageMapperFactory(() => new MyEventMessageMapper())); messageMapperRegistry.Register <MyEvent, MyEventMessageMapper>(); var connection = new Connection( name: new ConnectionName("test"), dataType: typeof(MyEvent), noOfPerformers: 1, timeoutInMilliseconds: 1000, channelFactory: new InMemoryChannelFactory(_channel), channelName: new ChannelName("fakeChannel"), routingKey: "fakekey"); _dispatcher = new Dispatcher(_commandProcessor, messageMapperRegistry, new List <Connection> { connection }); var @event = new MyEvent(); var message = new MyEventMessageMapper().MapToMessage(@event); _channel.Add(message); Assert.AreEqual(DispatcherState.DS_AWAITING, _dispatcher.State); _dispatcher.Receive(); }
public void Establish() { var subscriberRegistry = new SubscriberRegistry(); subscriberRegistry.Register <MyEvent, MyEventHandler>(); _commandProcessor = new CommandProcessor( subscriberRegistry, new CheapHandlerFactory(), new InMemoryRequestContextFactory(), new PolicyRegistry()); _channel = new FakeChannel(); var mapper = new MyEventMessageMapper(); _messagePump = new MessagePump <MyEvent>(_commandProcessor, mapper) { Channel = _channel, TimeoutInMilliseconds = 5000 }; _event = new MyEvent(); var message = new Message(new MessageHeader(Guid.NewGuid(), "MyTopic", MessageType.MT_EVENT), new MessageBody(JsonConvert.SerializeObject(_event))); _channel.Add(message); var quitMessage = new Message(new MessageHeader(Guid.Empty, "", MessageType.MT_QUIT), new MessageBody("")); _channel.Add(quitMessage); }
public void MovieAgentConstructorTest() { HttpClientChannel httpClientChannel = new FakeChannel <Movie>(new Movie()); var target = new MovieAgent(httpClientChannel); target.Should().NotBeNull(); }
public void SetUp() { receiver = new FakeReceiver(); channel = new FakeChannel(); config = new N2.Configuration.HostSection(); config.Messaging.Targets.Add(new N2.Configuration.MessageTargetElement { Name = "Remote", Address = "http://nowhere/" }); broker = new MessageBroker(channel, new Fakes.FakeWorker(), new[] { receiver }, config); }
public void Setup() { It = new FakeChannel(); var registerTask = new RegisterTask(It, new FakeChannel()); try { registerTask.Process(); } catch(Exception err) { ActualException = err; } }
public MessagePumpUnacceptableMessageTests() { _commandProcessor = new SpyRequeueCommandProcessor(); _channel = new FakeChannel(); var mapper = new MyEventMessageMapper(); _messagePump = new MessagePump <MyEvent>(_commandProcessor, mapper) { Channel = _channel, TimeoutInMilliseconds = 5000, RequeueCount = 3 }; var unacceptableMessage = new Message(new MessageHeader(Guid.NewGuid(), "MyTopic", MessageType.MT_UNACCEPTABLE), new MessageBody("")); _channel.Add(unacceptableMessage); }
public MessagePumpFailingMessageTranslationTests() { _commandProcessor = new SpyRequeueCommandProcessor(); _channel = new FakeChannel(); var mapper = new FailingEventMessageMapper(); _messagePump = new MessagePumpBlocking <MyFailingMapperEvent>(_commandProcessor, mapper) { Channel = _channel, TimeoutInMilliseconds = 5000, RequeueCount = 3, UnacceptableMessageLimit = 3 }; var unmappableMessage = new Message(new MessageHeader(Guid.NewGuid(), "MyTopic", MessageType.MT_EVENT), new MessageBody("{ \"Id\" : \"48213ADB-A085-4AFF-A42C-CF8209350CF7\" }")); _channel.Enqueue(unmappableMessage); }
public MessagePumpEventProcessingExceptionTests() { _commandProcessor = new SpyRequeueCommandProcessor(); _channel = new FakeChannel(); var mapper = new MyEventMessageMapper(); _messagePump = new MessagePumpBlocking <MyEvent>(_commandProcessor, mapper) { Channel = _channel, TimeoutInMilliseconds = 5000, RequeueCount = _requeueCount }; var msg = mapper.MapToMessage(new MyEvent()); _channel.Enqueue(msg); }
public void doesnt_throw_if_receive_only_fails_intermittently() { var channel = new FakeChannel { StopAfter = 20 }; var node = new ChannelNode { Channel = channel, Scheduler = new FakeScheduler() }; var logger = new RecordingLogger(); var receiver = new RecordingReceiver(); node.StartReceiving(receiver, logger); channel.HitCount.ShouldBe(20); }
public MessagePumpEventRequeueCountThresholdTests() { _commandProcessor = new SpyRequeueCommandProcessor(); _channel = new FakeChannel(); var mapper = new MyEventMessageMapper(); _messagePump = new MessagePump <MyEvent>(_commandProcessor, mapper) { Channel = _channel, TimeoutInMilliseconds = 5000, RequeueCount = 3 }; _event = new MyEvent(); var message1 = new Message(new MessageHeader(Guid.NewGuid(), "MyTopic", MessageType.MT_EVENT), new MessageBody(JsonConvert.SerializeObject(_event))); var message2 = new Message(new MessageHeader(Guid.NewGuid(), "MyTopic", MessageType.MT_EVENT), new MessageBody(JsonConvert.SerializeObject(_event))); _channel.Add(message1); _channel.Add(message2); }
public MessagePumpCommandRequeueCountThresholdTests() { _commandProcessor = new SpyRequeueCommandProcessor(); _channel = new FakeChannel(); var mapper = new MyCommandMessageMapper(); _messagePump = new MessagePumpBlocking <MyCommand>(_commandProcessor, mapper) { Channel = _channel, TimeoutInMilliseconds = 5000, RequeueCount = 3 }; _command = new MyCommand(); var message1 = new Message(new MessageHeader(Guid.NewGuid(), "MyTopic", MessageType.MT_COMMAND), new MessageBody(JsonSerializer.Serialize(_command, JsonSerialisationOptions.Options))); var message2 = new Message(new MessageHeader(Guid.NewGuid(), "MyTopic", MessageType.MT_COMMAND), new MessageBody(JsonSerializer.Serialize(_command, JsonSerialisationOptions.Options))); _channel.Enqueue(message1); _channel.Enqueue(message2); }
public void Establish() { _commandProcessor = new SpyCommandProcessor(); _channel = new FakeChannel(); var mapper = new MyEventMessageMapper(); var messagePump = new MessagePump <MyEvent>(_commandProcessor, mapper); messagePump.Channel = _channel; messagePump.TimeoutInMilliseconds = 5000; var @event = new MyEvent(); var message = new Message(new MessageHeader(Guid.NewGuid(), "MyTopic", MessageType.MT_EVENT), new MessageBody(JsonConvert.SerializeObject(@event))); _channel.Add(message); _performer = new Performer(_channel, messagePump); _performerTask = _performer.Run(); _performer.Stop(); }
public void Establish() { _commandProcessor = new SpyRequeueCommandProcessor(); _channel = new FakeChannel(); var mapper = new MyCommandMessageMapper(); _messagePump = new MessagePump <MyCommand>(_commandProcessor, mapper) { Channel = _channel, TimeoutInMilliseconds = 5000, RequeueCount = 3 }; _command = new MyCommand(); var message1 = new Message(new MessageHeader(Guid.NewGuid(), "MyTopic", MessageType.MT_COMMAND), new MessageBody(JsonConvert.SerializeObject(_command))); var message2 = new Message(new MessageHeader(Guid.NewGuid(), "MyTopic", MessageType.MT_COMMAND), new MessageBody(JsonConvert.SerializeObject(_command))); _channel.Add(message1); _channel.Add(message2); }
public PerformerCanStopTests() { _commandProcessor = new SpyCommandProcessor(); _channel = new FakeChannel(); var mapper = new MyEventMessageMapper(); var messagePump = new MessagePumpBlocking <MyEvent>(_commandProcessor, mapper); messagePump.Channel = _channel; messagePump.TimeoutInMilliseconds = 5000; var @event = new MyEvent(); var message = new Message(new MessageHeader(Guid.NewGuid(), "MyTopic", MessageType.MT_EVENT), new MessageBody(JsonSerializer.Serialize(@event, JsonSerialisationOptions.Options))); _channel.Enqueue(message); _performer = new Performer(_channel, messagePump); _performerTask = _performer.Run(); _performer.Stop(); }
public MessagePumpToCommandProcessorTests() { _commandProcessor = new SpyCommandProcessor(); _channel = new FakeChannel(); var mapper = new MyEventMessageMapper(); _messagePump = new MessagePump <MyEvent>(_commandProcessor, mapper) { Channel = _channel, TimeoutInMilliseconds = 5000 }; _event = new MyEvent(); var message = new Message(new MessageHeader(Guid.NewGuid(), "MyTopic", MessageType.MT_EVENT), new MessageBody(JsonSerializer.Serialize(_event, JsonSerialisationOptions.Options))); _channel.Enqueue(message); var quitMessage = new Message(new MessageHeader(Guid.Empty, "", MessageType.MT_QUIT), new MessageBody("")); _channel.Enqueue(quitMessage); }
public MessagePumpCommandRequeueTests() { _commandProcessor = new SpyRequeueCommandProcessor(); _channel = new FakeChannel(); var mapper = new MyCommandMessageMapper(); _messagePump = new MessagePump <MyCommand>(_commandProcessor, mapper) { Channel = _channel, TimeoutInMilliseconds = 5000, RequeueCount = -1 }; var message1 = new Message(new MessageHeader(Guid.NewGuid(), "MyTopic", MessageType.MT_COMMAND), new MessageBody(JsonSerializer.Serialize(_command, JsonSerialisationOptions.Options))); var message2 = new Message(new MessageHeader(Guid.NewGuid(), "MyTopic", MessageType.MT_COMMAND), new MessageBody(JsonSerializer.Serialize(_command, JsonSerialisationOptions.Options))); _channel.Enqueue(message1); _channel.Enqueue(message2); var quitMessage = new Message(new MessageHeader(Guid.Empty, "", MessageType.MT_QUIT), new MessageBody("")); _channel.Enqueue(quitMessage); }
public void Establish() { _commandProcessor = new SpyCommandProcessor(); _channel = new FakeChannel(); var mapper = new MyEventMessageMapper(); _messagePump = new MessagePump <MyEvent>(_commandProcessor, mapper) { Channel = _channel, TimeoutInMilliseconds = 5000 }; _event = new MyEvent(); var message = new Message(new MessageHeader(Guid.NewGuid(), "MyTopic", MessageType.MT_EVENT), new MessageBody(JsonConvert.SerializeObject(_event))); _channel.Add(message); var quitMessage = new Message(new MessageHeader(Guid.Empty, "", MessageType.MT_QUIT), new MessageBody("")); _channel.Add(quitMessage); }
public MessagePumpUnacceptableMessageLimitBreachedTests() { _commandProcessor = new SpyRequeueCommandProcessor(); _channel = new FakeChannel(); var mapper = new MyEventMessageMapper(); _messagePump = new MessagePumpBlocking <MyEvent>(_commandProcessor, mapper) { Channel = _channel, TimeoutInMilliseconds = 5000, RequeueCount = 3, UnacceptableMessageLimit = 3 }; var unacceptableMessage1 = new Message(new MessageHeader(Guid.NewGuid(), "MyTopic", MessageType.MT_UNACCEPTABLE), new MessageBody("")); var unacceptableMessage2 = new Message(new MessageHeader(Guid.NewGuid(), "MyTopic", MessageType.MT_UNACCEPTABLE), new MessageBody("")); var unacceptableMessage3 = new Message(new MessageHeader(Guid.NewGuid(), "MyTopic", MessageType.MT_UNACCEPTABLE), new MessageBody("")); var unacceptableMessage4 = new Message(new MessageHeader(Guid.NewGuid(), "MyTopic", MessageType.MT_UNACCEPTABLE), new MessageBody("")); _channel.Enqueue(unacceptableMessage1); _channel.Enqueue(unacceptableMessage2); _channel.Enqueue(unacceptableMessage3); _channel.Enqueue(unacceptableMessage4); }
public MessageDispatcherMultipleConnectionTests() { _eventChannel = new FakeChannel(); _commandChannel = new FakeChannel(); var commandProcessor = new SpyCommandProcessor(); var container = new ServiceCollection(); container.AddTransient <MyEventMessageMapper>(); container.AddTransient <MyCommandMessageMapper>(); var messageMapperRegistry = new MessageMapperRegistry(new ServiceProviderMapperFactory(container.BuildServiceProvider())); messageMapperRegistry.Register <MyEvent, MyEventMessageMapper>(); messageMapperRegistry.Register <MyCommand, MyCommandMessageMapper>(); var myEventConnection = new Subscription <MyEvent>(new SubscriptionName("test"), noOfPerformers: 1, timeoutInMilliseconds: 1000, channelFactory: new InMemoryChannelFactory(_eventChannel), channelName: new ChannelName("fakeChannel"), routingKey: new RoutingKey("fakekey")); var myCommandConnection = new Subscription <MyCommand>(new SubscriptionName("anothertest"), noOfPerformers: 1, timeoutInMilliseconds: 1000, channelFactory: new InMemoryChannelFactory(_commandChannel), channelName: new ChannelName("fakeChannel"), routingKey: new RoutingKey("fakekey")); _dispatcher = new Dispatcher(commandProcessor, messageMapperRegistry, new List <Subscription> { myEventConnection, myCommandConnection }); var @event = new MyEvent(); var eventMessage = new MyEventMessageMapper().MapToMessage(@event); _eventChannel.Enqueue(eventMessage); var command = new MyCommand(); var commandMessage = new MyCommandMessageMapper().MapToMessage(command); _commandChannel.Enqueue(commandMessage); _dispatcher.State.Should().Be(DispatcherState.DS_AWAITING); _dispatcher.Receive(); }
public void Setup() { It = new FakeChannel(); ExpectedNumberOfDrinkRequests = 100; var customerProcessor = new CustomerTask(It, ExpectedNumberOfDrinkRequests); customerProcessor.Process(); }
public InMemoryChannelFactory(FakeChannel channel = null) { _channel = channel ?? new FakeChannel(); }
public void MovieAgentConstructorTest() { HttpClientChannel httpClientChannel = new FakeChannel<Movie>(new Movie()); var target = new MovieAgent(httpClientChannel); target.Should().NotBeNull(); }
public void Setup() { var registerIncomingChannel = new FakeChannel(); registerIncomingChannel.Enqueue(new CustomerDrinkRequestMessage()); It = new FakeChannel(); var registerTask = new RegisterTask(It, registerIncomingChannel); registerTask.Process(); }