public void TestInitialise() { _Snapshot = Factory.TakeSnapshot(); _RuntimeEnvironment = TestUtilities.CreateMockSingleton <IRuntimeEnvironment>(); _RuntimeEnvironment.Setup(r => r.IsTest).Returns(true); _Clock = new ClockMock(); Factory.Singleton.RegisterInstance <IClock>(_Clock.Object); _Heartbeat = TestUtilities.CreateMockSingleton <IHeartbeatService>(); _SharedConfiguration = TestUtilities.CreateMockSingleton <ISharedConfiguration>(); _Configuration = new Configuration(); _Configuration.BaseStationSettings.LookupAircraftDetailsOnline = true; _SharedConfiguration.Setup(r => r.Get()).Returns(_Configuration); _Provider = TestUtilities.CreateMockImplementation <IAircraftOnlineLookupProvider>(); _Provider.SetupGet(r => r.MaxBatchSize).Returns(10); _Provider.SetupGet(r => r.MinSecondsBetweenRequests).Returns(1); _Provider.SetupGet(r => r.MaxSecondsAfterFailedRequest).Returns(5); _DoLookupResult = true; _ReportMissingIcaos = new List <string>(); _RequestedIcaos = null; _ProviderCallback = null; _Provider.Setup(r => r.DoLookup(It.IsAny <string[]>(), It.IsAny <IList <AircraftOnlineLookupDetail> >(), It.IsAny <IList <string> >())) .Returns((string[] icaos, IList <AircraftOnlineLookupDetail> fetched, IList <string> missing) => { _RequestedIcaos = icaos; if (icaos != null && fetched != null && missing != null) { foreach (var icao in icaos) { if (_ReportMissingIcaos.Contains(icao)) { missing.Add(icao); } else { fetched.Add(new AircraftOnlineLookupDetail() { Icao = icao }); } } } if (_ProviderCallback != null) { _ProviderCallback(); } return(_DoLookupResult); }); _FetchedRecorder = new EventRecorder <AircraftOnlineLookupEventArgs>(); _Lookup = Factory.Singleton.ResolveNewInstance <IAircraftOnlineLookup>(); }
/// <summary> /// See interface docs. /// </summary> private void Initialise() { if (_AircraftOnlineLookup == null) { lock (_SyncLock) { if (_AircraftOnlineLookup == null) { _Clock = Factory.Singleton.Resolve <IClock>(); _AircraftOnlineLookup = Factory.Singleton.ResolveSingleton <IAircraftOnlineLookup>(); _AircraftOnlineLookup.AircraftFetched += AircraftOnlineLookup_AircraftFetched; } } } }