예제 #1
0
        public void Automation_IN_PublicFoldersTest()
        {
            try
            {
                bool result  = false;
                int  counter = 0;
                while (!result && counter < 3)
                {
                    using (
                        var sourcePreparation = new PsLauncher().LaunchPowerShellInstance("PF/SourcePrepScript.ps1",
                                                                                          $" -slogin {RunConfigurator.GetTenantValue("T5->T6", "source", "user")} -spassword {RunConfigurator.GetTenantValue("T5->T6", "source", "password")}", "x64")
                        )
                    {
                        while (!sourcePreparation.StandardOutput.EndOfStream)
                        {
                            string line = sourcePreparation.StandardOutput.ReadLine();
                            Log.Info(line);
                            if (line.Contains("Public Folder successfully created"))
                            {
                                result = true;
                            }
                        }
                        sourcePreparation.WaitForExit(30000);
                        counter++;
                    }
                }
                result  = false;
                counter = 0;
                while (!result && counter < 3)
                {
                    using (var targetPreparation = new PsLauncher().LaunchPowerShellInstance("PF/TargetPrepScript.ps1", $" -slogin {RunConfigurator.GetTenantValue("T5->T6", "target", "user")} -spassword {RunConfigurator.GetTenantValue("T5->T6", "target", "password")}", "x64"))
                    {
                        while (!targetPreparation.StandardOutput.EndOfStream)
                        {
                            string line = targetPreparation.StandardOutput.ReadLine();
                            Log.Info(line);
                            if (line.Contains("Public Folder successfully created"))
                            {
                                result = true;
                            }
                        }
                        targetPreparation.WaitForExit(30000);
                        counter++;
                    }
                }
                RunConfigurator.CreateFlagFolder(RunConfigurator.GetValueByXpath("//metaname[text()='client2']/..//metaname[text()='project2']/..//stopfolder"));
                LoginAndSelectRole(RunConfigurator.GetValueByXpath("//metaname[text()='client2']/..//user"), RunConfigurator.GetValueByXpath("//metaname[text()='client2']/..//password"), RunConfigurator.GetValueByXpath("//metaname[text()='client2']/../name"));
                SelectProject(RunConfigurator.GetValueByXpath("//metaname[text()='client2']/..//metaname[text()='project2']/..//name"));
                try
                {
                    User.AtProjectOverviewForm().OpenPublicFolders();
                }
                catch (Exception)
                {
                    Log.Info("Total folders link is not clickable");
                    User.AtProjectOverviewForm().OpenPublicFolders();
                }
                try
                {
                    User.AtPublicFolderMigrationViewForm().SyncUserByLocator(RunConfigurator.GetValueByXpath(
                                                                                 "//metaname[text()='client2']/..//metaname[text()='project2']/..//metaname[text()='entry4']/..//source"));
                }
                catch (Exception)
                {
                    Log.Info("PF migration view form was not opened");
                    User.AtProjectOverviewForm().OpenPublicFolders();
                    User.AtPublicFolderMigrationViewForm().SyncUserByLocator(RunConfigurator.GetValueByXpath(
                                                                                 "//metaname[text()='client2']/..//metaname[text()='project2']/..//metaname[text()='entry4']/..//source"));
                }

                User.AtPublicFolderMigrationViewForm().ConfirmSync();
                User.AtPublicFolderMigrationViewForm().AssertUserHaveSyncingState(RunConfigurator.GetValueByXpath(
                                                                                      "//metaname[text()='client2']/..//metaname[text()='project2']/..//metaname[text()='entry4']/..//source"));
                User.AtPublicFolderMigrationViewForm().OpenDetailsByLocator(RunConfigurator.GetValueByXpath(
                                                                                "//metaname[text()='client2']/..//metaname[text()='project2']/..//metaname[text()='entry4']/..//source"));
                User.AtPublicFolderMigrationViewForm().WaitForProvisioningJobAppear(1);
                User.AtPublicFolderMigrationViewForm().WaitForProvisioningJobDone();
                User.AtPublicFolderMigrationViewForm().WaitForContentCopyJobAppear(1);
                User.AtPublicFolderMigrationViewForm().WaitForContentCopyJobDone();
                User.AtPublicFolderMigrationViewForm().VerifyProccessedFolders(RunConfigurator.GetValueByXpath("//metaname[text()='client2']/..//metaname[text()='project2']/..//metaname[text()='processed1']/..//amount"));
                User.AtPublicFolderMigrationViewForm().VerifyProvisioningTimeStampsAreNotEmpty();
                User.AtPublicFolderMigrationViewForm().VerifyContentCopyTimeStampsAreNotEmpty();
                User.AtPublicFolderMigrationViewForm().DownloadProvisioningLogs();
                RunConfigurator.CheckProvisioningLogsFileIsDownloadedAndNotEmpty();
                //Note: add logs for second job
                User.AtPublicFolderMigrationViewForm().CloseUserDetails();
                using (var mainScript = new PsLauncher().LaunchPowerShellInstance("PF/PfAutomationScript.ps1", $" -sourceUserName {RunConfigurator.GetTenantValue("T5->T6", "source", "user")}" +
                                                                                  $" -sourcepasswd {RunConfigurator.GetTenantValue("T5->T6", "source", "password")}" +
                                                                                  $" -TargetUserName {RunConfigurator.GetTenantValue("T5->T6", "target", "user")}" +
                                                                                  $" -Targetpasswd {RunConfigurator.GetTenantValue("T5->T6", "target", "password")}" +
                                                                                  $" -StopFilePath1 {RunConfigurator.GetValueByXpath("//metaname[text()='client2']/..//metaname[text()='project2']/..//metaname[text()='stopfile1']/..//path")}" +
                                                                                  $" -StopFilePath2 {RunConfigurator.GetValueByXpath("//metaname[text()='client2']/..//metaname[text()='project2']/..//metaname[text()='stopfile2']/..//path")}" +
                                                                                  $" -AttachmentPath {Path.GetFullPath(RunConfigurator.ResourcesPath + "test.txt")}" +
                                                                                  $" -SendAsSourceUserName {RunConfigurator.GetValueByXpath("//metaname[text()='client2']/..//metaname[text()='project2']/..//metaname[text()='entry5']/..//source")}" +
                                                                                  $" -TargetAsSourceUserName {RunConfigurator.GetValueByXpath("//metaname[text()='client2']/..//metaname[text()='project2']/..//metaname[text()='entry5']/..//target")}" +
                                                                                  $" -Sourcex400Address \"{RunConfigurator.GetValueByXpath("//metaname[text()='client2']/..//metaname[text()='project2']/..//metaname[text()='entry5']/..//sourcex400")}\"" +
                                                                                  $" -Targetx400Address \"{RunConfigurator.GetValueByXpath("//metaname[text()='client2']/..//metaname[text()='project2']/..//metaname[text()='entry5']/..//targetx400")}\"" +
                                                                                  $" -SourceProxyAddress {RunConfigurator.GetValueByXpath("//metaname[text()='client2']/..//metaname[text()='project2']/..//metaname[text()='entry5']/..//sourceproxy")}" +
                                                                                  $" -TargetProxyAddress {RunConfigurator.GetValueByXpath("//metaname[text()='client2']/..//metaname[text()='project2']/..//metaname[text()='entry5']/..//targetproxy")}"))
                {
                    while (!mainScript.StandardOutput.EndOfStream)
                    {
                        var line = mainScript.StandardOutput.ReadLine();
                        Log.Info(line);
                        if (line.Contains("Powershell will pause until Migration is complete - 1"))
                        {
                            Thread.Sleep(180000);
                            User.AtPublicFolderMigrationViewForm().OpenDetailsByLocator(RunConfigurator.GetValueByXpath(
                                                                                            "//metaname[text()='client2']/..//metaname[text()='project2']/..//metaname[text()='entry4']/..//source"));
                            User.AtPublicFolderMigrationViewForm().SyncFromDetails();
                            User.AtPublicFolderMigrationViewForm().ConfirmSync();
                            User.AtPublicFolderMigrationViewForm().AssertDetailsSyncButtonIsDisabled();
                            User.AtPublicFolderMigrationViewForm().AssertDetailsStopButtonIsEnabled();
                            User.AtPublicFolderMigrationViewForm().WaitForProvisioningJobAppear(2);
                            User.AtPublicFolderMigrationViewForm().WaitForProvisioningJobDone();
                            User.AtPublicFolderMigrationViewForm().WaitForContentCopyJobAppear(2);
                            User.AtPublicFolderMigrationViewForm().WaitForContentCopyJobDone();
                            User.AtPublicFolderMigrationViewForm().VerifyProccessedFolders(RunConfigurator.GetValueByXpath("//metaname[text()='client2']/..//metaname[text()='project2']/..//metaname[text()='processed2']/..//amount"));
                            RunConfigurator.CreateEmptyFile(RunConfigurator.GetValueByXpath("//metaname[text()='client2']/..//metaname[text()='project2']/..//metaname[text()='stopfile1']/..//path"));
                        }
                        if (line.Contains("Powershell will pause until Migration is complete - 2"))
                        {
                            Thread.Sleep(180000);
                            try
                            {
                                User.AtPublicFolderMigrationViewForm().SyncFromDetails();
                            }
                            catch (Exception)
                            {
                                User.AtPublicFolderMigrationViewForm().RefreshData();
                                User.AtPublicFolderMigrationViewForm().SyncFromDetails();
                            }
                            User.AtPublicFolderMigrationViewForm().ConfirmSync();
                            User.AtPublicFolderMigrationViewForm().WaitForProvisioningJobAppear(3);
                            User.AtPublicFolderMigrationViewForm().WaitForProvisioningJobDone();
                            User.AtPublicFolderMigrationViewForm().WaitForContentCopyJobAppear(3);
                            User.AtPublicFolderMigrationViewForm().WaitForContentCopyJobDone();
                            RunConfigurator.CreateEmptyFile(RunConfigurator.GetValueByXpath("//metaname[text()='client2']/..//metaname[text()='project2']/..//metaname[text()='stopfile2']/..//path"));
                        }
                        if (line.Contains("Folder existance Check succeeded"))
                        {
                            Store.PfValidationDictionary["folderExistance"] = true;
                        }
                        if (line.Contains("Source Target Item existance Check succeeded"))
                        {
                            Store.PfValidationDictionary["itemExistance"] = true;
                        }
                        if (line.Contains("Add New MailFolder Check succeeded-1"))
                        {
                            Store.PfValidationDictionary["addMailFolder1"] = true;
                        }
                        if (line.Contains("Add New FolderTree Check succeeded-1"))
                        {
                            Store.PfValidationDictionary["addFolderTree1"] = true;
                        }
                        if (line.Contains("Add New MailFolder Check succeeded-2"))
                        {
                            Store.PfValidationDictionary["addMailFolder2"] = true;
                        }
                        if (line.Contains("Add New Contacts Check succeeded"))
                        {
                            Store.PfValidationDictionary["addContancs"] = true;
                        }
                        if (line.Contains("Add New Calendar Check succeeded"))
                        {
                            Store.PfValidationDictionary["addCalendar"] = true;
                        }
                        if (line.Contains("Add Folder to Test Folder Delete succeeded"))
                        {
                            Store.PfValidationDictionary["addFolderDelete"] = true;
                        }
                        if (line.Contains("Add Folder to Test Folder Move succeeded"))
                        {
                            Store.PfValidationDictionary["addFolderMove"] = true;
                        }
                        if (line.Contains("Add Folder to Test Folder Rename succeeded"))
                        {
                            Store.PfValidationDictionary["addFolderRename"] = true;
                        }
                        if (line.Contains("Add Item Test succeeded-1"))
                        {
                            Store.PfValidationDictionary["addNewItem1"] = true;
                        }
                        if (line.Contains("Add Item Test succeeded-2"))
                        {
                            Store.PfValidationDictionary["addNewItem2"] = true;
                        }
                        if (line.Contains("Add Item Test succeeded-3"))
                        {
                            Store.PfValidationDictionary["addNewItem3"] = true;
                        }
                        if (line.Contains("Add Contact Test succeeded"))
                        {
                            Store.PfValidationDictionary["addContact"] = true;
                        }
                        if (line.Contains("Add Meeting Test succeeded"))
                        {
                            Store.PfValidationDictionary["addMeeting"] = true;
                        }
                        if (line.Contains("Add Custom Item Test succeeded"))
                        {
                            Store.PfValidationDictionary["addCustomItem"] = true;
                        }
                        if (line.Contains("SMTP Address Rewriting Test succeeded"))
                        {
                            Store.PfValidationDictionary["smtpRewritting"] = true;
                        }
                        if (line.Contains("X400 Address Rewriting Test succeeded"))
                        {
                            Store.PfValidationDictionary["x400Rewritting"] = true;
                        }
                        if (line.Contains("Add Item Test succeeded-4"))
                        {
                            Store.PfValidationDictionary["addNewItem4"] = true;
                        }
                        if (line.Contains("Add PDL Test succeeded"))
                        {
                            Store.PfValidationDictionary["addPDL"] = true;
                        }
                        if (line.Contains("Validate Add Mail Folder succeeded-1"))
                        {
                            Store.PfValidationDictionary["validateAddMailFolder1"] = true;
                        }
                        if (line.Contains("Validate Add Mail FolderTree succeeded"))
                        {
                            Store.PfValidationDictionary["validateAddFolderTree"] = true;
                        }
                        if (line.Contains("Mail Enable Folder Test succeeded"))
                        {
                            Store.PfValidationDictionary["mailEnable"] = true;
                        }
                        if (line.Contains("Add SendAS Permission Test succeeded"))
                        {
                            Store.PfValidationDictionary["addSendAsPerms"] = true;
                        }
                        if (line.Contains("Add Proxy Address Test succeeded"))
                        {
                            Store.PfValidationDictionary["addProxy"] = true;
                        }
                        if (line.Contains("Validate Add Mail Folder succeeded-2"))
                        {
                            Store.PfValidationDictionary["validateAddMailFolder2"] = true;
                        }
                        if (line.Contains("Validate Add Contacts Folder succeeded"))
                        {
                            Store.PfValidationDictionary["validateAddContacts"] = true;
                        }
                        if (line.Contains("Validate Add Calendar Folder succeeded"))
                        {
                            Store.PfValidationDictionary["validateCalendar"] = true;
                        }
                        if (line.Contains("Validate Add Mail Folder succeeded-3"))
                        {
                            Store.PfValidationDictionary["validateAddMailFolder3"] = true;
                        }
                        if (line.Contains("Validate Add Item succeeded-1"))
                        {
                            Store.PfValidationDictionary["validateAddItem1"] = true;
                        }
                        if (line.Contains("Validate Add Contact succeeded"))
                        {
                            Store.PfValidationDictionary["validateAddContact"] = true;
                        }
                        if (line.Contains("Validate Add Meeting succeeded"))
                        {
                            Store.PfValidationDictionary["validateAddMeeting"] = true;
                        }
                        if (line.Contains("Validate Custom Item succeeded"))
                        {
                            Store.PfValidationDictionary["validateCustomItem"] = true;
                        }
                        if (line.Contains("Validate SMTP Transform succeeded"))
                        {
                            Store.PfValidationDictionary["validateSmtp"] = true;
                        }
                        if (line.Contains("Validate x400 Transform succeeded"))
                        {
                            Store.PfValidationDictionary["validatex400"] = true;
                        }
                        if (line.Contains("Validate Add Item succeeded-2"))
                        {
                            Store.PfValidationDictionary["validateAddItem2"] = true;
                        }
                        if (line.Contains("move Test succeeded"))
                        {
                            Store.PfValidationDictionary["validateMove"] = true;
                        }
                        if (line.Contains("Modify Folder Permissions Test succeeded"))
                        {
                            Store.PfValidationDictionary["modifyFoldersPerms"] = true;
                        }
                        if (line.Contains("Add Attachment Test succeeded"))
                        {
                            Store.PfValidationDictionary["addAttachment"] = true;
                        }
                        if (line.Contains("Modify Item Test succeeded"))
                        {
                            Store.PfValidationDictionary["modifyItem"] = true;
                        }
                        if (line.Contains("Modify Contact Item Test succeeded"))
                        {
                            Store.PfValidationDictionary["modifyContact"] = true;
                        }
                        if (line.Contains("Modify Sticky Note succeeded"))
                        {
                            Store.PfValidationDictionary["modifyNote"] = true;
                        }
                        if (line.Contains("Rename Folder succeeded"))
                        {
                            Store.PfValidationDictionary["folderRename"] = true;
                        }
                        if (line.Contains("Move Folder succeeded"))
                        {
                            Store.PfValidationDictionary["folderMove"] = true;
                        }
                        if (line.Contains("Delete Folder succeeded"))
                        {
                            Store.PfValidationDictionary["folderDelete"] = true;
                        }
                        if (line.Contains("Move Item succeeded"))
                        {
                            Store.PfValidationDictionary["moveItem"] = true;
                        }
                        if (line.Contains("Delete Item succeeded"))
                        {
                            Store.PfValidationDictionary["deleteItem"] = true;
                        }
                        if (line.Contains("Validate Modify Folder Permissions succeeded"))
                        {
                            Store.PfValidationDictionary["validateFolderPerms"] = true;
                        }
                        if (line.Contains("Validate Add Attachment succeeded"))
                        {
                            Store.PfValidationDictionary["validateAttachment"] = true;
                        }
                        if (line.Contains("Validate Modify Item Subject succeeded"))
                        {
                            Store.PfValidationDictionary["validateModifyItem"] = true;
                        }
                        if (line.Contains("Validate Modify Item contact succeeded"))
                        {
                            Store.PfValidationDictionary["validateModifyContact"] = true;
                        }
                        if (line.Contains("Validate Modify StickyNote succeeded"))
                        {
                            Store.PfValidationDictionary["validateModifyNote"] = true;
                        }
                        if (line.Contains("Validate rename folder succeeded"))
                        {
                            Store.PfValidationDictionary["validateRenameFolder"] = true;
                        }
                        if (line.Contains("Validate move folder succeeded"))
                        {
                            Store.PfValidationDictionary["validateMoveFolder"] = true;
                        }
                        if (line.Contains("Validate delete folder succeeded"))
                        {
                            Store.PfValidationDictionary["validateDeleteFolder"] = true;
                        }
                        if (line.Contains("Validate Move Item succeeded"))
                        {
                            Store.PfValidationDictionary["validateMoveItem"] = true;
                        }
                        if (line.Contains("Validate Delete Item succeeded"))
                        {
                            Store.PfValidationDictionary["validateDeleteItem"] = true;
                        }
                        if (line.Contains("Validate Mail Enable Folder succeeded"))
                        {
                            Store.PfValidationDictionary["validateMailEnable"] = true;
                        }
                        if (line.Contains("validate Add SendAS Permission succeeded"))
                        {
                            Store.PfValidationDictionary["validateAddSendAsPerms"] = true;
                        }
                        if (line.Contains("Validate Add Proxy Address validation succeeded"))
                        {
                            Store.PfValidationDictionary["validateProxy"] = true;
                        }
                    }
                    mainScript.WaitForExit(30000);
                }
                foreach (var check in Store.PfValidationDictionary)
                {
                    Assert.IsTrue(check.Value, check.Key + " check failed");
                }
            }
            catch (Exception)
            {
                LogHtml(Browser.GetDriver().PageSource);
                throw;
            }
        }