コード例 #1
0
        public async Task WatcherRaisesEventsForHistoricalEntriesOnStart()
        {
            using var watcher = new JournalWatcher(_jf);
            var ecEntries = new EventCollector <JournalEntry>(h => watcher.EntryAdded += h, h => watcher.EntryAdded -= h, nameof(WatcherRaisesEventsForHistoricalEntriesOnStart));
            var ecReady   = new EventCollector <EventArgs>(h => watcher.Started += h, h => watcher.Started -= h, nameof(WatcherRaisesEventsForHistoricalEntriesOnStart));

            var readyTask = ecReady.WaitAsync(() => { });
            var entries   = new Queue <JournalEntry>(await ecEntries.WaitAsync(_journalFile1Count, () =>
            {
                watcher.Start();
                Assert.False(watcher.IsWatching);
            }).ConfigureAwait(false));

            var ready = await readyTask.ConfigureAwait(false);

            Assert.NotNull(ready);
            Assert.True(watcher.IsWatching);

            watcher.Stop();
            Assert.False(watcher.IsWatching);

            Assert.Equal(_journalFile1Count, entries.Count);
            Assert.IsType <FileHeader>(entries.Dequeue());
            Assert.IsType <Music>(entries.Dequeue());
            Assert.IsType <UnderAttack>(entries.Dequeue());
            Assert.IsType <StartJump>(entries.Dequeue());
            Assert.IsType <JournalEntry>(entries.Dequeue());
            Assert.IsType <Shutdown>(entries.Dequeue());
        }
コード例 #2
0
        public void Start()
        {
            if (_running)
            {
                return;
            }

            _running = true;

            _graphicsConfig.Start();
            _bindingsWatcher.Start();
            _statusWatcher.Start();
            _modifierKeysWatcher.Start();
            _journalWatcher.Start();

            if (DetectForegroundProcess)
            {
                _gameProcessWatcher.Start();
            }
        }