Ejemplo n.º 1
0
        public void SaveCommand_Execute_JobProfileIsNotValid_NotifyUserWithCorrectMessageInteraction()
        {
            var vm           = BuildViewModel();
            var job          = BuildJob(_pdfProfile);
            var faultyResult = new ActionResult(ErrorCode.Ftp_NoAccount); //Random error code, to make the profile invalid

            _profileChecker.ProfileCheck(job.Profile, job.Accounts).Returns(faultyResult);

            vm.ExecuteWorkflowStep(job);
            vm.SaveCommand.Execute(null);

            var interaction = _interactionRequest.AssertWasRaised <MessageInteraction>();

            Assert.AreEqual(_translation.DefectiveProfile, interaction?.Title, "interaction title");
            var messageSb = new StringBuilder();

            messageSb.AppendLine(_translation.GetProfileIsDefectiveMessage(job.Profile.Name, faultyResult));
            messageSb.AppendLine();
            messageSb.AppendLine(_errorCodeInterpreter.GetErrorText(faultyResult, true, "\u2022"));
            messageSb.AppendLine(_translation.EditOrSelectNewProfile);
            var message = messageSb.ToString();

            Assert.AreEqual(message, interaction?.Text, "interaction text");
            Assert.AreEqual(MessageOptions.OK, interaction?.Buttons, "interaction buttons");
            Assert.AreEqual(MessageIcon.Exclamation, interaction?.Icon, "interaction icon");
        }
        public async Task SaveCommand_Execute_ProfileIsValid_FilePathNotFromSaveDialog_FileExist_NotifysUserWithCorrectInteraction()
        {
            var vm   = BuildViewModel();
            var job  = BuildJob(_pdfProfile);
            var task = vm.ExecuteWorkflowStep(job);

            _interactiveProfileChecker.CheckWithErrorResultInOverlay(job).Returns(true);

            await vm.BrowseFileCommandAsync.ExecuteAsync(null);

            _file.Exists(Arg.Any <string>()).Returns(true);
            vm.OutputFilename = "not" + _filenameFromSaveDialog;
            vm.OutputFolder   = "not" + _folderFromSaveDialog;
            var expectedDir = PathSafe.Combine(vm.OutputFolder, vm.OutputFilename);

            vm.SaveCommand.Execute(null);

            var interaction = _interactionRequest.AssertWasRaised <MessageInteraction>();

            Assert.AreEqual(_translation.ConfirmSaveAs.ToUpper(), interaction.Title, "Title");
            Assert.AreEqual(_translation.GetFileAlreadyExists(expectedDir), interaction.Text, "Message");
            Assert.AreEqual(MessageIcon.Exclamation, interaction.Icon, "Icon");
            Assert.AreEqual(MessageOptions.YesNo, interaction.Buttons, "Buttons");

            Assert.IsFalse(task.IsCompleted);
            await AbortStep(vm, task);
        }
        public void Execute_RaisesMessageInteraction_CorrectTitleAndButtons()
        {
            _profileRemoveCommand.Execute(null);

            var interaction = _interactionRequest.AssertWasRaised <MessageInteraction>();

            Assert.AreEqual(_translation.RemoveProfile, interaction.Title);
            Assert.AreEqual(MessageOptions.YesNo, interaction.Buttons);
        }
Ejemplo n.º 4
0
        public void StoreLicenseInLmCommandExecute_StoreLicenseForAllUsersWasSuccessful__ShowMessageWindow()
        {
            _uacAssistant.StoreLicenseForAllUsers(Arg.Any <string>(), Arg.Any <string>()).Returns(true);
            var translation = new StoreLicenseForAllUsersWindowTranslation();

            _storeLicenseForAllUsersWindowViewModel.StoreLicenseInLmCommand.Execute(null);

            var interaction = _interactionRequest.AssertWasRaised <MessageInteraction>();

            Assert.AreEqual(ApplicationNameWithEdition.ToUpper(), interaction.Title, "Title of message box is not the product name");
            Assert.AreEqual(translation.StoreForAllUsersSuccessful, interaction.Text, "Wrong text in message box");
            Assert.AreEqual(MessageOptions.OK, interaction.Buttons, "Wrong options in message box");
            Assert.AreEqual(MessageIcon.PDFCreator, interaction.Icon, "Wrong MessageBoxIcon");
        }
Ejemplo n.º 5
0
        public void WhenSuccessful_ShowsSuccessMessage()
        {
            var assistant = BuildAssistant();

            assistant.SendTestMail(_profile, _accounts);

            _interactionRequest.AssertWasRaised <MessageInteraction>();

            var messageInteraction = _interactionRequest.AssertWasRaised <MessageInteraction>();

            Assert.AreEqual(_translation.SendTestMail, messageInteraction.Title);
            StringAssert.StartsWith(_translation.TestMailSent, messageInteraction.Text);
            Assert.AreEqual(MessageIcon.Info, messageInteraction.Icon);
        }
Ejemplo n.º 6
0
        public void Execute_SettingsCheckResultNoChangesWithErrors_CorrectUserInteraction()
        {
            _tabSwitchSettingsCheck.CheckAffectedSettings().Returns(_resultNoChangesWithErrors);

            _evaluateSavingCommand.Execute(null);

            var interaction = _interactionRequest.AssertWasRaised <MessageInteraction>();

            Assert.AreEqual(_translation.Settings, interaction.Title, "Interaction Title");
            Assert.AreEqual(_translation.InvalidSettings, interaction.Text, "Interaction Text");
            Assert.AreEqual(MessageOptions.YesNo, interaction.Buttons, "Interaction Buttons");
            Assert.AreEqual(MessageIcon.Warning, interaction.Icon, "Interaction Icon");
            Assert.AreEqual(InvalidActionResultDict, interaction.ActionResultDict, "Interaction ActionResultDict");
            Assert.AreEqual(_translation.WantToProceedAnyway, interaction.SecondText, "Interaction SecondText");
        }
        public void Execute_RunSuccessfulInteractionWithTitleReplacement()
        {
            _interactionRequest.RegisterInteractionHandler <TitleReplacementEditInteraction>(i =>
            {
                i.Success = true; //User cancels
            });

            _command.Execute(null);

            var titleReplacementEditInteraction = _interactionRequest.AssertWasRaised <TitleReplacementEditInteraction>();

            Assert.IsTrue(string.IsNullOrEmpty(titleReplacementEditInteraction.Replacement.Search));
            Assert.IsTrue(string.IsNullOrEmpty(titleReplacementEditInteraction.Replacement.Replace));
            Assert.AreEqual(ReplacementType.Replace, titleReplacementEditInteraction.Replacement.ReplacementType);
            Assert.Greater(_settingsProvider.Settings.ApplicationSettings.TitleReplacement.Count, 0);
        }
        public void Execute_SettingsCheckResultWithChangesNoErrors_NoUserInteraction_IsDoneCalledWithSuccess()
        {
            _tabSwitchSettingsCheck.CheckAffectedSettings().Returns(_resultWithChangesNoErrors);

            _beforeEvaluateTabSwitchCommand.Execute(null);

            var interaction = _interactionRequest.AssertWasRaised <MessageInteraction>();

            Assert.AreEqual(_translation.Settings, interaction.Title, "Interaction Title");
            Assert.AreEqual(_translation.UnsavedChanges
                            + Environment.NewLine
                            + _translation.WantToSave
                            + Environment.NewLine
                            + _translation.ChooseNoToRevert, interaction.Text, "Interaction Text");
            Assert.AreEqual(MessageOptions.YesNoCancel, interaction.Buttons, "Interaction Buttons");
            Assert.AreEqual(MessageIcon.Question, interaction.Icon, "Interaction Icon");
        }
        public void Execute_WithUnusedDropboxAccount_RaisedMessageInteractionHasCorrectTitleIconButtonsAndMessage()
        {
            _dropboxAccountRemoveCommand.Execute(_unusedAccount);

            var interaction = _interactionRequest.AssertWasRaised <MessageInteraction>();

            Assert.AreEqual(_translation.RemoveDropboxAccount, interaction.Title, "Title");
            Assert.AreEqual(MessageOptions.YesNo, interaction.Buttons, "Buttons");
            Assert.AreEqual(MessageIcon.Question, interaction.Icon, "Icon");

            var sb = new StringBuilder();

            sb.AppendLine(_unusedAccount.AccountInfo);
            sb.AppendLine(_translation.SureYouWantToDeleteAccount);
            var message = sb.ToString();

            Assert.AreEqual(message, interaction.Text);
        }
Ejemplo n.º 10
0
        public void AddAccount_UserAppliesInteraction_AccesTokenParsingErrorOccurs_InteractionRequestRaisesCorrespondingInteraction()
        {
            var newAccount = new DropboxAccount();

            _interactionInvoker.Invoke(Arg.Do <DropboxAccountInteraction>(i =>
            {
                i.Result         = DropboxAccountInteractionResult.AccesTokenParsingError;
                i.DropboxAccount = newAccount;
            }));

            _dropboxAccountAddCommand.Execute(null);

            var messageInteraction = _interactionRequest.AssertWasRaised <MessageInteraction>();

            Assert.AreEqual(messageInteraction.Text, _translation.DropboxAccountSeverResponseErrorMessage);
            Assert.AreEqual(messageInteraction.Title, _translation.AddDropboxAccount);
            Assert.AreEqual(messageInteraction.Buttons, MessageOptions.OK);
            Assert.AreEqual(messageInteraction.Icon, MessageIcon.Warning);
        }
Ejemplo n.º 11
0
        public void Execute_RaisesInputInteractionWithCurrentNameAsInput()
        {
            _profileRenameCommand.Execute(null);

            var interaction = _interactionRequest.AssertWasRaised <InputInteraction>();

            Assert.AreEqual(_translation.RenameProfile, interaction.Title, "Title");
            Assert.AreEqual(_translation.EnterNewProfileName, interaction.QuestionText, "QuestionText");
            Assert.AreEqual(_currentName, interaction.InputText, "InputText");
            Assert.IsNotNull(interaction.IsValidInput, "IsValidInput is not set");
        }
Ejemplo n.º 12
0
        public void Execute_RaisesInputInteractionWithCorrectTitleQuestionTextAndInputText()
        {
            _profileAddCommand.Execute(null);

            var interaction = _interactionRequest.AssertWasRaised <InputInteraction>();

            Assert.AreEqual(_translation.AddNewProfile, interaction.Title, "Title");
            Assert.AreEqual(_translation.EnterProfileName, interaction.QuestionText, "QuestionText");
            Assert.AreEqual(_translation.NewProfile, interaction.InputText, "InputText");
            Assert.IsNotNull(interaction.IsValidInput, "IsValidInput is not set");
        }
        public void SettingsViewRegion_NoChangesInSettings_ErrorsInProfiles_ErrorsInAppSettings__UserGetsNotifiedAboutAppSettingErrorsWithoutChanges()
        {
            SetCurrentRegion(MainRegionViewNames.SettingsView);
            _settingsChanged.HaveChanged().Returns(false);
            SetErrorsInProfiles(); //Should be ignored
            SetErrorsInAppSettings();

            _command.Execute(null);

            Assert.IsTrue(_commandTester.IsDoneWasRaised);

            var interaction = _interactionRequest.AssertWasRaised <MessageInteraction>();

            Assert.AreEqual(_translation.InvalidSettings, interaction.Text, "Interaction Text");
            Assert.AreEqual(_translation.PDFCreatorSettings, interaction.Title, "Interaction Title");
            Assert.AreEqual(MessageOptions.YesCancel, interaction.Buttons, "Interaction Buttons");
            Assert.AreEqual(MessageIcon.Warning, interaction.Icon, "Interaction Icon");
            Assert.AreEqual(_translation.DefaultViewer, interaction.ActionResultDict.Keys.First(), "Default Viewer Translation must be set as DictKey in ActionResultDict");
            Assert.AreEqual(_actionResultWithError, interaction.ActionResultDict[_translation.DefaultViewer], "ActionResult for DefaultViewers");
            Assert.AreEqual(_translation.ProceedAnyway, interaction.SecondText, "Interaction SecondText");
        }
Ejemplo n.º 14
0
        public void OnlineActivationCommand_CurrentActivationIsNotValid_LicenseCheckerActivationIsNotValid_DoNotSaveNewEditionAndInformUser()
        {
            _savedActivation = null;

            _expectedLicenseKey = "given-key";

            CreateLicenseKeyEnteredInteraction(_expectedLicenseKey);

            _activationFromServer     = new Activation(true);
            _activationFromServer.Key = _expectedLicenseKey.Replace("-", "");
            _activationFromServer.SetResult(Result.LICENSE_EXPIRED, "Expired");

            var viewModel = BuildViewModel();

            viewModel.OnlineActivationCommand.Execute(null);

            viewModel.LicenseCheckFinishedEvent.WaitOne(_timeout);
            _licenseChecker.DidNotReceive().SaveActivation(Arg.Any <Activation>());

            var messageInteraction = _interactionRequest.AssertWasRaised <MessageInteraction>();

            Assert.AreEqual(_translation.ActivationFailed, messageInteraction.Title);
            Assert.AreEqual(MessageOptions.OK, messageInteraction.Buttons);
            Assert.AreEqual(MessageIcon.Error, messageInteraction.Icon);
        }
        public void Execute_RunSuccessfulInteractionWithTitleReplacement()
        {
            _interactionRequest.RegisterInteractionHandler <TitleReplacementEditInteraction>(i =>
            {
                i.Success = true; //User cancels
            });

            var titleReplacement       = new TitleReplacement();
            var titleReplacementSearch = "searchText";

            titleReplacement.Search = titleReplacementSearch;
            var titleReplacementReplace = "replaceText";

            titleReplacement.Replace         = titleReplacementReplace;
            titleReplacement.ReplacementType = ReplacementType.RegEx;
            _command.Execute(titleReplacement);

            var titleReplacementEditInteraction = _interactionRequest.AssertWasRaised <TitleReplacementEditInteraction>();

            Assert.AreEqual(titleReplacementSearch, titleReplacementEditInteraction.Replacement.Search);
            Assert.AreEqual(titleReplacementReplace, titleReplacementEditInteraction.Replacement.Replace);
            Assert.AreEqual(ReplacementType.RegEx, titleReplacementEditInteraction.Replacement.ReplacementType);
        }
        public void CheckWithErrorResultInOverlay_InvalidProfile_ReturnFalse_NotifyUserInOverlay()
        {
            var faultyResult = new ActionResult(ErrorCode.Ftp_NoAccount); //Random error code, to make the profile invalid

            _profileChecker.CheckJob(_job).Returns(faultyResult);

            var result = _interactiveProfileChecker.CheckWithErrorResultInOverlay(_job);

            Assert.IsFalse(result, "Return value");
            var interaction = _interactionRequest.AssertWasRaised <MessageInteraction>();

            ValidateMessageInteraction(interaction, faultyResult);
            _interactionInvoker.DidNotReceive().Invoke(Arg.Any <MessageInteraction>()); //InteractionInvoker must not be called!
        }
        public void Execute_NotifyUserAboutDeletion()
        {
            _deleteHistoricFilesCommand.Execute(_historicFiles);

            var interaction = _unitTestInteractionRequest.AssertWasRaised <MessageInteraction>();

            Assert.AreEqual(_translation.GetDeleteFilesTitle(_historicFiles.Count), interaction.Title, "Interaction Title");
            var expectedMessage = _translation.GetAreYouSureYouWantToDeleteFilesMessage(_historicFiles.Count)
                                  + "\r\n" + File1 + "\r\n" + File2;

            Assert.AreEqual(expectedMessage, interaction.Text, "Interaction Text");
            Assert.AreEqual(MessageOptions.YesNo, interaction.Buttons);
            Assert.AreEqual(MessageIcon.Question, interaction.Icon);
        }
        public void AddAccount_InteractionRequestRaisesFtpAccountInteraction()
        {
            _ftpAccountAddCommand.Execute(null);

            _interactionRequest.AssertWasRaised <FtpAccountInteraction>();
        }
Ejemplo n.º 19
0
        public void EditAccount_ExecuteWithCurrentAccount_RaisesInteraction()
        {
            _timeServerAccountEditCommand.Execute(_currentTimeServerAccount);

            _interactionRequest.AssertWasRaised <TimeServerAccountInteraction>();
        }
Ejemplo n.º 20
0
        public void EditAccount_ExecuteWithCurrentAccount_RaisesInteraction()
        {
            _smtpAccountEditCommand.Execute(_currentSmtpAccount);

            _interactionRequest.AssertWasRaised <SmtpAccountInteraction>();
        }
        public void AddAccount_InteractionRequestRaisesTimeServerAccountInteraction()
        {
            _timeServerAccountAddCommand.Execute(null);

            _interactionRequest.AssertWasRaised <TimeServerAccountInteraction>();
        }