示例#1
0
        public void SetUp()
        {
            databusForSiteA = new InMemoryDataBus();
            databusForSiteB = new InMemoryDataBus();
            fakeTransport   = new FakeTransport();

            var builder = MockRepository.GenerateStub <IBuilder>();

            var channelFactory = new ChannelFactory();

            channelFactory.RegisterReceiver(typeof(HttpChannelReceiver));

            channelFactory.RegisterSender(typeof(HttpChannelSender));


            var channelManager = MockRepository.GenerateStub <IManageReceiveChannels>();

            channelManager.Stub(x => x.GetReceiveChannels()).Return(new[] { new ReceiveChannel()
                                                                            {
                                                                                Address = HttpAddressForSiteB,
                                                                                Type    = "http",
                                                                                NumberOfWorkerThreads = 1
                                                                            } });
            channelManager.Stub(x => x.GetDefaultChannel()).Return(defaultChannelForSiteA);

            builder.Stub(x => x.Build <IdempotentChannelForwarder>()).Return(new IdempotentChannelForwarder(channelFactory)
            {
                DataBus = databusForSiteA
            });

            builder.Stub(x => x.Build <IReceiveMessagesFromSites>()).Return(new IdempotentChannelReceiver(channelFactory, new InMemoryPersistence())
            {
                DataBus = databusForSiteB
            });

            builder.Stub(x => x.BuildAll <IRouteMessagesToSites>()).Return(new[] { new KeyPrefixConventionSiteRouter() });

            messageSender   = new FakeMessageSender();
            receiverInSiteB = new GatewayReceiver();
            receiverInSiteB.ChannelManager = channelManager;
            receiverInSiteB.EndpointRouter = new DefaultEndpointRouter
            {
                MainInputAddress = EndpointAddressForSiteB
            };
            receiverInSiteB.MessageSender = messageSender;
            receiverInSiteB.builder       = builder;
            //receiverInSiteB.InputAddress = GatewayAddressForSiteA;

            dispatcherInSiteA = new GatewaySender();
            dispatcherInSiteA.ChannelManager = channelManager;
            dispatcherInSiteA.Builder        = builder;
            dispatcherInSiteA.MessageSender  = MockRepository.GenerateStub <ISendMessages>();
            dispatcherInSiteA.Notifier       = MockRepository.GenerateStub <IMessageNotifier>();
            // dispatcherInSiteA.InputAddress = GatewayAddressForSiteA;

            dispatcherInSiteA.Start();
            receiverInSiteB.Start();
        }
示例#2
0
        public void SetUp()
        {
            databusForSiteA = new InMemoryDataBus();
            databusForSiteB = new InMemoryDataBus();
            fakeTransport = new FakeTransport();

            var builder = MockRepository.GenerateStub<IBuilder>();

            var channelFactory = new ChannelFactory();

            channelFactory.RegisterReceiver(typeof(HttpChannelReceiver));

            channelFactory.RegisterSender(typeof(HttpChannelSender));

            var channelManager = MockRepository.GenerateStub<IManageReceiveChannels>();
            channelManager.Stub(x => x.GetReceiveChannels()).Return(new[] {new ReceiveChannel()
                                                                              {
                                                                                  Address = HttpAddressForSiteB,
                                                                                  Type = "http",
                                                                                  NumberOfWorkerThreads = 1
                                                                              }});
            channelManager.Stub(x => x.GetDefaultChannel()).Return(defaultChannelForSiteA);

            builder.Stub(x => x.Build<IdempotentChannelForwarder>()).Return(new IdempotentChannelForwarder(channelFactory)
                                                                             {
                                                                                 DataBus = databusForSiteA
                                                                             });

            builder.Stub(x => x.Build<IReceiveMessagesFromSites>()).Return(new IdempotentChannelReceiver(channelFactory, new InMemoryPersistence())
            {
                DataBus = databusForSiteB
            });

            builder.Stub(x => x.BuildAll<IRouteMessagesToSites>()).Return(new[] { new KeyPrefixConventionSiteRouter() });

            messageSender = new FakeMessageSender();
            receiverInSiteB = new GatewayReceiver();
            receiverInSiteB.ChannelManager = channelManager;
            receiverInSiteB.EndpointRouter = new DefaultEndpointRouter
                {
                    MainInputAddress = EndpointAddressForSiteB
                };
            receiverInSiteB.MessageSender = messageSender;
            receiverInSiteB.builder = builder;
            //receiverInSiteB.InputAddress = GatewayAddressForSiteA;

            dispatcherInSiteA = new GatewaySender();
            dispatcherInSiteA.ChannelManager = channelManager;
            dispatcherInSiteA.Builder = builder;
            dispatcherInSiteA.MessageSender = MockRepository.GenerateStub<ISendMessages>();
            dispatcherInSiteA.Notifier = MockRepository.GenerateStub<IMessageNotifier>();
               // dispatcherInSiteA.InputAddress = GatewayAddressForSiteA;

            dispatcherInSiteA.Start();
            receiverInSiteB.Start();
        }