/// <summary>
        /// See base docs.
        /// </summary>
        protected override void DoInitialise()
        {
            _AutoConfigDatabase = Factory.Singleton.Resolve <IAutoConfigBaseStationDatabase>().Singleton;
            _AutoConfigDatabase.Database.AircraftUpdated += BaseStationDatabase_AircraftUpdated;
            _AutoConfigDatabase.Database.FileNameChanged += BaseStationDatabase_FileNameChanged;

            _AircraftOnlineLookupManager = Factory.Singleton.Resolve <IAircraftOnlineLookupManager>().Singleton;
            _AircraftOnlineLookupManager.AircraftFetched += AircraftOnlineLookupManager_AircraftFetched;

            _PictureManager = Factory.Singleton.Resolve <IAircraftPictureManager>().Singleton;
            var autoConfigurationPictureFolderCache = Factory.Singleton.Resolve <IAutoConfigPictureFolderCache>().Singleton;

            _PictureFolderCache = autoConfigurationPictureFolderCache.DirectoryCache;
            autoConfigurationPictureFolderCache.CacheConfigurationChanged += AutoConfigPictureFolderCache_CacheConfigurationChanged;

            _StandingDataManager = Factory.Singleton.Resolve <IStandingDataManager>().Singleton;
            _StandingDataManager.LoadCompleted += StandingDataManager_LoadCompleted;

            if (_PictureLookupThread == null)
            {
                _PictureLookupThread = new BackgroundThreadQueue <LookupPictureDetail>("PictureLookup", BackgroundThreadQueueMechanism.ThreadPool);
                _PictureLookupThread.MaximumParallelThreads = 10;
                _PictureLookupThread.StartBackgroundThread(PictureLookupThread_ProcessLookup, PictureLookupThread_ProcessException);
            }

            base.DoInitialise();
        }
Beispiel #2
0
        public void TestInitialise()
        {
            _Snapshot = Factory.TakeSnapshot();

            _FetchedRecorder = new EventRecorder <AircraftOnlineLookupEventArgs>();
            _Clock           = new ClockMock();
            Factory.Singleton.RegisterInstance <IClock>(_Clock.Object);

            _Lookup         = TestUtilities.CreateMockSingleton <IAircraftOnlineLookup>();
            _LookupUsed     = new List <string>();
            _LookupIcaos    = new List <string>();
            _LookupResponds = true;
            _Lookup.Setup(r => r.Lookup(It.IsAny <string>())).Callback((string icao) => {
                _LookupUsed.Add(icao);
                if (_LookupResponds)
                {
                    var args = BuildAircraftOnlineLookupEventArgs(new string[] { icao }, _LookupIcaos);
                    _Lookup.Raise(r => r.AircraftFetched += null, args);
                }
            });
            _Lookup.Setup(r => r.LookupMany(It.IsAny <IEnumerable <string> >())).Callback((IEnumerable <string> icaos) => {
                _LookupUsed.AddRange(icaos);
                if (_LookupResponds)
                {
                    var args = BuildAircraftOnlineLookupEventArgs(icaos, _LookupIcaos);
                    _Lookup.Raise(r => r.AircraftFetched += null, args);
                }
            });

            _Cache1                    = TestUtilities.CreateMockInstance <IAircraftOnlineLookupCache>();
            _Cache2                    = TestUtilities.CreateMockInstance <IAircraftOnlineLookupCache>();
            _Cache1Icaos               = new List <string>();
            _Cache2Icaos               = new List <string>();
            _SavedDetails              = new List <AircraftOnlineLookupDetail>();
            _RecordedMissingIcaos      = new List <string>();
            _LookupCacheUsed           = new List <int>();
            _SaveCacheUsed             = new List <int>();
            _SaveCallback              = null;
            _CreateCacheRecordCallback = null;
            SetupCache(1, _Cache1, _Cache1Icaos);
            SetupCache(2, _Cache2, _Cache2Icaos);

            _Manager = Factory.Singleton.Resolve <IAircraftOnlineLookupManager>();
            _Manager.RegisterCache(_Cache1.Object, 1, false);
            _Manager.RegisterCache(_Cache2.Object, 2, false);   // <-- this has a higher priority and should take precedence
        }