public ShellViewModel( SettingsViewModel settingsViewModel, MainViewModel mainViewModel, IEventAggregator eventAggregator, INavigationService navigationService, IMonitorStreamsModel monitorStreamsModel, ISettingsHandler settingsHandler, PopularLivestreamWatcher popularLivestreamWatcher) { Settings = settingsViewModel ?? throw new ArgumentNullException(nameof(settingsViewModel)); this.mainViewModel = mainViewModel ?? throw new ArgumentNullException(nameof(mainViewModel)); this.navigationService = navigationService ?? throw new ArgumentNullException(nameof(navigationService)); this.monitorStreamsModel = monitorStreamsModel ?? throw new ArgumentNullException(nameof(monitorStreamsModel)); this.settingsHandler = settingsHandler ?? throw new ArgumentNullException(nameof(settingsHandler)); this.popularLivestreamWatcher = popularLivestreamWatcher ?? throw new ArgumentNullException(nameof(popularLivestreamWatcher)); ActiveItem = mainViewModel; eventAggregator.Subscribe(this); Settings.ActivateWith(this); currentAppVersion = GetType().Assembly.GetName().Version; DisplayName = $"LIVESTREAM MONITOR V{currentAppVersion.Major}.{currentAppVersion.Minor}.{currentAppVersion.Build}"; #if DEBUG // helps to know that we're running the debug rather than release version of the exe DisplayName += " (DEBUG)"; #endif }
public async Task NotNotifyWhenBelowMinimumViewers( [Frozen] ISettingsHandler settingsHandler, [Frozen] INotificationHandler notificationHandler, [Frozen] IEnumerable <IApiClient> apiClients, [Frozen] List <LivestreamQueryResult> livestreamQueryResults, PopularLivestreamWatcher sut) { var apiClient = apiClients.First(); SetupApiClient(apiClient, livestreamQueryResults); settingsHandler.Settings.MinimumEventViewers = 2000; await sut.NotifyPopularStreams(); notificationHandler.DidNotReceive().AddNotification(Arg.Any <LivestreamNotification>()); }
public async Task NotifyWhenStreamAboveMinimumViewers( int minimumViewers, int expectedNotificationCount, [Frozen] ISettingsHandler settingsHandler, [Frozen] INotificationHandler notificationHandler, [Frozen] List <IApiClient> apiClients, [Frozen] List <LivestreamQueryResult> livestreamQueryResults, PopularLivestreamWatcher sut) { var apiClient = apiClients.First(); SetupApiClient(apiClient, livestreamQueryResults); settingsHandler.Settings.MinimumEventViewers = minimumViewers; await sut.NotifyPopularStreams(); notificationHandler.Received(expectedNotificationCount).AddNotification(Arg.Any <LivestreamNotification>()); }