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