Пример #1
0
        public static Container AddRouterWithThrowingHandler(
            this Container container,
            TestDriverState state,
            string brokerName)
        {
            var messageRouterConfiguration =
                MessageRouter.Configure(
                    router => router
                    .AddMessageBroker(
                        broker => broker
                        .WithId(brokerName)
                        .Ingress(
                            ingress => ingress
                            .WithTestDriver(state)
                            .WithEnterPipeFitter <WithThrowingHandlerPipeFitter>()
                            .WithExitPipeFitter <EmptyPipeFitter>()
                            .WithQueueNameMatcher <MatchingEverythingQueueNameMatcher>()
                            .AddApi(
                                api => api
                                .WithId("api-1-ingress")
                                .WithQueueNamePatternsProvider <Service1QueueNamePatternsProvider>()
                                .WithPipeFitter <EmptyPipeFitter>()
                                .WithMessageKey <int>()
                                .WithMessagePayload <byte[]>()
                                .WithMessageTypesRegistry <EmptyIngressApiMessageTypesRegistry>()
                                .WithHandlerRegistry <EmptyHandlerRegistry>()))
                        .Egress(
                            egress => egress
                            .WithTestDriver(state)
                            .WithEnterPipeFitter <WithThrowingStepPipeFitter>()
                            .WithExitPipeFitter <EmptyPipeFitter>()
                            .AddApi(
                                api => api
                                .WithId("api-1-egress")
                                .WithPipeFitter <EmptyPipeFitter>()
                                .WithMessageKey <int>()
                                .WithMessagePayload <byte[]>()
                                .WithMessageTypesRegistry <OwningEverythingEgressApiMessageTypesRegistry>()))));

            container.RegisterSingleton(() => messageRouterConfiguration.CreateMessageRouter(new SimpleInjectorAdapter(container)));
            return(container);
        }
Пример #2
0
 public TestBrokerEgressDriver(TestDriverState state)
 {
     _state = state;
 }
Пример #3
0
        public static Container AddRouterWithComplexApis <TIngressEnterPipeline, TIngressExitPipeline, TEgressEnterPipeline,
                                                          TEgressExitPipeline>(this Container container, TestDriverState state)
            where TIngressEnterPipeline : IPipeFitter
            where TIngressExitPipeline : IPipeFitter
            where TEgressEnterPipeline : IPipeFitter
            where TEgressExitPipeline : IPipeFitter
        {
            var messageRouterConfiguration =
                MessageRouter.Configure(
                    router => router
                    .AddMessageBroker(
                        broker => broker
                        .WithId(SampleBrokerServer)
                        .Ingress(
                            ingress => ingress
                            .WithTestDriver(state)
                            .WithEnterPipeFitter <TIngressEnterPipeline>()
                            .WithExitPipeFitter <TIngressExitPipeline>()
                            .WithQueueNameMatcher <RegexQueueNameMatcher>()
                            .AddApi(
                                api => api
                                .WithId("api-1-ingress")
                                .WithQueueNamePatternsProvider <Service1QueueNamePatternsProvider>()
                                .WithPipeFitter <Service1PipeFitter>()
                                .WithMessageKey <int>()
                                .WithMessagePayload <byte[]>()
                                .WithMessageTypesRegistry <EmptyIngressApiMessageTypesRegistry>()
                                .WithHandlerRegistry <EmptyHandlerRegistry>())
                            .AddApi(
                                api => api
                                .WithId("api-2-ingress")
                                .WithQueueNamePatternsProvider <Service2QueueNamePatternsProvider>()
                                .WithPipeFitter <Service2PipeFitter>()
                                .WithMessageKey <long>()
                                .WithMessagePayload <byte[]>()
                                .WithMessageTypesRegistry <EmptyIngressApiMessageTypesRegistry>()
                                .WithHandlerRegistry <EmptyHandlerRegistry>())
                            .AddApi(
                                api => api
                                .WithId("cdc-notifications-ingress")
                                .WithQueueNamePatternsProvider <CdcNotificationsQueueNamePatternsProvider>()
                                .WithPipeFitter <CdcNotificationsPipeFitter>()
                                .WithMessageKey <int>()
                                .WithMessagePayload <string>()
                                .WithMessageTypesRegistry <EmptyIngressApiMessageTypesRegistry>()
                                .WithHandlerRegistry <EmptyHandlerRegistry>()))
                        .Egress(
                            egress => egress
                            .WithTestDriver(state)
                            .WithEnterPipeFitter <TEgressEnterPipeline>()
                            .WithExitPipeFitter <TEgressExitPipeline>()
                            .AddApi(
                                api => api
                                .WithId("case-office-egress")
                                .WithPipeFitter <EmptyPipeFitter>()
                                .WithMessageKey <int>()
                                .WithMessagePayload <byte[]>()
                                .WithMessageTypesRegistry <EmptyEgressApiMessageTypesRegistry>()))));

            container.RegisterSingleton(() => messageRouterConfiguration.CreateMessageRouter(new SimpleInjectorAdapter(container)));
            return(container);
        }
Пример #4
0
        public static Container AddRouterWithInvalidConfiguration(this Container container, TestDriverState state)
        {
            var messageRouterConfiguration =
                MessageRouter.Configure(
                    router => router
                    .AddMessageBroker(
                        broker => broker
                        .WithId("invalid configured broker")
                        .Ingress(
                            ingress => ingress
                            .WithTestDriver(state)
                            .WithEnterPipeFitter <EmptyPipeFitter>()
                            .WithExitPipeFitter <EmptyPipeFitter>())));

            container.RegisterSingleton(() => messageRouterConfiguration.CreateMessageRouter(new SimpleInjectorAdapter(container)));
            return(container);
        }
        public static BrokerEgressConfigurator WithTestDriver(this BrokerEgressConfigurator egress, TestDriverState state)
        {
            IBrokerEgressDriverConfigurator driverConfigurator = egress;

            driverConfigurator.SetDriver(new TestBrokerEgressDriver(state), Mock.Of <IMessageRouterConfigurationPart>());
            return(egress);
        }