Ejemplo n.º 1
0
        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.ShouldEqual(20);
        }
Ejemplo n.º 2
0
        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));
        }
Ejemplo n.º 3
0
        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.ShouldEqual(node.Key);
            message.Exception.ShouldNotBeNull();
        }