示例#1
0
        public void OriginalFilesModificationTest(string version, string fileName)
        {
            var settingPathMock   = new Mock <ISettingsPath>();
            var mockIOProvider    = BackCompatTestProperties.GetModuleIOProvider(version, ShortcutGuideSettings.ModuleName, fileName);
            var mockSettingsUtils = new SettingsUtils(mockIOProvider.Object, settingPathMock.Object);
            ShortcutGuideSettings originalSettings = mockSettingsUtils.GetSettings <ShortcutGuideSettings>(ShortcutGuideSettings.ModuleName);

            var             mockGeneralIOProvider      = BackCompatTestProperties.GetGeneralSettingsIOProvider(version);
            var             mockGeneralSettingsUtils   = new SettingsUtils(mockGeneralIOProvider.Object, settingPathMock.Object);
            GeneralSettings originalGeneralSettings    = mockGeneralSettingsUtils.GetSettings <GeneralSettings>();
            var             generalSettingsRepository  = new BackCompatTestProperties.MockSettingsRepository <GeneralSettings>(mockGeneralSettingsUtils);
            var             shortcutSettingsRepository = new BackCompatTestProperties.MockSettingsRepository <ShortcutGuideSettings>(mockSettingsUtils);

            // Initialise View Model with test Config files
            Func <string, int>     SendMockIPCConfigMSG = msg => { return(0); };
            ShortcutGuideViewModel viewModel            = new ShortcutGuideViewModel(generalSettingsRepository, shortcutSettingsRepository, SendMockIPCConfigMSG);

            // Verify that the old settings persisted
            Assert.AreEqual(originalGeneralSettings.Enabled.ShortcutGuide, viewModel.IsEnabled);
            Assert.AreEqual(originalSettings.Properties.OverlayOpacity.Value, viewModel.OverlayOpacity);
            Assert.AreEqual(originalSettings.Properties.PressTime.Value, viewModel.PressTime);

            //Verify that the stub file was used
            var expectedCallCount = 2;  //once via the view model, and once by the test (GetSettings<T>)

            BackCompatTestProperties.VerifyModuleIOProviderWasRead(mockIOProvider, ShortcutGuideSettings.ModuleName, expectedCallCount);
            BackCompatTestProperties.VerifyGeneralSettingsIOProviderWasRead(mockGeneralIOProvider, expectedCallCount);
        }
        public ShortcutGuidePage()
        {
            InitializeComponent();

            ViewModel   = new ShortcutGuideViewModel();
            DataContext = ViewModel;
        }
示例#3
0
        public ShortcutGuidePage()
        {
            InitializeComponent();

            ViewModel   = new ShortcutGuideViewModel(ShellPage.SendDefaultIPCMessage);
            DataContext = ViewModel;
        }
        public ShortcutGuidePage()
        {
            InitializeComponent();
            var settingsUtils = new SettingsUtils(new SystemIOProvider());

            ViewModel   = new ShortcutGuideViewModel(settingsUtils, ShellPage.SendDefaultIPCMessage);
            DataContext = ViewModel;
        }
        public ShortcutGuidePage()
        {
            InitializeComponent();

            var settingsUtils = new SettingsUtils(new SystemIOProvider());
            ViewModel = new ShortcutGuideViewModel(SettingsRepository<GeneralSettings>.GetInstance(settingsUtils), SettingsRepository<ShortcutGuideSettings>.GetInstance(settingsUtils), ShellPage.SendDefaultIPCMessage);
            DataContext = ViewModel;
        }
示例#6
0
        public void IsEnabled_ShouldEnableModule_WhenSuccessful()
        {
            // Arrange
            ShortcutGuideViewModel viewModel = new ShortcutGuideViewModel();

            // Assert
            // Initialize mock function of sending IPC message.
            ShellPage.DefaultSndMSGCallback = msg =>
            {
                OutGoingGeneralSettings snd = JsonSerializer.Deserialize <OutGoingGeneralSettings>(msg);
                Assert.IsTrue(snd.GeneralSettings.Enabled.ShortcutGuide);
            };

            // Act
            viewModel.IsEnabled = true;
        }
示例#7
0
        public void PressTime_ShouldSetPressTimeToOneHundred_WhenSuccessful()
        {
            // Arrange
            ShortcutGuideViewModel viewModel = new ShortcutGuideViewModel();

            // Assert
            // Initilize mock function of sending IPC message.
            ShellPage.DefaultSndMSGCallback = msg =>
            {
                ShortcutGuideSettingsIPCMessage snd = JsonSerializer.Deserialize <ShortcutGuideSettingsIPCMessage>(msg);
                Assert.AreEqual(100, snd.Powertoys.ShortcutGuide.Properties.PressTime.Value);
            };

            // Act
            viewModel.PressTime = 100;
        }
示例#8
0
        public void ThemeIndex_ShouldSetThemeToDark_WhenSuccessful()
        {
            // Arrange
            ShortcutGuideViewModel viewModel = new ShortcutGuideViewModel();

            // Assert
            // Initilize mock function of sending IPC message.
            ShellPage.DefaultSndMSGCallback = msg =>
            {
                ShortcutGuideSettingsIPCMessage snd = JsonSerializer.Deserialize <ShortcutGuideSettingsIPCMessage>(msg);
                Assert.AreEqual("dark", snd.Powertoys.ShortcutGuide.Properties.Theme.Value);
            };

            // Act
            viewModel.ThemeIndex = 0;
        }
        public void OverlayOpacityShouldSeOverlayOpacityToOneHundredWhenSuccessful()
        {
            // Arrange
            var settingsUtilsMock            = new Mock <ISettingsUtils>();
            ShortcutGuideViewModel viewModel = new ShortcutGuideViewModel(settingsUtilsMock.Object, SettingsRepository <GeneralSettings> .GetInstance(mockGeneralSettingsUtils.Object), SettingsRepository <ShortcutGuideSettings> .GetInstance(mockShortcutGuideSettingsUtils.Object), msg => { return(0); }, ShortCutGuideTestFolderName);

            Assert.AreEqual(90, viewModel.OverlayOpacity);

            // Act
            viewModel.OverlayOpacity = 100;

            // Assert
            Func <string, bool> equal100 = s => JsonSerializer.Deserialize <ShortcutGuideSettings>(s).Properties.OverlayOpacity.Value == 100;

            settingsUtilsMock.Verify(x => x.SaveSettings(It.Is <string>(y => equal100(y)), It.IsAny <string>(), It.IsAny <string>()), Times.Once);
        }
示例#10
0
        public void IsEnabled_ShouldEnableModule_WhenSuccessful()
        {
            // Assert
            // Initialize mock function of sending IPC message.
            Func <string, int> SendMockIPCConfigMSG = msg =>
            {
                OutGoingGeneralSettings snd = JsonSerializer.Deserialize <OutGoingGeneralSettings>(msg);
                Assert.IsTrue(snd.GeneralSettings.Enabled.ShortcutGuide);
                return(0);
            };

            // Arrange
            ShortcutGuideViewModel viewModel = new ShortcutGuideViewModel(SettingsRepository <GeneralSettings> .GetInstance(mockGeneralSettingsUtils.Object), SettingsRepository <ShortcutGuideSettings> .GetInstance(mockShortcutGuideSettingsUtils.Object), SendMockIPCConfigMSG, ShortCutGuideTestFolderName);

            // Act
            viewModel.IsEnabled = true;
        }
示例#11
0
        public void OverlayOpacity_ShouldSeOverlayOpacityToOneHundred_WhenSuccessful()
        {
            // Arrange
            ShortcutGuideViewModel viewModel = new ShortcutGuideViewModel();

            // Assert
            // Initilize mock function of sending IPC message.
            ShellPage.DefaultSndMSGCallback = msg =>
            {
                ShortcutGuideSettingsIPCMessage snd = JsonSerializer.Deserialize <ShortcutGuideSettingsIPCMessage>(msg);
                // Serialisation not working as expected in the test project:
                Assert.AreEqual(100, snd.Powertoys.ShortcutGuide.Properties.OverlayOpacity.Value);
            };

            // Act
            viewModel.OverlayOpacity = 100;
        }
        public void ThemeIndexShouldSetThemeToDarkWhenSuccessful()
        {
            // Arrange
            var settingsUtilsMock            = new Mock <ISettingsUtils>();
            ShortcutGuideViewModel viewModel = new ShortcutGuideViewModel(settingsUtilsMock.Object, SettingsRepository <GeneralSettings> .GetInstance(mockGeneralSettingsUtils.Object), SettingsRepository <ShortcutGuideSettings> .GetInstance(mockShortcutGuideSettingsUtils.Object), msg => { return(0); }, ShortCutGuideTestFolderName);

            // Initialize shortcut guide settings theme to 'system' to be in sync with shortcut_guide.h.
            Assert.AreEqual(2, viewModel.ThemeIndex);

            // Act
            viewModel.ThemeIndex = 0;

            // Assert
            Func <string, bool> isDark = s => JsonSerializer.Deserialize <ShortcutGuideSettings>(s).Properties.Theme.Value == "dark";

            settingsUtilsMock.Verify(x => x.SaveSettings(It.Is <string>(y => isDark(y)), It.IsAny <string>(), It.IsAny <string>()), Times.Once);
        }
示例#13
0
        public void PressTime_ShouldSetPressTimeToOneHundred_WhenSuccessful()
        {
            // Assert
            // Initialize mock function of sending IPC message.
            Func <string, int> SendMockIPCConfigMSG = msg =>
            {
                ShortcutGuideSettingsIPCMessage snd = JsonSerializer.Deserialize <ShortcutGuideSettingsIPCMessage>(msg);
                Assert.AreEqual(100, snd.Powertoys.ShortcutGuide.Properties.PressTime.Value);
                return(0);
            };

            // Arrange
            ShortcutGuideViewModel viewModel = new ShortcutGuideViewModel(SettingsRepository <GeneralSettings> .GetInstance(mockGeneralSettingsUtils.Object), SettingsRepository <ShortcutGuideSettings> .GetInstance(mockShortcutGuideSettingsUtils.Object), SendMockIPCConfigMSG, ShortCutGuideTestFolderName);

            Assert.AreEqual(900, viewModel.PressTime);

            // Act
            viewModel.PressTime = 100;
        }
示例#14
0
        public void ThemeIndex_ShouldSetThemeToDark_WhenSuccessful()
        {
            // Assert
            // Initialize mock function of sending IPC message.
            Func <string, int> SendMockIPCConfigMSG = msg =>
            {
                ShortcutGuideSettingsIPCMessage snd = JsonSerializer.Deserialize <ShortcutGuideSettingsIPCMessage>(msg);
                Assert.AreEqual("dark", snd.Powertoys.ShortcutGuide.Properties.Theme.Value);
                return(0);
            };

            // Arrange
            ShortcutGuideViewModel viewModel = new ShortcutGuideViewModel(SendMockIPCConfigMSG, ShortCutGuideTestFolderName);

            Assert.AreEqual(1, viewModel.ThemeIndex);

            // Act
            viewModel.ThemeIndex = 0;
        }
示例#15
0
        public void ThemeIndexShouldSetThemeToDarkWhenSuccessful()
        {
            // Assert
            // Initialize mock function of sending IPC message.
            Func <string, int> SendMockIPCConfigMSG = msg =>
            {
                ShortcutGuideSettingsIPCMessage snd = JsonSerializer.Deserialize <ShortcutGuideSettingsIPCMessage>(msg);
                Assert.AreEqual("dark", snd.Powertoys.ShortcutGuide.Properties.Theme.Value);
                return(0);
            };

            // Arrange
            ShortcutGuideViewModel viewModel = new ShortcutGuideViewModel(SettingsRepository <GeneralSettings> .GetInstance(mockGeneralSettingsUtils.Object), SettingsRepository <ShortcutGuideSettings> .GetInstance(mockShortcutGuideSettingsUtils.Object), SendMockIPCConfigMSG, ShortCutGuideTestFolderName);

            // Initialize shortcut guide settings theme to 'system' to be in sync with shortcut_guide.h.
            Assert.AreEqual(2, viewModel.ThemeIndex);

            // Act
            viewModel.ThemeIndex = 0;
        }
示例#16
0
        public void OverlayOpacityShouldSeOverlayOpacityToOneHundredWhenSuccessful()
        {
            // Assert
            // Initialize mock function of sending IPC message.
            Func <string, int> SendMockIPCConfigMSG = msg =>
            {
                ShortcutGuideSettingsIPCMessage snd = JsonSerializer.Deserialize <ShortcutGuideSettingsIPCMessage>(msg);

                // Serialisation not working as expected in the test project:
                Assert.AreEqual(100, snd.Powertoys.ShortcutGuide.Properties.OverlayOpacity.Value);
                return(0);
            };

            // Arrange
            ShortcutGuideViewModel viewModel = new ShortcutGuideViewModel(SettingsRepository <GeneralSettings> .GetInstance(mockGeneralSettingsUtils.Object), SettingsRepository <ShortcutGuideSettings> .GetInstance(mockShortcutGuideSettingsUtils.Object), SendMockIPCConfigMSG, ShortCutGuideTestFolderName);

            Assert.AreEqual(90, viewModel.OverlayOpacity);

            // Act
            viewModel.OverlayOpacity = 100;
        }