public void GivenMaxTargetNotCountTopped_WhenAddingAdditionalTarget_ThenItAppendsIt() { List <MonitoringTarget> updatedTargets = null; MonitoringTarget expectedFirstTarget = _currentTargets.ElementAt(0); MonitoringTarget notCurrentlyMonitored = _allTargets.Except(_currentTargets).FirstOrDefault(); Mock <IEventAggregator> eventManager = new Mock <IEventAggregator>(); Mock <OnWatchdogTargetChangedEvent> watchdogTargetChangedEvent = new Mock <OnWatchdogTargetChangedEvent>(); Mock <OnMonitoringTargetsChangedEvent> monTargetChangedEvent = new Mock <OnMonitoringTargetsChangedEvent>(); monTargetChangedEvent.Setup(e => e.Publish(It.IsAny <List <MonitoringTarget> >())).Verifiable(); monTargetChangedEvent.Setup(e => e.Publish(It.IsAny <List <MonitoringTarget> >())).Callback <List <MonitoringTarget> >(lru => updatedTargets = lru); ComputerMonitoringTestHelper.SetupEventAggMockBehaviour(eventManager, watchdogTargetChangedEvent.Object, monTargetChangedEvent.Object); Mock <IAppManager> appManagerMock = GivenAppManagerMock(); HardwareSettingsViewModel hardwareSettingsVm = new HardwareSettingsViewModel(eventManager.Object, appManagerMock.Object, Mock.Of <IUiSettings>()); hardwareSettingsVm.MaxAllowedMonTargets++; MonitoringTargetViewModel elementToAdd = hardwareSettingsVm.MonitoringOptionsCollection.SingleOrDefault(mo => mo.Type == notCurrentlyMonitored); elementToAdd.IsSelected = true; elementToAdd.PublishMonitoringOptionStatusCommand.Execute(new KeyValuePair <MonitoringTarget, bool>(elementToAdd.Type, elementToAdd.IsSelected)); Assert.Equal(expectedFirstTarget, updatedTargets.FirstOrDefault()); monTargetChangedEvent.Verify(e => e.Publish(It.IsAny <List <MonitoringTarget> >()), Times.Exactly(2)); }
public void GivenMonitoredTarget_WhenMonitoringStatusChanged_ThenProperEventIsRaised() { KeyValuePair <MonitoringTarget, bool> eventResult = new KeyValuePair <MonitoringTarget, bool>(MonitoringTarget.RAM_Usage, false); MonitoringTargetViewModel targetSubject = new MonitoringTargetViewModel(MonitoringTarget.CPU_Load); targetSubject.IsSelected = true; targetSubject.DisplayName = "TEST"; SelectionChanged selectionChangedTestHandler = new SelectionChanged((arg) => eventResult = arg); targetSubject.SelectionChangedEvent += selectionChangedTestHandler; targetSubject.PublishMonitoringOptionStatusCommand.Execute(null); Assert.Equal(new KeyValuePair <MonitoringTarget, bool>(MonitoringTarget.CPU_Load, true), eventResult); targetSubject.SelectionChangedEvent -= selectionChangedTestHandler; }
public void GivenCurrentlyMonitoredTargets_WhenRemoveSingleTarget_ThenItDoesNotPublishNewCollection() { List <MonitoringTarget> updatedTargets = null; Mock <IEventAggregator> eventManager = new Mock <IEventAggregator>(); Mock <OnWatchdogTargetChangedEvent> watchdogTargetChangedEvent = new Mock <OnWatchdogTargetChangedEvent>(); Mock <OnMonitoringTargetsChangedEvent> monTargetChangedEvent = new Mock <OnMonitoringTargetsChangedEvent>(); monTargetChangedEvent.Setup(e => e.Publish(It.IsAny <List <MonitoringTarget> >())).Verifiable(); monTargetChangedEvent.Setup(e => e.Publish(It.IsAny <List <MonitoringTarget> >())).Callback <List <MonitoringTarget> >(lru => updatedTargets = lru); ComputerMonitoringTestHelper.SetupEventAggMockBehaviour(eventManager, watchdogTargetChangedEvent.Object, monTargetChangedEvent.Object); Mock <IAppManager> appManagerMock = GivenAppManagerMock(); HardwareSettingsViewModel hardwareSettingsVm = new HardwareSettingsViewModel(eventManager.Object, appManagerMock.Object, Mock.Of <IUiSettings>()); updatedTargets = null; MonitoringTargetViewModel elementToUpdate = hardwareSettingsVm.MonitoringOptionsCollection.SingleOrDefault(mo => mo.Type == _currentTargets.LastOrDefault()); elementToUpdate.IsSelected = false; elementToUpdate.PublishMonitoringOptionStatusCommand.Execute(new KeyValuePair <MonitoringTarget, bool>(elementToUpdate.Type, elementToUpdate.IsSelected)); Assert.Null(updatedTargets); monTargetChangedEvent.Verify(e => e.Publish(It.IsAny <List <MonitoringTarget> >()), Times.Once); }