public void things_are_received_at_the_right_times()
        {
            TestMessageRecorder.AllProcessed.Any().ShouldBeFalse();

            theProcessor.Execute(new CancellationToken());
            Thread.Sleep(2000);
            TestMessageRecorder.AllProcessed.Any().ShouldBeFalse();

            theClock.LocalNow(theClock.LocalTime().Add(61.Minutes()));
            theProcessor.Execute(new CancellationToken());

            Wait.Until(() => TestMessageRecorder.HasProcessed(message1)).ShouldBeTrue();
            Wait.Until(() => TestMessageRecorder.HasProcessed(message2)).ShouldBeTrue();

            TestMessageRecorder.HasProcessed(message3).ShouldBeFalse();
            TestMessageRecorder.HasProcessed(message4).ShouldBeFalse();

            theClock.LocalNow(theClock.LocalTime().Add(61.Minutes()));
            theProcessor.Execute(new CancellationToken());

            Wait.Until(() => TestMessageRecorder.HasProcessed(message3)).ShouldBeTrue();
            Wait.Until(() => TestMessageRecorder.HasProcessed(message4)).ShouldBeTrue();

            // If it's more than this, we got problems
            TestMessageRecorder.AllProcessed.Count().ShouldEqual(4);
        }
Пример #2
0
        public void SetUp()
        {
            // Need to do something about this.  Little ridiculous
            FubuTransport.SetupForInMemoryTesting();
            TestMessageRecorder.Clear();
            MessageHistory.ClearAll();
            InMemoryQueueManager.ClearAll();

            runtime = FubuTransport.For <DelayedRegistry>().StructureMap(new Container())
                      .Bootstrap();

            theServiceBus = runtime.Factory.Get <IServiceBus>();

            theClock = runtime.Factory.Get <ISystemTime>().As <SettableClock>();

            message1 = new OneMessage();
            message2 = new OneMessage();
            message3 = new OneMessage();
            message4 = new OneMessage();

            theServiceBus.DelaySend(message1, theClock.UtcNow().AddHours(1));
            theServiceBus.DelaySend(message2, theClock.UtcNow().AddHours(1));
            theServiceBus.DelaySend(message3, theClock.UtcNow().AddHours(2));
            theServiceBus.DelaySend(message4, theClock.UtcNow().AddHours(2));
        }
        public void SetUp()
        {
            TestMessageRecorder.Clear();
            FubuTransport.Reset();

            // Need to do something about this.  Little ridiculous
            var settings = new BusSettings
            {
                Downstream = "lq.tcp://localhost:2040/downstream".ToUri()
            };
            var lightningUri = settings.Downstream.ToLightningUri();

            var container = new Container();

            container.Inject(settings);



            _runtime = FubuTransport.For <ErrorRegistry>().StructureMap(container)
                       .Bootstrap();
            //_runtime.Factory.Get<IPersistentQueues>().ClearAll();

            theServiceBus = _runtime.Factory.Get <IServiceBus>();

            _queueManager = _runtime.Factory.Get <IPersistentQueues>().ManagerFor(lightningUri.Port, true);

            message1 = new OneMessage();

            theServiceBus.Send(message1);
        }
Пример #4
0
        public void SetUp()
        {
            TestMessageRecorder.Clear();

            // Need to do something about this.  Little ridiculous
            var settings = new BusSettings
            {
                Downstream = "lq.tcp://localhost:2040/downstream".ToUri()
            };
            var lightningUri = settings.Downstream.ToLightningUri();


            _runtime = FubuRuntime.For <ErrorRegistry>(x =>
            {
                x.Services.For <BusSettings>().Use(settings);
            });


            _runtime.Get <IPersistentQueues>().ClearAll();

            theServiceBus = _runtime.Get <IServiceBus>();

            _queueManager = _runtime.Get <IPersistentQueues>().PersistentManagerFor(lightningUri.Port, true);

            message1 = new OneMessage();

            theServiceBus.Send(message1);
        }
        public void requeues_then_moves_to_error_queue()
        {
            Wait.Until(() => TestMessageRecorder.HasProcessed(message1)).ShouldBeTrue();
            Wait.Until(() => TestMessageRecorder.AllProcessed.Length == 5).ShouldBeTrue();

            var scope   = _queueManager.BeginTransactionalScope();
            var message = scope.Receive(LightningQueuesTransport.ErrorQueueName, 5.Seconds());

            message.ShouldNotBeNull();


            var report = ErrorReport.Deserialize(message.Data);

            message.Headers.Get("ExceptionType").ShouldEqual("System.InvalidOperationException");
            report.RawData.ShouldNotBeNull();
        }
Пример #6
0
        public async Task requeues_then_moves_to_error_queue()
        {
            Wait.Until(() => TestMessageRecorder.HasProcessed(message1)).ShouldBeTrue();

            //todo need timeout
            var messageContext = await _queueManager.Receive(LightningQueuesTransport.ErrorQueueName).FirstAsync();

            var message = messageContext.Message;

            message.ShouldNotBeNull();


            var report = ErrorReport.Deserialize(message.Data);

            message.Headers.Get("ExceptionType").ShouldBe("System.InvalidOperationException");
            report.RawData.ShouldNotBeNull();
        }
        public void SetUp()
        {
            theTransportRegistry = FubuTransportRegistry.Empty();
            theTransportRegistry.Handlers.DisableDefaultHandlerSource();
            theTransportRegistry.EnableInMemoryTransport();

            TestMessageRecorder.Clear();

            _invoker = new Lazy <IChainInvoker>(() => {
                var container = new Container();
                theRuntime    = FubuTransport.For(theTransportRegistry).StructureMap(container).Bootstrap();

                return(container.GetInstance <IChainInvoker>());
            });

            theCallback = MockRepository.GenerateMock <IMessageCallback>();

            theContextIs();
        }
Пример #8
0
        public void SetUp()
        {
            theTransportRegistry = new FubuRegistry();
            theTransportRegistry.ServiceBus.Enable(true);

            theTransportRegistry.Handlers.DisableDefaultHandlerSource();
            theTransportRegistry.ServiceBus.EnableInMemoryTransport();

            TestMessageRecorder.Clear();

            _invoker = new Lazy <IChainInvoker>(() =>
            {
                theRuntime = theTransportRegistry.ToRuntime();

                return(theRuntime.Get <IChainInvoker>());
            });

            theCallback = MockRepository.GenerateMock <IMessageCallback>();

            theContextIs();
        }
Пример #9
0
        public void send_now_is_handled_right_now()
        {
            using (var runtime = FubuRuntime.For <FubuRegistry>(x =>
            {
                x.ServiceBus.Enable(true);
                x.ServiceBus.EnableInMemoryTransport();
                x.Handlers.DisableDefaultHandlerSource();
                x.Handlers.Include <SimpleHandler <OneMessage> >();
            }))
            {
                var serviceBus = runtime.Get <IServiceBus>();

                TestMessageRecorder.Clear();

                var message = new OneMessage();

                serviceBus.Consume(message);

                TestMessageRecorder.ProcessedFor <OneMessage>().Single().Message
                .ShouldBeTheSameAs(message);
            }
        }
        public void send_now_is_handled_right_now()
        {
            using (var container = new Container())
            {
                using (var runtime = FubuTransport.For(x => {
                    x.EnableInMemoryTransport();
                    x.Handlers.DisableDefaultHandlerSource();
                    x.Handlers.Include <SimpleHandler <OneMessage> >();
                }).StructureMap(container).Bootstrap())

                {
                    var serviceBus = container.GetInstance <IServiceBus>();

                    TestMessageRecorder.Clear();

                    var message = new OneMessage();

                    serviceBus.Consume(message);

                    TestMessageRecorder.ProcessedFor <OneMessage>().Single().Message
                    .ShouldBeTheSameAs(message);
                }
            }
        }
Пример #11
0
 public override void SetUp()
 {
     TestMessageRecorder.Clear();
     _nodes = new ServiceBusNodes();
     Context.State.Store(_nodes);
 }
 public void Handle(T message)
 {
     TestMessageRecorder.Processed(GetType().Name + TestMessageRecorder.AllProcessed.Count(), message);
     throw new InvalidOperationException("blah");
 }