public static void Init(TestContext context) { IUnityContainer container = new UnityContainer().EnableDiagnostic(); var config = TestConfigurationInternal.GetConfig(); _dispatcher = new Mock <IGlobalEventDispatcher>().Object; container.RegisterBaseTypes(config, null, null); // we need to override initial loading of bookmaker details and producers var bookmakerDetailsProviderMock = new Mock <BookmakerDetailsProvider>("bookmakerDetailsUriFormat", new TestDataFetcher(), new Deserializer <bookmaker_details>(), new BookmakerDetailsMapperFactory()); bookmakerDetailsProviderMock.Setup(x => x.GetData(It.IsAny <string>())).Returns(TestConfigurationInternal.GetBookmakerDetails()); var defaultBookmakerDetailsProvider = bookmakerDetailsProviderMock.Object; container.RegisterInstance <IDataProvider <BookmakerDetailsDTO> >(defaultBookmakerDetailsProvider, new ContainerControlledLifetimeManager()); container.RegisterInstance <BookmakerDetailsProvider>(defaultBookmakerDetailsProvider, new ContainerControlledLifetimeManager()); //override container.RegisterType <IProducerManager, ProducerManager>( new ContainerControlledLifetimeManager(), new InjectionConstructor( new TestProducersProvider(), config)); container.RegisterTypes(_dispatcher, config); //var x = container.Registrations.Where(w => w.MappedToType == typeof(ProducerManager)); var newConfig = new OddsFeedConfigurationInternal(config, defaultBookmakerDetailsProvider); newConfig.Load(); container.RegisterInstance <IOddsFeedConfiguration>(newConfig, new ContainerControlledLifetimeManager()); container.RegisterInstance <IOddsFeedConfigurationInternal>(newConfig, new ContainerControlledLifetimeManager()); container.RegisterAdditionalTypes(); _childContainer1 = container.CreateChildContainer(); _childContainer2 = container.CreateChildContainer(); }
/// <summary> /// Initializes a new instance of the <see cref="OddsFeedSession"/> class /// </summary> /// <param name="globalEventDispatcher">A <see cref="IGlobalEventDispatcher"/> used to dispatch global events</param> /// <param name="messageReceiver"> A <see cref="IMessageReceiver"/> used to provide feed messages</param> /// <param name="messageMapper">A <see cref="IFeedMessageMapper"/> used to map the feed messages to messages used by the SDK</param> /// <param name="messageValidator">A <see cref="IFeedMessageValidator"/> instance used to validate received messages</param> /// <param name="messageDataExtractor">A <see cref="IMessageDataExtractor"/> instance used to extract basic message data from messages which could not be deserialized</param> public FeedSystemSession( IGlobalEventDispatcher globalEventDispatcher, IMessageReceiver messageReceiver, IFeedMessageMapper messageMapper, IFeedMessageValidator messageValidator, IMessageDataExtractor messageDataExtractor) { Guard.Argument(globalEventDispatcher, nameof(globalEventDispatcher)).NotNull(); Guard.Argument(messageReceiver, nameof(messageReceiver)).NotNull(); Guard.Argument(messageMapper, nameof(messageMapper)).NotNull(); Guard.Argument(messageValidator, nameof(messageValidator)).NotNull(); Guard.Argument(messageDataExtractor, nameof(messageDataExtractor)).NotNull(); _globalEventDispatcher = globalEventDispatcher; _messageReceiver = messageReceiver; _messageValidator = messageValidator; _messageMapper = messageMapper; _messageDataExtractor = messageDataExtractor; }
/// <summary> /// Initializes a new instance of the <see cref="OddsFeedSession"/> class /// </summary> /// <param name="globalEventDispatcher">A <see cref="IGlobalEventDispatcher"/> used to dispatch global events</param> /// <param name="messageReceiver"> A <see cref="IMessageReceiver"/> used to provide feed messages</param> /// <param name="messageMapper">A <see cref="IFeedMessageMapper"/> used to map the feed messages to messages used by the SDK</param> /// <param name="messageValidator">A <see cref="IFeedMessageValidator"/> instance used to validate received messages</param> /// <param name="messageDataExtractor">A <see cref="IMessageDataExtractor"/> instance used to extract basic message data from messages which could not be deserialized</param> public FeedSystemSession( IGlobalEventDispatcher globalEventDispatcher, IMessageReceiver messageReceiver, IFeedMessageMapper messageMapper, IFeedMessageValidator messageValidator, IMessageDataExtractor messageDataExtractor) { Contract.Requires(globalEventDispatcher != null); Contract.Requires(messageReceiver != null); Contract.Requires(messageMapper != null); Contract.Requires(messageValidator != null); Contract.Requires(messageDataExtractor != null); _globalEventDispatcher = globalEventDispatcher; _messageReceiver = messageReceiver; _messageValidator = messageValidator; _messageMapper = messageMapper; _messageDataExtractor = messageDataExtractor; }