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)); }
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)); }