public static IUnityContainer ConfigureUnity(this IUnityContainer container, MockMessageReceiver receiver, MessageProcessingStage[] stages)
        {
            var settings = new PerformedOperationsPrimaryFlowProcessorSettings {
                AppropriatedStages = stages
            };

            var metadataProvider = new MetadataProvider(new IMetadataSource[]
            {
                new PerformedOperationsMessageFlowsMetadataSource()
            },
                                                        new IMetadataProcessor[]
            {
                new ReferencesEvaluatorProcessor()
            });

            return(container
                   .RegisterContexts()
                   .RegisterInstance(Mock.Of <ITelemetryPublisher>())
                   .RegisterType <ITracer, NullTracer>()
                   .RegisterInstance <IMetadataProvider>(metadataProvider)
                   .RegisterInstance <IPerformedOperationsFlowProcessorSettings>(settings)
                   .RegisterInstance(receiver)
                   .RegisterType <IMessageReceiverFactory, UnityMessageReceiverFactory>(Lifetime.Singleton)
                   .RegisterType <IMessageFlowProcessorResolveStrategy, Mocks.Processor.PrimaryProcessorResolveStrategy>("primary", Lifetime.Singleton)
                   .RegisterType <IMessageFlowReceiverResolveStrategy, MockReceiverResolveStrategy>("primary", Lifetime.Singleton)
                   .RegisterType <IMessageProcessingStagesFactory, UnityMessageProcessingStagesFactory>(Lifetime.Singleton)
                   .RegisterType <IMessageTransformerFactory, UnityMessageTransformerFactory>(Lifetime.Singleton)
                   .RegisterType <IMessageFlowProcessorFactory, UnityMessageFlowProcessorFactory>(Lifetime.Singleton)
                   .RegisterType <IParentContainerUsedRegistrationsContainer, ParentContainerUsedRegistrationsContainer>(Lifetime.Singleton)
                   .RegisterType <IMessageProcessingHandlerFactory, UnityMessageProcessingHandlerFactory>(Lifetime.PerScope)
                   .RegisterType <IMessageProcessingContextAccumulatorFactory, UnityMessageProcessingContextAccumulatorFactory>(Lifetime.PerScope));
        }
Beispiel #2
0
        public void ImportFactsFromErmPrimaryAccumulator()
        {
            var succeeded = Enumerable.Empty <IMessage>();
            var failed    = Enumerable.Empty <IMessage>();

            var receiver = new MockMessageReceiver(new[]
            {
                TrackedUsecases.UpdateFirms(),
            },
                                                   (x, y) =>
            {
                succeeded = x;
                failed    = y;
            });

            var container = new UnityContainer().ConfigureUnity(receiver, new[] { MessageProcessingStage.Accumulation });
            var flowId    = typeof(ImportFactsFromErmFlow).Name.AsPrimaryProcessingFlowId();

            var processor = GetProcessor(container, flowId);

            processor.Process();

            Assert.That(succeeded.Count(), Is.EqualTo(1));
            Assert.That(failed.Count(), Is.EqualTo(0));
        }