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()); }
public void Start() { if (_running) { return; } _running = true; _graphicsConfig.Start(); _bindingsWatcher.Start(); _statusWatcher.Start(); _modifierKeysWatcher.Start(); _journalWatcher.Start(); if (DetectForegroundProcess) { _gameProcessWatcher.Start(); } }