public void send_a_message_and_get_it_back() { SetupTransport("lq.tcp://localhost:2032/upstream", ChannelMode.DeliveryGuaranteed); var envelope = new Envelope { Data = new byte[] { 1, 2, 3, 4, 5 } }; envelope.Headers["foo"] = "bar"; var receiver = new RecordingReceiver(); node.StartReceiving(receiver, new RecordingLogger()); node.Channel.As <LightningQueuesChannel>().Send(envelope.Data, envelope.Headers); Wait.Until(() => receiver.Received.Any()); graph.Dispose(); queues.Dispose(); receiver.Received.Any().ShouldBeTrue(); var actual = receiver.Received.Single(); actual.Data.ShouldBe(envelope.Data); actual.Headers["foo"].ShouldBe("bar"); }
public void send_a_message_and_get_it_back() { var envelope = new Envelope() { Data = new byte[] { 1, 2, 3, 4, 5 } }; envelope.Headers["foo"] = "bar"; var receiver = new RecordingReceiver(); node.StartReceiving(receiver, new RecordingLogger()); node.Channel.As <LightningQueuesChannel>().Send(envelope.Data, envelope.Headers); Wait.Until(() => receiver.Received.Any()); graph.Dispose(); queues.Dispose(); receiver.Received.Any().ShouldBeTrue(); Envelope actual = receiver.Received.Single(); actual.Data.ShouldEqual(envelope.Data); actual.Headers["foo"].ShouldEqual("bar"); }
public void continuous_receive_errors() { var logger = new RecordingLogger(); var receiver = new RecordingReceiver(); var channel = MockRepository.GenerateMock <IChannel>(); channel.Expect(x => x.Receive(receiver)) .Throw(new Exception("I failed")); var node = new ChannelNode { Channel = channel, Scheduler = new FakeScheduler() }; Assert.Throws <ReceiveFailureException>(() => node.StartReceiving(receiver, logger)); }
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 void ReceiveFailed_error_handling() { var node = new ChannelNode { Key = "TestKey", Channel = new FakeChannel { StopAfter = 2 }, Scheduler = new FakeScheduler() }; var logger = new RecordingLogger(); node.StartReceiving(new RecordingReceiver(), logger); logger.ErrorMessages.ShouldHaveCount(1); logger.InfoMessages.ShouldHaveCount(1); var message = logger.InfoMessages.Cast <ReceiveFailed>().Single(); message.ChannelKey.ShouldBe(node.Key); message.Exception.ShouldNotBeNull(); }