Exemple #1
0
        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;
             }
         }
     }
 }