public void WhenIsPropagateLocaleEnabledChanged_ThenIsDirtyIsTrueUntilApplied()
        {
            var viewModel = new SshOptionsViewModel(this.settingsRepository);

            Assert.IsFalse(viewModel.IsDirty);

            viewModel.IsPropagateLocaleEnabled = !viewModel.IsPropagateLocaleEnabled;

            Assert.IsTrue(viewModel.IsDirty);
        }
        public void WhenSettingDisabled_ThenIsPropagateLocaleEnabledIsTrue()
        {
            var settings = this.settingsRepository.GetSettings();
            settings.IsPropagateLocaleEnabled.BoolValue = false;
            this.settingsRepository.SetSettings(settings);

            var viewModel = new SshOptionsViewModel(this.settingsRepository);

            Assert.IsFalse(viewModel.IsPropagateLocaleEnabled);
        }
        public void WhenPublicKeyValidityInDaysChanged_ThenIsDirtyIsTrueUntilApplied()
        {
            var viewModel = new SshOptionsViewModel(this.settingsRepository);

            Assert.IsFalse(viewModel.IsDirty);

            viewModel.PublicKeyValidityInDays++;

            Assert.IsTrue(viewModel.IsDirty);
        }
        public void WhenSettingPopulated_ThenPublicKeyValidityInDaysHasCorrectValue()
        {
            var settings = this.settingsRepository.GetSettings();
            settings.PublicKeyValidity.IntValue = 60 * 60 * 26; // 1.5 days
            this.settingsRepository.SetSettings(settings);

            var viewModel = new SshOptionsViewModel(this.settingsRepository);

            Assert.AreEqual(1, viewModel.PublicKeyValidityInDays);
        }
        public void WhenDisablingIsPropagateLocaleEnabled_ThenChangeIsApplied()
        {
            var settings = this.settingsRepository.GetSettings();
            settings.IsPropagateLocaleEnabled.BoolValue = true;
            this.settingsRepository.SetSettings(settings);

            var viewModel = new SshOptionsViewModel(this.settingsRepository)
            {
                IsPropagateLocaleEnabled = false
            };
            viewModel.ApplyChanges();

            settings = this.settingsRepository.GetSettings();
            Assert.IsFalse(settings.IsPropagateLocaleEnabled.BoolValue);
        }
        public void WhenChangingPublicKeyValidityInDays_ThenChangeIsApplied()
        {
            var settings = this.settingsRepository.GetSettings();
            settings.PublicKeyValidity.IntValue = 60 * 60 * 26; // 1.5 days
            this.settingsRepository.SetSettings(settings);

            var viewModel = new SshOptionsViewModel(this.settingsRepository)
            {
                PublicKeyValidityInDays = 365 * 2
            };
            viewModel.ApplyChanges();

            settings = this.settingsRepository.GetSettings();
            Assert.AreEqual(365 * 2 * 24 * 60 * 60, settings.PublicKeyValidity.IntValue);
        }