public void CheckIfScreenSleepEnabledTestMethod() { var settingsManagerStub = MockRepository.GenerateMock <ISettingsManager <AppSettings> >(); settingsManagerStub.Expect(x => x.GetConfig()).Return(new AppSettings { IsScreenSleepEnabled = true }); var facade = new SpotifySaveModeStopperFacade(null, null, null, null, null, null, settingsManagerStub); Assert.IsTrue(facade.IsScreenSleepEnabled()); settingsManagerStub.VerifyAllExpectations(); }
public void ChangeAutoStartSettingsTestMethod() { var autoStartChangeFired = new ManualResetEvent(false); var settingsManagerStub = MockRepository.GenerateStub<ISettingsManager<AppSettings>>(); settingsManagerStub.Stub(x => x.GetConfig()).Return(new AppSettings { IsScreenSleepEnabled = true }); var autoStartManagerStub = MockRepository.GenerateMock<IAutoStartManager>(); autoStartManagerStub.Expect(x => x.SetAutoStart(Arg<bool>.Is.Equal(true))) .Do((Action<bool>)(ant => { autoStartChangeFired.Set(); })); var facade = new SpotifySaveModeStopperFacade(null, null, null, null, null, autoStartManagerStub, settingsManagerStub); facade.ChangeAutoStart(true); Assert.IsTrue(autoStartChangeFired.WaitOne(10)); autoStartManagerStub.VerifyAllExpectations(); }
public void ChangeScreenSleepSettingsTestMethod() { var saveConfigFired = new ManualResetEvent(false); var settingsManagerStub = MockRepository.GenerateMock <ISettingsManager <AppSettings> >(); settingsManagerStub.Stub(x => x.GetConfig()).Return(new AppSettings { IsScreenSleepEnabled = true }); settingsManagerStub.Expect(x => x.SaveConfig(new AppSettings())) .Constraints(Property.Value("IsScreenSleepEnabled", true)) .Do((Action <AppSettings>)(ant => { saveConfigFired.Set(); })); var facade = new SpotifySaveModeStopperFacade(null, null, null, null, null, null, settingsManagerStub); facade.ChangeScreenSleep(true); Assert.IsTrue(saveConfigFired.WaitOne(10)); settingsManagerStub.VerifyAllExpectations(); }
public void ChangeAutoStartSettingsTestMethod() { var autoStartChangeFired = new ManualResetEvent(false); var settingsManagerStub = MockRepository.GenerateStub <ISettingsManager <AppSettings> >(); settingsManagerStub.Stub(x => x.GetConfig()).Return(new AppSettings { IsScreenSleepEnabled = true }); var autoStartManagerStub = MockRepository.GenerateMock <IAutoStartManager>(); autoStartManagerStub.Expect(x => x.SetAutoStart(Arg <bool> .Is.Equal(true))) .Do((Action <bool>)(ant => { autoStartChangeFired.Set(); })); var facade = new SpotifySaveModeStopperFacade(null, null, null, null, null, autoStartManagerStub, settingsManagerStub); facade.ChangeAutoStart(true); Assert.IsTrue(autoStartChangeFired.WaitOne(10)); autoStartManagerStub.VerifyAllExpectations(); }
public void ChangeListeningTestMethod() { const string spotifyProcessName = "Spotify"; var messageDisplayerStub = MockRepository.GenerateStub <IMessageDisplayer>(); messageDisplayerStub.Stub(x => x.OutputMessage(Arg <string> .Is.Anything)).Repeat.Any(); var settingsManagerStub = MockRepository.GenerateStub <ISettingsManager <AppSettings> >(); settingsManagerStub.Stub(x => x.GetConfig()).Return(new AppSettings { IsScreenSleepEnabled = true }); var processAnalyserStub = MockRepository.GenerateStub <IProcessAnalyser>(); processAnalyserStub.Stub(x => x.IsAppRunning(spotifyProcessName)) .Repeat.Any() .Return(true); var appStateStub = MockRepository.GenerateStub <IAppStatusReporting>(); appStateStub.Stub(x => x.NotifyAntiSleepingModeIsActivated()); appStateStub.Stub(x => x.NotifyAntiSleepingModeIsDisabled()); var constantDisplaySleepScreenEnabled = new ManualResetEvent(false); var constantDisplayNoSleepScreenEnabled = new ManualResetEvent(false); var constantDisplayDisabled = new ManualResetEvent(false); var preventSleepScreenMock = MockRepository.GenerateMock <IPreventSleepScreen>(); preventSleepScreenMock.Expect(x => x.EnableConstantDisplayAndPower(true, false)) .Do((Action <bool, bool>)((contantPower, constantScreen) => { constantDisplayDisabled.Reset(); constantDisplayNoSleepScreenEnabled.Reset(); constantDisplaySleepScreenEnabled.Set(); })); preventSleepScreenMock.Expect(x => x.EnableConstantDisplayAndPower(true, true)) .Do((Action <bool, bool>)((contantPower, constantScreen) => { constantDisplaySleepScreenEnabled.Reset(); constantDisplayDisabled.Reset(); constantDisplayNoSleepScreenEnabled.Set(); })); preventSleepScreenMock.Expect(x => x.EnableConstantDisplayAndPower(false, false)) .Do((Action <bool, bool>)((contantPower, constantScreen) => { constantDisplayNoSleepScreenEnabled.Reset(); constantDisplaySleepScreenEnabled.Reset(); constantDisplayDisabled.Set(); })); //Sequence: // false - false - true always var calledTimes = 0; var soundAnalyserMock = MockRepository.GenerateMock <ISoundAnalyser>(); soundAnalyserMock.Expect(x => x.IsProcessNameOutputingSound(Arg <string> .Is.Equal(spotifyProcessName))) .Return(false) .WhenCalled(invk => { Interlocked.Increment(ref calledTimes); if (calledTimes < 3) { invk.ReturnValue = false; } else { invk.ReturnValue = true; } }); var facade = new SpotifySaveModeStopperFacade(messageDisplayerStub, preventSleepScreenMock, soundAnalyserMock, processAnalyserStub, appStateStub, null, settingsManagerStub, 1); facade.StartListening(); var debugCoef = 1; #if DEBUG debugCoef = 60; #endif Assert.IsTrue(constantDisplaySleepScreenEnabled.WaitOne(debugCoef * 2 * 2 * 1500)); Assert.IsFalse(constantDisplayDisabled.WaitOne(1000)); facade.ChangeScreenSleep(false); Assert.IsTrue(constantDisplayDisabled.WaitOne(debugCoef * 2 * 1 * 1500)); Assert.IsTrue(constantDisplayNoSleepScreenEnabled.WaitOne(debugCoef * 2 * 1 * 1500)); Assert.IsFalse(constantDisplayDisabled.WaitOne(500)); Assert.IsFalse(constantDisplaySleepScreenEnabled.WaitOne(500)); preventSleepScreenMock.VerifyAllExpectations(); soundAnalyserMock.VerifyAllExpectations(); }
public MainWindow() { InitializeComponent(); #region Poor Man DI var iconChanger = new AppStateReporting(SetPlayingGui, SetNotPlayingGui); var messageDisplayer = new DummyMessageDisplayer(); var powerHandler = new PowerRequestContextHandler(); var soundAnalyser = new CsCoreSoundAnalyser(messageDisplayer); var processAnalyser = new ProcessAnalyser(); var fullPath = Assembly.GetExecutingAssembly().Location; var autoStartManager = new AutoStartManager(AppName, fullPath); var settingsManager = new SettingsManager<AppSettings>(AppName, new AppSettings {IsScreenSleepEnabled = false}); #endregion _facade = new SpotifySaveModeStopperFacade(messageDisplayer, powerHandler, soundAnalyser, processAnalyser, iconChanger, autoStartManager, settingsManager); #region Events Subscription Closing += OnClosing; #endregion #region Init Tray Icon WindowState = WindowState.Minimized; Visibility = Visibility.Hidden; ShowInTaskbar = false; _notifyIcon = new NotifyIcon(); using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("SpotifySleepModeStopperGui.music.ico")) { _notPlayingIcon = new Icon(stream); } using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("SpotifySleepModeStopperGui.music_playing.ico")) { _playingIcon = new Icon(stream); } SetNotPlayingGui(); _notifyIcon.Visible = true; var contextMenu = new ContextMenu(); var exitMenuItem = new MenuItem(); exitMenuItem.Index = 2; exitMenuItem.Text = ExitMess; exitMenuItem.Click += exit_Click; _screenBehaviorMenuItem = new MenuItem(); _screenBehaviorMenuItem.Index = 1; if (_facade.IsScreenSleepEnabled()) _screenBehaviorMenuItem.Text = ScreenSleepEnabledMess; else _screenBehaviorMenuItem.Text = ScreenSleepDisabledMess; _screenBehaviorMenuItem.Click += ScreenBehaviorMenuItemOnClick; _autoStartMenuItem = new MenuItem(); _autoStartMenuItem.Index = 0; if (_facade.IsAutoStartEnabled()) _autoStartMenuItem.Text = AppStartingOnStartupMess; //"Auto Startup"; else _autoStartMenuItem.Text = AppNotStartingOnStartupMess; _autoStartMenuItem.Click += AutoStartMenuItemOnClick; contextMenu.MenuItems.AddRange(new[] { _autoStartMenuItem, _screenBehaviorMenuItem, exitMenuItem }); _notifyIcon.ContextMenu = contextMenu; #endregion _facade.StartListening(); }
public void ChangeListeningTestMethod() { const string spotifyProcessName = "Spotify"; var messageDisplayerStub = MockRepository.GenerateStub<IMessageDisplayer>(); messageDisplayerStub.Stub(x => x.OutputMessage(Arg<string>.Is.Anything)).Repeat.Any(); var settingsManagerStub = MockRepository.GenerateStub<ISettingsManager<AppSettings>>(); settingsManagerStub.Stub(x => x.GetConfig()).Return(new AppSettings { IsScreenSleepEnabled = true }); var processAnalyserStub = MockRepository.GenerateStub<IProcessAnalyser>(); processAnalyserStub.Stub(x => x.IsAppRunning(spotifyProcessName)) .Repeat.Any() .Return(true); var appStateStub = MockRepository.GenerateStub<IAppStatusReporting>(); appStateStub.Stub(x => x.NotifyAntiSleepingModeIsActivated()); appStateStub.Stub(x => x.NotifyAntiSleepingModeIsDisabled()); var constantDisplaySleepScreenEnabled = new ManualResetEvent(false); var constantDisplayNoSleepScreenEnabled = new ManualResetEvent(false); var constantDisplayDisabled = new ManualResetEvent(false); var preventSleepScreenMock = MockRepository.GenerateMock<IPreventSleepScreen>(); preventSleepScreenMock.Expect(x => x.EnableConstantDisplayAndPower(true, false)) .Do((Action<bool, bool>)((contantPower, constantScreen) => { constantDisplayDisabled.Reset(); constantDisplayNoSleepScreenEnabled.Reset(); constantDisplaySleepScreenEnabled.Set(); })); preventSleepScreenMock.Expect(x => x.EnableConstantDisplayAndPower(true, true)) .Do((Action<bool, bool>)((contantPower, constantScreen) => { constantDisplaySleepScreenEnabled.Reset(); constantDisplayDisabled.Reset(); constantDisplayNoSleepScreenEnabled.Set(); })); preventSleepScreenMock.Expect(x => x.EnableConstantDisplayAndPower(false, false)) .Do((Action<bool, bool>)((contantPower, constantScreen) => { constantDisplayNoSleepScreenEnabled.Reset(); constantDisplaySleepScreenEnabled.Reset(); constantDisplayDisabled.Set(); })); //Sequence: // false - false - true always var calledTimes = 0; var soundAnalyserMock = MockRepository.GenerateMock<ISoundAnalyser>(); soundAnalyserMock.Expect(x => x.IsProcessNameOutputingSound(Arg<string>.Is.Equal(spotifyProcessName))) .Return(false) .WhenCalled(invk => { Interlocked.Increment(ref calledTimes); if (calledTimes < 3) invk.ReturnValue = false; else invk.ReturnValue = true; }); var facade = new SpotifySaveModeStopperFacade(messageDisplayerStub, preventSleepScreenMock, soundAnalyserMock, processAnalyserStub, appStateStub, null, settingsManagerStub, 1); facade.StartListening(); var debugCoef = 1; #if DEBUG debugCoef = 60; #endif Assert.IsTrue(constantDisplaySleepScreenEnabled.WaitOne(debugCoef * 2 * 2 * 1500)); Assert.IsFalse(constantDisplayDisabled.WaitOne(1000)); facade.ChangeScreenSleep(false); Assert.IsTrue(constantDisplayDisabled.WaitOne(debugCoef * 2 * 1 * 1500)); Assert.IsTrue(constantDisplayNoSleepScreenEnabled.WaitOne(debugCoef * 2 * 1 * 1500)); Assert.IsFalse(constantDisplayDisabled.WaitOne(500)); Assert.IsFalse(constantDisplaySleepScreenEnabled.WaitOne(500)); preventSleepScreenMock.VerifyAllExpectations(); soundAnalyserMock.VerifyAllExpectations(); }
public void CheckIfScreenSleepEnabledTestMethod() { var settingsManagerStub = MockRepository.GenerateMock<ISettingsManager<AppSettings>>(); settingsManagerStub.Expect(x => x.GetConfig()).Return(new AppSettings { IsScreenSleepEnabled = true }); var facade = new SpotifySaveModeStopperFacade(null, null, null, null, null, null, settingsManagerStub); Assert.IsTrue(facade.IsScreenSleepEnabled()); settingsManagerStub.VerifyAllExpectations(); }
public void ChangeScreenSleepSettingsTestMethod() { var saveConfigFired = new ManualResetEvent(false); var settingsManagerStub = MockRepository.GenerateMock<ISettingsManager<AppSettings>>(); settingsManagerStub.Stub(x => x.GetConfig()).Return(new AppSettings { IsScreenSleepEnabled = true }); settingsManagerStub.Expect(x => x.SaveConfig(new AppSettings())) .Constraints(Property.Value("IsScreenSleepEnabled", true)) .Do((Action<AppSettings>)(ant => { saveConfigFired.Set(); })); var facade = new SpotifySaveModeStopperFacade(null, null, null, null, null, null, settingsManagerStub); facade.ChangeScreenSleep(true); Assert.IsTrue(saveConfigFired.WaitOne(10)); settingsManagerStub.VerifyAllExpectations(); }
public MainWindow() { InitializeComponent(); #region Poor Man DI var iconChanger = new AppStateReporting(SetPlayingGui, SetNotPlayingGui); var messageDisplayer = new DummyMessageDisplayer(); var powerHandler = new PowerRequestContextHandler(); var soundAnalyser = new CsCoreSoundAnalyser(messageDisplayer); var processAnalyser = new ProcessAnalyser(); var fullPath = Assembly.GetExecutingAssembly().Location; var autoStartManager = new AutoStartManager(AppName, fullPath); var settingsManager = new SettingsManager <AppSettings>(AppName, new AppSettings { IsScreenSleepEnabled = false }); #endregion _facade = new SpotifySaveModeStopperFacade(messageDisplayer, powerHandler, soundAnalyser, processAnalyser, iconChanger, autoStartManager, settingsManager); #region Events Subscription Closing += OnClosing; #endregion #region Init Tray Icon WindowState = WindowState.Minimized; Visibility = Visibility.Hidden; ShowInTaskbar = false; _notifyIcon = new NotifyIcon(); using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("SpotifySleepModeStopperGui.music.ico")) { _notPlayingIcon = new Icon(stream); } using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("SpotifySleepModeStopperGui.music_playing.ico")) { _playingIcon = new Icon(stream); } SetNotPlayingGui(); _notifyIcon.Visible = true; var contextMenu = new ContextMenu(); var exitMenuItem = new MenuItem(); exitMenuItem.Index = 2; exitMenuItem.Text = ExitMess; exitMenuItem.Click += exit_Click; _screenBehaviorMenuItem = new MenuItem(); _screenBehaviorMenuItem.Index = 1; if (_facade.IsScreenSleepEnabled()) { _screenBehaviorMenuItem.Text = ScreenSleepEnabledMess; } else { _screenBehaviorMenuItem.Text = ScreenSleepDisabledMess; } _screenBehaviorMenuItem.Click += ScreenBehaviorMenuItemOnClick; _autoStartMenuItem = new MenuItem(); _autoStartMenuItem.Index = 0; if (_facade.IsAutoStartEnabled()) { _autoStartMenuItem.Text = AppStartingOnStartupMess; //"Auto Startup"; } else { _autoStartMenuItem.Text = AppNotStartingOnStartupMess; } _autoStartMenuItem.Click += AutoStartMenuItemOnClick; contextMenu.MenuItems.AddRange(new[] { _autoStartMenuItem, _screenBehaviorMenuItem, exitMenuItem }); _notifyIcon.ContextMenu = contextMenu; #endregion _facade.StartListening(); }