From 9665127b7213eb35eac58a081523a0d90bab8157 Mon Sep 17 00:00:00 2001 From: Sue Tairaku Date: Thu, 7 Mar 2024 14:45:20 -0800 Subject: [PATCH 1/9] Adding or improving list views and pagination --- .../Data/PIMS_Testing_Data.xlsx | Bin 101105 -> 101086 bytes .../Features/Contacts.feature | 5 +- .../Features/Contacts.feature.cs | 34 ++- .../PageObjects/AcquisitionDetails.cs | 26 ++- .../PageObjects/DispositionFileDetails.cs | 19 +- .../PageObjects/FinancialCodes.cs | 112 +++++----- .../PageObjects/LeaseDetails.cs | 43 ++-- .../PageObjects/ManageUsers.cs | 81 ++++++- .../PageObjects/ResearchFiles.cs | 37 ++-- .../PageObjects/SearchAcquisitionFiles.cs | 19 +- .../PageObjects/SearchContacts.cs | 208 ++++++++++-------- .../PageObjects/SearchDispositionFiles.cs | 2 +- .../PageObjects/SearchLease.cs | 70 +++++- .../PageObjects/SearchProjects.cs | 18 +- .../PageObjects/SearchResearchFiles.cs | 113 ++++++++-- .../PageObjects/SharedPagination.cs | 15 ++ .../StepDefinitions/AcquisitionFileSteps.cs | 18 +- .../StepDefinitions/AdminToolSteps.cs | 82 ++++++- .../StepDefinitions/ContactsSteps.cs | 100 ++++++++- .../StepDefinitions/DispositionFileSteps.cs | 13 ++ .../StepDefinitions/LeaseLicenseSteps.cs | 142 ++++++++---- .../StepDefinitions/ProjectSteps.cs | 18 +- .../StepDefinitions/ResearchFileSteps.cs | 125 +++++++++-- 23 files changed, 961 insertions(+), 339 deletions(-) diff --git a/testing/PIMS.Tests.Automation/Data/PIMS_Testing_Data.xlsx b/testing/PIMS.Tests.Automation/Data/PIMS_Testing_Data.xlsx index 1bd41592eb74fd6912c73946fd12de6f9ae061ef..4ef068e9abc6fe65d9b83106991e1bfa7a465b2f 100644 GIT binary patch delta 9124 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" row number Then No contacts results are found @@ -33,5 +32,9 @@ Scenario Outline: 03. Search for a non-existing Contact | Individual | 8 | | Organization | 6 | +Scenario: 04. Contacts List View + Given I verify the Contacts List View from row number 1 + Then Expected Content is displayed on Contacts Table from contact type "Organization" + diff --git a/testing/PIMS.Tests.Automation/Features/Contacts.feature.cs b/testing/PIMS.Tests.Automation/Features/Contacts.feature.cs index e66321ccad..af77464f64 100644 --- a/testing/PIMS.Tests.Automation/Features/Contacts.feature.cs +++ b/testing/PIMS.Tests.Automation/Features/Contacts.feature.cs @@ -173,7 +173,7 @@ public void _03_SearchForANon_ExistingContact(string contactType, string rowNumb argumentsOfScenario.Add("ContactType", contactType); argumentsOfScenario.Add("RowNumber", rowNumber); TechTalk.SpecFlow.ScenarioInfo scenarioInfo = new TechTalk.SpecFlow.ScenarioInfo("03. Search for a non-existing Contact", null, tagsOfScenario, argumentsOfScenario, featureTags); -#line 28 +#line 27 this.ScenarioInitialize(scenarioInfo); #line hidden if ((TagHelper.ContainsIgnoreTag(tagsOfScenario) || TagHelper.ContainsIgnoreTag(featureTags))) @@ -183,16 +183,44 @@ public void _03_SearchForANon_ExistingContact(string contactType, string rowNumb else { this.ScenarioStart(); -#line 29 +#line 28 testRunner.Given(string.Format("I search for an non-existing contact from type \"{0}\" row number {1}", contactType, rowNumber), ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "Given "); #line hidden -#line 30 +#line 29 testRunner.Then("No contacts results are found", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "Then "); #line hidden } this.ScenarioCleanup(); } + [Xunit.SkippableFactAttribute(DisplayName="04. Contacts List View")] + [Xunit.TraitAttribute("FeatureTitle", "Contacts")] + [Xunit.TraitAttribute("Description", "04. Contacts List View")] + public void _04_ContactsListView() + { + string[] tagsOfScenario = ((string[])(null)); + System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new System.Collections.Specialized.OrderedDictionary(); + TechTalk.SpecFlow.ScenarioInfo scenarioInfo = new TechTalk.SpecFlow.ScenarioInfo("04. Contacts List View", null, tagsOfScenario, argumentsOfScenario, featureTags); +#line 35 +this.ScenarioInitialize(scenarioInfo); +#line hidden + if ((TagHelper.ContainsIgnoreTag(tagsOfScenario) || TagHelper.ContainsIgnoreTag(featureTags))) + { + testRunner.SkipScenario(); + } + else + { + this.ScenarioStart(); +#line 36 + testRunner.Given("I verify the Contacts List View from row number 1", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "Given "); +#line hidden +#line 37 + testRunner.Then("Expected Content is displayed on Contacts Table from contact type \"Organization\"", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "Then "); +#line hidden + } + this.ScenarioCleanup(); + } + [System.CodeDom.Compiler.GeneratedCodeAttribute("TechTalk.SpecFlow", "3.9.0.0")] [System.Runtime.CompilerServices.CompilerGeneratedAttribute()] public class FixtureData : System.IDisposable diff --git a/testing/PIMS.Tests.Automation/PageObjects/AcquisitionDetails.cs b/testing/PIMS.Tests.Automation/PageObjects/AcquisitionDetails.cs index 51884aca5a..3e39f6a5fb 100644 --- a/testing/PIMS.Tests.Automation/PageObjects/AcquisitionDetails.cs +++ b/testing/PIMS.Tests.Automation/PageObjects/AcquisitionDetails.cs @@ -441,18 +441,20 @@ public void CancelAcquisitionFile() Wait(); ButtonElement("Cancel"); - try - { - WebDriverWait wait = new WebDriverWait(webDriver, TimeSpan.FromSeconds(3)); - if (wait.Until(ExpectedConditions.AlertIsPresent()) != null) - { - webDriver.SwitchTo().Alert().Accept(); - } - } - catch (WebDriverTimeoutException) - { - sharedModals.CancelActionModal(); - } + sharedModals.CancelActionModal(); + + //try + //{ + // WebDriverWait wait = new WebDriverWait(webDriver, TimeSpan.FromSeconds(3)); + // if (wait.Until(ExpectedConditions.AlertIsPresent()) != null) + // { + // webDriver.SwitchTo().Alert().Accept(); + // } + //} + //catch (WebDriverTimeoutException) + //{ + // sharedModals.CancelActionModal(); + //} } public string GetAcquisitionFileCode() diff --git a/testing/PIMS.Tests.Automation/PageObjects/DispositionFileDetails.cs b/testing/PIMS.Tests.Automation/PageObjects/DispositionFileDetails.cs index 8aae707b08..b7455528cc 100644 --- a/testing/PIMS.Tests.Automation/PageObjects/DispositionFileDetails.cs +++ b/testing/PIMS.Tests.Automation/PageObjects/DispositionFileDetails.cs @@ -414,14 +414,17 @@ public void CancelDispositionFile() { Wait(); ButtonElement("Cancel"); - - if (webDriver.FindElements(dispositionFileConfirmationModal).Count() > 0) - { - Assert.Equal("Confirm Changes", sharedModals.ModalHeader()); - Assert.Contains("If you choose to cancel now, your changes will not be saved.", sharedModals.ModalContent()); - Assert.Contains("Do you want to proceed?", sharedModals.ModalContent()); - sharedModals.ModalClickOKBttn(); - } + + sharedModals.CancelActionModal(); + + + //if (webDriver.FindElements(dispositionFileConfirmationModal).Count() > 0) + //{ + // Assert.Equal("Confirm Changes", sharedModals.ModalHeader()); + // Assert.Contains("If you choose to cancel now, your changes will not be saved.", sharedModals.ModalContent()); + // Assert.Contains("Do you want to proceed?", sharedModals.ModalContent()); + // sharedModals.ModalClickOKBttn(); + //} } public int IsCreateDispositionFileFormVisible() diff --git a/testing/PIMS.Tests.Automation/PageObjects/FinancialCodes.cs b/testing/PIMS.Tests.Automation/PageObjects/FinancialCodes.cs index de2e322b48..6536e1d076 100644 --- a/testing/PIMS.Tests.Automation/PageObjects/FinancialCodes.cs +++ b/testing/PIMS.Tests.Automation/PageObjects/FinancialCodes.cs @@ -6,78 +6,78 @@ namespace PIMS.Tests.Automation.PageObjects public class FinancialCodes : PageObjectBase { //Main Menu Element - private By financialCodeMainMenuLink = By.XPath("//a[contains(text(),'Manage Project and Financial Codes')]"); + private readonly By financialCodeMainMenuLink = By.XPath("//a[contains(text(),'Manage Project and Financial Codes')]"); //Financial Codes List View Elements //Financial Codes Filters Elements - private By financialCodeTitle = By.XPath("//h3[contains(text(),'Financial Codes')]"); - private By financialCodeTypeSelect = By.Id("input-financialCodeType"); - private By financialCodeDescriptionInput = By.Id("input-codeValueOrDescription"); - private By financialCodeShowExpiredInput = By.Id("input-showExpiredCodes"); - private By financialCodeShowExpiredSpan = By.XPath("//span[contains(text(),'Show expired codes')]"); - private By financialCodeSearchBttn = By.Id("search-button"); - private By financialCodeResetBttn = By.Id("reset-button"); + private readonly By financialCodeTitle = By.XPath("//h3[contains(text(),'Financial Codes')]"); + private readonly By financialCodeTypeSelect = By.Id("input-financialCodeType"); + private readonly By financialCodeDescriptionInput = By.Id("input-codeValueOrDescription"); + private readonly By financialCodeShowExpiredInput = By.Id("input-showExpiredCodes"); + private readonly By financialCodeShowExpiredSpan = By.XPath("//span[contains(text(),'Show expired codes')]"); + private readonly By financialCodeSearchBttn = By.Id("search-button"); + private readonly By financialCodeResetBttn = By.Id("reset-button"); - private By financialCodeCreateNewBttn = By.XPath("//div[@data-testid='FinancialCodeTable']/preceding-sibling::button"); + private readonly By financialCodeCreateNewBttn = By.XPath("//div[@data-testid='FinancialCodeTable']/preceding-sibling::button"); //Financial Codes Table - private By financialCodeTableHeaderCodeValue = By.XPath("//div[@data-testid='FinancialCodeTable']/div[@class='thead thead-light']/div/div/div[contains(text(),'Code value')]"); - private By financialCodeTableCodeSortBttn = By.CssSelector("div[data-testid='sort-column-code']"); - private By financialCodeTableHeaderCodeDescription = By.XPath("//div[@data-testid='FinancialCodeTable']/div[@class='thead thead-light']/div/div/div[contains(text(),'Code description')]"); - private By financialCodeTableDescriptionSortBttn = By.CssSelector("div[data-testid='sort-column-description']"); - private By financialCodeTableHeaderCodeType = By.XPath("//div[@data-testid='FinancialCodeTable']/div[@class='thead thead-light']/div/div/div[contains(text(),'Code type')]"); - private By financialCodeTableTypeSortBttn = By.CssSelector("div[data-testid='sort-column-type']"); - private By financialCodeTableHeaderEffectiveDate = By.XPath("//div[@data-testid='FinancialCodeTable']/div[@class='thead thead-light']/div/div/div[contains(text(),'Effective date')]"); - private By financialCodeTableEffectiveDateSortBttn = By.CssSelector("div[data-testid='sort-column-effectiveDate']"); - private By financialCodeTableHeaderExpiryDate = By.XPath("//div[@data-testid='FinancialCodeTable']/div[@class='thead thead-light']/div/div/div[contains(text(),'Expiry date')]"); - private By financialCodeTableExpiryDateSortBttn = By.CssSelector("div[data-testid='sort-column-expiryDate']"); - private By financialCodeTableResultsTotal = By.XPath("//div[@data-testid='FinancialCodeTable']/div[@class='tbody']/div[@class='tr-wrapper']"); - - private By financialResults1stResultCodeValue = By.XPath("//div[@data-testid='FinancialCodeTable']/div[@class='tbody']/div[@class='tr-wrapper'][1]/div/div[1]/a"); - private By financialResults1stResultCodeDescription = By.XPath("//div[@data-testid='FinancialCodeTable']/div[@class='tbody']/div[@class='tr-wrapper'][1]/div/div[2]"); - private By financialResults1stResultCodeType = By.XPath("//div[@data-testid='FinancialCodeTable']/div[@class='tbody']/div[@class='tr-wrapper'][1]/div/div[3]"); - private By financialResults1stResultEffectiveDate = By.XPath("//div[@data-testid='FinancialCodeTable']/div[@class='tbody']/div[@class='tr-wrapper'][1]/div/div[4]"); - private By financialResults1stResultExpiryDate = By.XPath("//div[@data-testid='FinancialCodeTable']/div[@class='tbody']/div[@class='tr-wrapper'][1]/div/div[5]"); - - private By financialCodePaginationEntries = By.CssSelector("div[class='Menu-root']"); - private By financialCodePaginationList = By.CssSelector("ul[class='pagination']"); + private readonly By financialCodeTableHeaderCodeValue = By.XPath("//div[@data-testid='FinancialCodeTable']/div[@class='thead thead-light']/div/div/div[contains(text(),'Code value')]"); + private readonly By financialCodeTableCodeSortBttn = By.CssSelector("div[data-testid='sort-column-code']"); + private readonly By financialCodeTableHeaderCodeDescription = By.XPath("//div[@data-testid='FinancialCodeTable']/div[@class='thead thead-light']/div/div/div[contains(text(),'Code description')]"); + private readonly By financialCodeTableDescriptionSortBttn = By.CssSelector("div[data-testid='sort-column-description']"); + private readonly By financialCodeTableHeaderCodeType = By.XPath("//div[@data-testid='FinancialCodeTable']/div[@class='thead thead-light']/div/div/div[contains(text(),'Code type')]"); + private readonly By financialCodeTableTypeSortBttn = By.CssSelector("div[data-testid='sort-column-type']"); + private readonly By financialCodeTableHeaderEffectiveDate = By.XPath("//div[@data-testid='FinancialCodeTable']/div[@class='thead thead-light']/div/div/div[contains(text(),'Effective date')]"); + private readonly By financialCodeTableEffectiveDateSortBttn = By.CssSelector("div[data-testid='sort-column-effectiveDate']"); + private readonly By financialCodeTableHeaderExpiryDate = By.XPath("//div[@data-testid='FinancialCodeTable']/div[@class='thead thead-light']/div/div/div[contains(text(),'Expiry date')]"); + private readonly By financialCodeTableExpiryDateSortBttn = By.CssSelector("div[data-testid='sort-column-expiryDate']"); + private readonly By financialCodeTableResultsTotal = By.XPath("//div[@data-testid='FinancialCodeTable']/div[@class='tbody']/div[@class='tr-wrapper']"); + + private readonly By financialResults1stResultCodeValue = By.XPath("//div[@data-testid='FinancialCodeTable']/div[@class='tbody']/div[@class='tr-wrapper'][1]/div/div[1]/a"); + private readonly By financialResults1stResultCodeDescription = By.XPath("//div[@data-testid='FinancialCodeTable']/div[@class='tbody']/div[@class='tr-wrapper'][1]/div/div[2]"); + private readonly By financialResults1stResultCodeType = By.XPath("//div[@data-testid='FinancialCodeTable']/div[@class='tbody']/div[@class='tr-wrapper'][1]/div/div[3]"); + private readonly By financialResults1stResultEffectiveDate = By.XPath("//div[@data-testid='FinancialCodeTable']/div[@class='tbody']/div[@class='tr-wrapper'][1]/div/div[4]"); + private readonly By financialResults1stResultExpiryDate = By.XPath("//div[@data-testid='FinancialCodeTable']/div[@class='tbody']/div[@class='tr-wrapper'][1]/div/div[5]"); + + private readonly By financialCodePaginationEntries = By.CssSelector("div[class='Menu-root']"); + private readonly By financialCodePaginationList = By.CssSelector("ul[class='pagination']"); //Financial Codes Create/Update Form Elements - private By financialCodeCreateTitle = By.XPath("//h1[contains(text(),'Create Financial Code')]"); - private By financialCodeUpdateTitle = By.XPath("//h1[contains(text(),'Update Financial Code')]"); + private readonly By financialCodeCreateTitle = By.XPath("//h1[contains(text(),'Create Financial Code')]"); + private readonly By financialCodeUpdateTitle = By.XPath("//h1[contains(text(),'Update Financial Code')]"); - private By financialCodeFormTypeLabel = By.XPath("//label[contains(text(),'Code type')]"); - private By financialCodeFormTypeSelect = By.Id("input-type"); - private By financialCodeFormTypeErrorMessage = By.XPath("//div[contains(text(),'Code type is required')]"); + private readonly By financialCodeFormTypeLabel = By.XPath("//label[contains(text(),'Code type')]"); + private readonly By financialCodeFormTypeSelect = By.Id("input-type"); + private readonly By financialCodeFormTypeErrorMessage = By.XPath("//div[contains(text(),'Code type is required')]"); - private By financialCodeFormValueLabel = By.XPath("//label[contains(text(),'Code value')]"); - private By financialCodeFormValueInput = By.Id("input-code"); - private By financialCodeFormValueErrorMessage = By.XPath("//div[contains(text(),'Code value is required')]"); - private By financialCodeFormValueContent = By.XPath("//label[contains(text(),'Code type')]/parent::div/following-sibling::div/span"); + private readonly By financialCodeFormValueLabel = By.XPath("//label[contains(text(),'Code value')]"); + private readonly By financialCodeFormValueInput = By.Id("input-code"); + private readonly By financialCodeFormValueErrorMessage = By.XPath("//div[contains(text(),'Code value is required')]"); + private readonly By financialCodeFormValueContent = By.XPath("//label[contains(text(),'Code type')]/parent::div/following-sibling::div/span"); - private By financialCodeFormDescriptionLabel = By.XPath("//label[contains(text(),'Code description')]"); - private By financialCodeFormDescriptionInput = By.Id("input-description"); - private By financialCodeFormDescriptionErrorMessage = By.XPath("//div[contains(text(),'Code description is required')]"); + private readonly By financialCodeFormDescriptionLabel = By.XPath("//label[contains(text(),'Code description')]"); + private readonly By financialCodeFormDescriptionInput = By.Id("input-description"); + private readonly By financialCodeFormDescriptionErrorMessage = By.XPath("//div[contains(text(),'Code description is required')]"); - private By financialCodeFormEffectiveDateLabel = By.XPath("//label[contains(text(),'Effective date')]"); - private By financialCodeFormEffectiveDateTooltip = By.XPath("//label[contains(text(),'Effective date')]/span/span[@data-testid='tooltip-icon-section-field-tooltip']"); - private By financialCodeFormEffectiveDateInput = By.Id("datepicker-effectiveDate"); + private readonly By financialCodeFormEffectiveDateLabel = By.XPath("//label[contains(text(),'Effective date')]"); + private readonly By financialCodeFormEffectiveDateTooltip = By.XPath("//label[contains(text(),'Effective date')]/span/span[@data-testid='tooltip-icon-section-field-tooltip']"); + private readonly By financialCodeFormEffectiveDateInput = By.Id("datepicker-effectiveDate"); - private By financialCodeFormExpiryDateLabel = By.XPath("//label[contains(text(),'Expiry date')]"); - private By financialCodeFormExpiryDateTooltip = By.XPath("//label[contains(text(),'Expiry date')]/span/span[@data-testid='tooltip-icon-section-field-tooltip']"); - private By financialCodeFormExpiryDateInput = By.Id("datepicker-expiryDate"); + private readonly By financialCodeFormExpiryDateLabel = By.XPath("//label[contains(text(),'Expiry date')]"); + private readonly By financialCodeFormExpiryDateTooltip = By.XPath("//label[contains(text(),'Expiry date')]/span/span[@data-testid='tooltip-icon-section-field-tooltip']"); + private readonly By financialCodeFormExpiryDateInput = By.Id("datepicker-expiryDate"); - private By financialCodeFormOrderLabel = By.XPath("//label[contains(text(),'Display order')]"); - private By financialCodeFormOrderInput = By.Id("input-displayOrder"); + private readonly By financialCodeFormOrderLabel = By.XPath("//label[contains(text(),'Display order')]"); + private readonly By financialCodeFormOrderInput = By.Id("input-displayOrder"); - private By financialCodeFormCancelBttn = By.XPath("//div[contains(text(),'Cancel')]/parent::button"); - private By financialCodeFormSaveBttn = By.XPath("//div[contains(text(),'Save')]/parent::button"); + private readonly By financialCodeFormCancelBttn = By.XPath("//div[contains(text(),'Cancel')]/parent::button"); + private readonly By financialCodeFormSaveBttn = By.XPath("//div[contains(text(),'Save')]/parent::button"); //Financial Code Confirmation Modal - private By financialCodeModal = By.CssSelector("div[class='modal-content']"); + private readonly By financialCodeModal = By.CssSelector("div[class='modal-content']"); //Financial Code Error Message - private By financialCodeDuplicateErrorMessage = By.XPath("//div[contains(text(),'Cannot create duplicate financial code')]"); + private readonly By financialCodeDuplicateErrorMessage = By.XPath("//div[contains(text(),'Cannot create duplicate financial code')]"); private SharedModals sharedModals; @@ -128,7 +128,7 @@ public void CancelFinancialCode() webDriver.FindElement(financialCodeFormCancelBttn).Click(); Wait(); - if (webDriver.FindElements(financialCodeModal).Count() > 0) + if (webDriver.FindElements(financialCodeModal).Count > 0) { Assert.Equal("Confirm Changes", sharedModals.ModalHeader()); Assert.Contains("If you choose to cancel now, your changes will not be saved.", sharedModals.ModalContent()); @@ -191,7 +191,7 @@ public void OrderByFinancialCodeExpiryDate() public int CountTotalFinancialCodeResults() { WaitUntilTableSpinnerDisappear(); - return webDriver.FindElements(financialCodeTableResultsTotal).Count(); + return webDriver.FindElements(financialCodeTableResultsTotal).Count; } public Boolean DuplicateErrorMessageDisplayed() @@ -253,7 +253,7 @@ public void VerifyFinancialCodeListView() AssertTrueIsDisplayed(financialCodeTableHeaderEffectiveDate); AssertTrueIsDisplayed(financialCodeTableHeaderExpiryDate); - Assert.True(webDriver.FindElements(financialCodeTableResultsTotal).Count() > 0); + Assert.True(webDriver.FindElements(financialCodeTableResultsTotal).Count > 0); AssertTrueIsDisplayed(financialCodePaginationEntries); AssertTrueIsDisplayed(financialCodePaginationList); diff --git a/testing/PIMS.Tests.Automation/PageObjects/LeaseDetails.cs b/testing/PIMS.Tests.Automation/PageObjects/LeaseDetails.cs index 78dad5a8c5..dd370687fc 100644 --- a/testing/PIMS.Tests.Automation/PageObjects/LeaseDetails.cs +++ b/testing/PIMS.Tests.Automation/PageObjects/LeaseDetails.cs @@ -610,27 +610,28 @@ public void SaveLicense() public void CancelLicense() { ButtonElement("Cancel"); - - try - { - WebDriverWait wait = new WebDriverWait(webDriver, TimeSpan.FromSeconds(3)); - if (wait.Until(ExpectedConditions.AlertIsPresent()) != null) - { - webDriver.SwitchTo().Alert().Accept(); - } - } - catch (WebDriverTimeoutException) - { - //if (webDriver.FindElements(licenseDetailsConfirmationModal).Count() > 0) - //{ - // Assert.Equal("Confirm Changes", sharedModals.ModalHeader()); - // Assert.Contains("If you choose to cancel now, your changes will not be saved.", sharedModals.ModalContent()); - // Assert.Contains("Do you want to proceed?", sharedModals.ModalContent()); - - // sharedModals.ModalClickOKBttn(); - //} - sharedModals.CancelActionModal(); - } + sharedModals.CancelActionModal(); + + //try + //{ + // WebDriverWait wait = new WebDriverWait(webDriver, TimeSpan.FromSeconds(3)); + // if (wait.Until(ExpectedConditions.AlertIsPresent()) != null) + // { + // webDriver.SwitchTo().Alert().Accept(); + // } + //} + //catch (WebDriverTimeoutException) + //{ + // //if (webDriver.FindElements(licenseDetailsConfirmationModal).Count() > 0) + // //{ + // // Assert.Equal("Confirm Changes", sharedModals.ModalHeader()); + // // Assert.Contains("If you choose to cancel now, your changes will not be saved.", sharedModals.ModalContent()); + // // Assert.Contains("Do you want to proceed?", sharedModals.ModalContent()); + + // // sharedModals.ModalClickOKBttn(); + // //} + // sharedModals.CancelActionModal(); + //} } public string GetLeaseCode() diff --git a/testing/PIMS.Tests.Automation/PageObjects/ManageUsers.cs b/testing/PIMS.Tests.Automation/PageObjects/ManageUsers.cs index 0dfafccd27..157b17eb57 100644 --- a/testing/PIMS.Tests.Automation/PageObjects/ManageUsers.cs +++ b/testing/PIMS.Tests.Automation/PageObjects/ManageUsers.cs @@ -8,9 +8,6 @@ public class ManageUsers : PageObjectBase private By mainMenuAdminToolLink = By.XPath("//label[contains(text(),'Admin Tools')]/parent::a"); private By adminSubmenuManageUserLink = By.XPath("//a[contains(text(),'Manage Users')]"); - private By adminSubmenuManageAccessLink = By.XPath("//a[contains(text(),'Manage Access Requests')]"); - private By adminSubmenuCDOGSLink = By.XPath("//a[contains(text(),'Manage Activity Document Templates')]"); - private By adminSubmenuFinancialCodesLink = By.XPath("//a[contains(text(),'Manage Financial Codes')]"); //User Management List View Elements private By userManagementRoleSelect = By.Id("input-role"); @@ -23,15 +20,33 @@ public class ManageUsers : PageObjectBase private By userManagerShowActiveUserLabel = By.XPath("//span[contains(text(),'Show active users only')]"); private By userManagerExportExcelBttn = By.CssSelector("div[class='align-items-center d-flex col-md-4'] button"); + //Table Header Elements private By userManagerHeaderActiveColumn = By.XPath("//div[@data-testid='usersTable']/div[@class='thead thead-light']/div/div/div[contains(text(),'Active')]"); private By userManagerHeaderIdirColumn = By.XPath("//div[@data-testid='usersTable']/div[@class='thead thead-light']/div/div/div[contains(text(),'IDIR/BCeID')]"); + private By userManagerHeaderOrderByIDIRBttn = By.CssSelector("div[data-testid='sort-column-businessIdentifierValue']"); private By userManagerHeaderFirstNameColumn = By.XPath("//div[@data-testid='usersTable']/div[@class='thead thead-light']/div/div/div[contains(text(),'First name')]"); + private By userManagerHeaderOrderByFirstNameBttn = By.CssSelector("div[data-testid='sort-column-firstName']"); private By userManagerHeaderLastNameColumn = By.XPath("//div[@data-testid='usersTable']/div[@class='thead thead-light']/div/div/div[contains(text(),'Last name')]"); + private By userManagerHeaderOrderByLastNameBttn = By.CssSelector("div[data-testid='sort-column-surname']"); private By userManagerHeaderEmailColumn = By.XPath("//div[@data-testid='usersTable']/div[@class='thead thead-light']/div/div/div[contains(text(),'Email')]"); + private By userManagerHeaderOrderByEmailBttn = By.CssSelector("div[data-testid='sort-column-email']"); private By userManagerHeaderPositionColumn = By.XPath("//div[@data-testid='usersTable']/div[@class='thead thead-light']/div/div/div[contains(text(),'Position')]"); + private By userManagerHeaderOrderByPositionBttn = By.CssSelector("div[data-testid='sort-column-position']"); private By userManagerHeaderRolesColumn = By.XPath("//div[@data-testid='usersTable']/div[@class='thead thead-light']/div/div/div[contains(text(),'Roles')]"); private By userManagerHeaderRegionColumn = By.XPath("//div[@data-testid='usersTable']/div[@class='thead thead-light']/div/div/div[contains(text(),'MoTI region(s)')]"); private By userManagerHeaderLastLoginColumn = By.XPath("//div[@data-testid='usersTable']/div[@class='thead thead-light']/div/div/div[contains(text(),'Last login')]"); + + //Table 1st Result by Column Elements + private By userManager1stIDIRContent = By.CssSelector("div[data-testid='usersTable'] div[class='tbody'] div[class='tr-wrapper']:first-child div:nth-child(2) a"); + private By userManager1stFirstNameContent = By.CssSelector("div[data-testid='usersTable'] div[class='tbody'] div[class='tr-wrapper']:first-child div[class='td clickable']:nth-child(3)"); + private By userManager1stLastNameContent = By.CssSelector("div[data-testid='usersTable'] div[class='tbody'] div[class='tr-wrapper']:first-child div[class='td clickable']:nth-child(4)"); + private By userManager1stEmailContent = By.CssSelector("div[data-testid='usersTable'] div[class='tbody'] div[class='tr-wrapper']:first-child div[class='td clickable']:nth-child(5)"); + private By userManager1stPositionContent = By.CssSelector("div[data-testid='usersTable'] div[class='tbody'] div[class='tr-wrapper']:first-child div[class='td clickable']:nth-child(6)"); + private By userManager1stUserTypeContent = By.CssSelector("div[data-testid='usersTable'] div[class='tbody'] div[class='tr-wrapper']:first-child div[class='td clickable']:nth-child(7)"); + private By userManager1stRolesContent = By.CssSelector("div[data-testid='usersTable'] div[class='tbody'] div[class='tr-wrapper']:first-child div[class='td clickable']:nth-child(8)"); + private By userManager1stMOTIRegionContent = By.CssSelector("div[data-testid='usersTable'] div[class='tbody'] div[class='tr-wrapper']:first-child div[class='td clickable']:nth-child(9)"); + private By userManager1stLastLoginContent = By.CssSelector("div[data-testid='usersTable'] div[class='tbody'] div[class='tr-wrapper']:first-child div[class='td clickable']:nth-child(10)"); + private By userManagerTableResults = By.XPath("//div[@data-testid='usersTable']/div[@class='tbody']/div"); private By userManagerEntriesByPage = By.CssSelector("div[class='align-self-center col-auto'] div[class='Menu-root']"); @@ -61,6 +76,66 @@ public void ResetDefaultListView() webDriver.FindElement(userManagementResetButton).Click(); } + public void OrderByUserIDIR() + { + WaitUntilClickable(userManagerHeaderOrderByIDIRBttn); + webDriver.FindElement(userManagerHeaderOrderByIDIRBttn).Click(); + } + + public void OrderByUserFirstName() + { + WaitUntilClickable(userManagerHeaderOrderByFirstNameBttn); + webDriver.FindElement(userManagerHeaderOrderByFirstNameBttn).Click(); + } + + public void OrderByUserLastName() + { + WaitUntilClickable(userManagerHeaderOrderByLastNameBttn); + webDriver.FindElement(userManagerHeaderOrderByLastNameBttn).Click(); + } + + public void OrderByUserMail() + { + WaitUntilClickable(userManagerHeaderOrderByEmailBttn); + webDriver.FindElement(userManagerHeaderOrderByEmailBttn).Click(); + } + + public void OrderByUserPosition() + { + WaitUntilClickable(userManagerHeaderOrderByPositionBttn); + webDriver.FindElement(userManagerHeaderOrderByPositionBttn).Click(); + } + + public string FirstUserIDIR() + { + WaitUntilTableSpinnerDisappear(); + return webDriver.FindElement(userManager1stIDIRContent).Text; + } + + public string FirstUserFirstName() + { + WaitUntilTableSpinnerDisappear(); + return webDriver.FindElement(userManager1stFirstNameContent).Text; + } + + public string FirstUserLastName() + { + WaitUntilTableSpinnerDisappear(); + return webDriver.FindElement(userManager1stLastNameContent).Text; + } + + public string FirstUserEmail() + { + WaitUntilTableSpinnerDisappear(); + return webDriver.FindElement(userManager1stEmailContent).Text; + } + + public string FirstUserPosition() + { + WaitUntilTableSpinnerDisappear(); + return webDriver.FindElement(userManager1stPositionContent).Text; + } + public void FilterUsers(string idir, string region) { WaitUntilVisible(userManagementResetButton); diff --git a/testing/PIMS.Tests.Automation/PageObjects/ResearchFiles.cs b/testing/PIMS.Tests.Automation/PageObjects/ResearchFiles.cs index 2e7c02102d..9f2198b5ea 100644 --- a/testing/PIMS.Tests.Automation/PageObjects/ResearchFiles.cs +++ b/testing/PIMS.Tests.Automation/PageObjects/ResearchFiles.cs @@ -538,24 +538,25 @@ public void SaveResearchFileProperties() public void CancelResearchFile() { ButtonElement("Cancel"); - - try { - WebDriverWait wait = new WebDriverWait(webDriver, TimeSpan.FromSeconds(3)); - if (wait.Until(ExpectedConditions.AlertIsPresent()) != null) - { - webDriver.SwitchTo().Alert().Accept(); - } - } catch (WebDriverTimeoutException) - { - if (webDriver.FindElements(researchFileConfirmationModal).Count() > 0) - { - Assert.Equal("Confirm Changes", sharedModals.ModalHeader()); - Assert.Contains("If you choose to cancel now, your changes will not be saved.", sharedModals.ModalContent()); - Assert.Contains("Do you want to proceed?", sharedModals.ModalContent()); - - sharedModals.ModalClickOKBttn(); - } - } + sharedModals.CancelActionModal(); + + //try { + // WebDriverWait wait = new WebDriverWait(webDriver, TimeSpan.FromSeconds(3)); + // if (wait.Until(ExpectedConditions.AlertIsPresent()) != null) + // { + // webDriver.SwitchTo().Alert().Accept(); + // } + //} catch (WebDriverTimeoutException) + //{ + // if (webDriver.FindElements(researchFileConfirmationModal).Count() > 0) + // { + // Assert.Equal("Confirm Changes", sharedModals.ModalHeader()); + // Assert.Contains("If you choose to cancel now, your changes will not be saved.", sharedModals.ModalContent()); + // Assert.Contains("Do you want to proceed?", sharedModals.ModalContent()); + + // sharedModals.ModalClickOKBttn(); + // } + //} } //Get the research file number diff --git a/testing/PIMS.Tests.Automation/PageObjects/SearchAcquisitionFiles.cs b/testing/PIMS.Tests.Automation/PageObjects/SearchAcquisitionFiles.cs index 9579c1ccc0..2da2b66dae 100644 --- a/testing/PIMS.Tests.Automation/PageObjects/SearchAcquisitionFiles.cs +++ b/testing/PIMS.Tests.Automation/PageObjects/SearchAcquisitionFiles.cs @@ -82,23 +82,6 @@ public void SearchAcquisitionFileByAFile(string AFile) FocusAndClick(searchAcquisitionFileSearchButton); } - public void SearchLastAcquisitionFile() - { - Wait(2000); - webDriver.FindElement(searchAcquisitionFileResetButton).Click(); - - Wait(2000); - ChooseSpecificSelectOption(searchAcquisitionFileStatusSelect, "All Status"); - webDriver.FindElement(searchAcquisitionFileNameInput).SendKeys("Automated"); - webDriver.FindElement(searchAcquisitionFileSearchButton).Click(); - - WaitUntilClickable(searchAcquisitionOrderFileNumberBttn); - webDriver.FindElement(searchAcquisitionOrderFileNumberBttn).Click(); - - Wait(); - webDriver.FindElement(searchAcquisitionOrderFileNumberBttn).Click(); - } - public void OrderByAcquisitionFileNumber() { WaitUntilClickable(searchAcquisitionOrderFileNumberBttn); @@ -128,7 +111,7 @@ public void SelectFirstOption() public void FilterAcquisitionFiles(string pid = "", string pin = "", string address = "", string name = "", string teamMember = "", string status = "", string project = "") { - Wait(10000); + Wait(5000); webDriver.FindElement(searchAcquisitionFileResetButton).Click(); Wait(); diff --git a/testing/PIMS.Tests.Automation/PageObjects/SearchContacts.cs b/testing/PIMS.Tests.Automation/PageObjects/SearchContacts.cs index 7ca93e844a..fcae21a16c 100644 --- a/testing/PIMS.Tests.Automation/PageObjects/SearchContacts.cs +++ b/testing/PIMS.Tests.Automation/PageObjects/SearchContacts.cs @@ -1,5 +1,5 @@ using OpenQA.Selenium; -using PIMS.Tests.Automation.Classes; +using System.Security.Cryptography; namespace PIMS.Tests.Automation.PageObjects { @@ -18,14 +18,18 @@ public class SearchContacts : PageObjectBase private By searchContactActiveSpan = By.XPath("//span[contains(text(),'Show active contacts only')]"); private By searchContactAddNewBttn = By.XPath("//span[contains(text(),'Add new contact')]/parent::div/parent::button"); - private By searchContactTable = By.CssSelector("div[data-testid='contactsTable']"); private By searchContactTableSummaryColumn = By.XPath("//div[contains(text(),'Summary')]"); + private By searchContactOrderBySummaryBttn = By.CssSelector("div[data-testid='sort-column-summary']"); private By searchContactTableFirstNameColumn = By.XPath("//div[contains(text(),'First name')]"); + private By searchContactOrderByFirstNameBttn = By.CssSelector("div[data-testid='sort-column-firstName']"); private By searchContactTableLastNameColumn = By.XPath("//div[contains(text(),'Last name')]"); + private By searchContactOrderByLastNameBttn = By.CssSelector("div[data-testid='sort-column-surname']"); private By searchContactTableOrganizationColumn = By.XPath("//div[contains(text(),'Organization')]"); + private By searchContactOrderByOrganizationBttn = By.CssSelector("div[data-testid='sort-column-organizationName']"); private By searchContactTableEmailColumn = By.XPath("//div[contains(text(),'E-mail')]"); private By searchContactTableMailingAddressColumn = By.XPath("//div[contains(text(),'Mailing address')]"); private By searchContactTableCityColumn = By.XPath("//div[contains(text(),'City')]"); + private By searchContactOrderByCityBttn = By.CssSelector("div[data-testid='sort-column-municipalityName']"); private By searchContactTableProvinceColumn = By.XPath("//div[contains(text(),'Prov')]"); private By searchContactTableUpdateViewColumn = By.XPath("//div[contains(text(),'Update/View')]"); private By searchContactNoResults = By.CssSelector("div[class='no-rows-message']"); @@ -33,15 +37,18 @@ public class SearchContacts : PageObjectBase private By searchContactMenuItems = By.CssSelector("div[class='Menu-root']"); private By searchContactPaginationList = By.CssSelector("ul[class='pagination']"); - private By searchContactLoadingResultTable = By.CssSelector("div[data-testid='contactsTable'] div[class='table-loading'] div[title='table-loading']"); - private By searchContactFirstResultLink = By.CssSelector("div[class='tr-wrapper']:nth-child(1) div:nth-child(3) a"); - private By searchContactFirstNameDiv = By.CssSelector("div[class='tr-wrapper']:nth-child(1) div:nth-child(4)"); - private By searchContactFirstLastNameDiv = By.CssSelector("div[class='tr-wrapper']:nth-child(1) div:nth-child(5)"); - private By searchContactFirstOrganizationDiv = By.CssSelector("div[class='tr-wrapper']:nth-child(1) div:nth-child(6)"); - private By searchContactFirstEmailDiv = By.CssSelector("div[class='tr-wrapper']:nth-child(1) div:nth-child(7)"); - private By searchContactFirstMailAddressDiv = By.CssSelector("div[class='tr-wrapper']:nth-child(1) div:nth-child(8)"); - private By searchContactFirstCityDiv = By.CssSelector("div[class='tr-wrapper']:nth-child(1) div:nth-child(9)"); - private By searchContactFirstProvinceDiv = By.CssSelector("div[class='tr-wrapper']:nth-child(1) div:nth-child(10)"); + //First result cell elements + private By searchContactTableContent = By.CssSelector("div[data-testid='contactsTable'] div[class='tbody'] div[class='tr-wrapper']"); + private By searchContact1stRowResult = By.CssSelector("div[data-testid='contactsTable'] div[class='tbody'] div[class='tr-wrapper']:first-child"); + private By searchContact1stResultLink = By.CssSelector("div[class='tr-wrapper']:nth-child(1) div:nth-child(3) a"); + private By searchContact1stFirstNameContent = By.CssSelector("div[class='tr-wrapper']:nth-child(1) div:nth-child(4)"); + private By searchContact1stLastNameContent = By.CssSelector("div[class='tr-wrapper']:nth-child(1) div:nth-child(5)"); + private By searchContact1stOrganizationContent = By.CssSelector("div[class='tr-wrapper']:nth-child(1) div:nth-child(6)"); + private By searchContact1stEmailContent = By.CssSelector("div[class='tr-wrapper']:nth-child(1) div:nth-child(7)"); + private By searchContact1stMailAddressContent = By.CssSelector("div[class='tr-wrapper']:nth-child(1) div:nth-child(8)"); + private By searchContact1stCityContent = By.CssSelector("div[class='tr-wrapper']:nth-child(1) div:nth-child(9)"); + private By searchContact1stProvinceContent = By.CssSelector("div[class='tr-wrapper']:nth-child(1) div:nth-child(10)"); + private By searchContactUpdateBttn = By.CssSelector("div[class='tr-wrapper']:nth-child(1) div:nth-child(11) button:nth-child(1)"); private By searchContactViewBttn = By.CssSelector("div[class='tr-wrapper']:nth-child(1) div:nth-child(11) button:nth-child(2)"); @@ -55,8 +62,6 @@ public SearchContacts(IWebDriver webDriver) : base(webDriver) //Navigates to Search a Contact public void NavigateToSearchContact() { - //Wait(3000); - WaitUntilClickable(menuContactsButton); FocusAndClick(menuContactsButton); @@ -65,32 +70,27 @@ public void NavigateToSearchContact() } //Search For a general contact - public void SearchGeneralContact(string searchCriteria) + public void FilterContacts(string contactType = "", string summary = "", string city = "") { - WaitUntilDisappear(searchContactLoadingResultTable); - - WaitUntilClickable(searchContactNameInput); - webDriver.FindElement(searchContactNameInput).SendKeys(searchCriteria); - webDriver.FindElement(searchContactResultsBttn).Click(); - } + Wait(); - //Search for an Individual Contact - public void SearchIndividualContact(string searchCriteria) - { - FocusAndClick(searchContactIndRadioBttn); - webDriver.FindElement(searchContactNameInput).SendKeys(searchCriteria); + webDriver.FindElement(searchContactResetBttn).Click(); Wait(); - webDriver.FindElement(searchContactResultsBttn).Click(); - } + if (contactType != "") + { + if(contactType == "Individual") + FocusAndClick(searchContactIndRadioBttn); + else + FocusAndClick(searchContactOrgRadioBttn); + } - //Search for an Organization Contact - public void SearchOrganizationContact(string searchCriteria) - { - Wait(); + if(summary != "") + webDriver.FindElement(searchContactNameInput).SendKeys(summary); + + if(city != "") + webDriver.FindElement(searchContactCityInput).SendKeys(city); - FocusAndClick(searchContactOrgRadioBttn); - webDriver.FindElement(searchContactNameInput).SendKeys(searchCriteria); webDriver.FindElement(searchContactResultsBttn).Click(); } @@ -98,58 +98,9 @@ public void SearchOrganizationContact(string searchCriteria) public void SelectFirstResultLink() { Wait(2000); - webDriver.FindElement(searchContactFirstResultLink).Click(); + webDriver.FindElement(searchContact1stResultLink).Click(); } - //Click on Create new contact - public void CreateNewContactFromSearch() - { - webDriver.FindElement(searchContactAddNewBttn).Click(); - } - - //Verify Links functionality on Search Contacts - public void VerifySearchLinks(string searchCriteria) - { - WaitUntilClickable(searchContactNameInput); - webDriver.FindElement(searchContactNameInput).SendKeys(searchCriteria); - webDriver.FindElement(searchContactResultsBttn).Click(); - - //Verify Update link - WaitUntilClickable(searchContactUpdateBttn); - webDriver.FindElement(searchContactUpdateBttn).Click(); - - WaitUntilVisible(searchUpdateForm); - Assert.True(webDriver.FindElement(searchUpdateForm).Displayed); - - webDriver.FindElement(searchContactBackLink).Click(); - - WaitUntilVisible(searchContactNameInput); - webDriver.FindElement(searchContactNameInput).SendKeys(searchCriteria); - webDriver.FindElement(searchContactResultsBttn).Click(); - - //Verify View Link - WaitUntilClickable(searchContactUpdateBttn); - webDriver.FindElement(searchContactUpdateBttn).Click(); - - WaitUntilVisible(searchContactViewContactInfoHeader); - Assert.True(webDriver.FindElement(searchContactViewContactInfoHeader).Displayed); - - webDriver.FindElement(searchContactBackLink).Click(); - - } - - //Verify Search Contacts Main Screen - public Boolean SearchContactRender() - { - WaitUntilVisible(searchContactMenuItems); - ScrollToElement(searchContactMenuItems); - - return webDriver.FindElement(searchContactTable).Displayed - && webDriver.FindElement(searchContactMenuItems).Displayed - && webDriver.FindElement(searchContactPaginationList).Displayed; - } - - public string GetNoSearchMessage() { WaitUntilVisible(searchContactNoResults); @@ -172,7 +123,6 @@ public void VerifyContactsListView() Assert.True(webDriver.FindElement(searchContactAddNewBttn).Displayed); //Table Elements - Assert.True(webDriver.FindElement(searchContactTable).Displayed); Assert.True(webDriver.FindElement(searchContactTableSummaryColumn).Displayed); Assert.True(webDriver.FindElement(searchContactTableFirstNameColumn).Displayed); Assert.True(webDriver.FindElement(searchContactTableLastNameColumn).Displayed); @@ -189,22 +139,94 @@ public void VerifyContactsListView() Assert.True(webDriver.FindElement(searchContactPaginationList).Displayed); } + public void OrderByContactSummary() + { + WaitUntilClickable(searchContactOrderBySummaryBttn); + webDriver.FindElement(searchContactOrderBySummaryBttn).Click(); + } + + public void OrderByContactFirstName() + { + WaitUntilClickable(searchContactOrderByFirstNameBttn); + webDriver.FindElement(searchContactOrderByFirstNameBttn).Click(); + } + + public void OrderByContactLastName() + { + WaitUntilClickable(searchContactOrderByLastNameBttn); + webDriver.FindElement(searchContactOrderByLastNameBttn).Click(); + } + + public void OrderByContactOrganization() + { + WaitUntilClickable(searchContactOrderByOrganizationBttn); + webDriver.FindElement(searchContactOrderByOrganizationBttn).Click(); + } + + public void OrderByContactCity() + { + WaitUntilClickable(searchContactOrderByCityBttn); + webDriver.FindElement(searchContactOrderByCityBttn).Click(); + } + + public string FirstContactSummary() + { + WaitUntilTableSpinnerDisappear(); + return webDriver.FindElement(searchContact1stResultLink).Text; + } + + public string FirstContactFirstName() + { + WaitUntilTableSpinnerDisappear(); + return webDriver.FindElement(searchContact1stFirstNameContent).Text; + } + + public string FirstContactLastName() + { + WaitUntilTableSpinnerDisappear(); + return webDriver.FindElement(searchContact1stLastNameContent).Text; + } + + public string FirstContactOrganization() + { + WaitUntilTableSpinnerDisappear(); + return webDriver.FindElement(searchContact1stOrganizationContent).Text; + } + + public string FirstContactCity() + { + WaitUntilTableSpinnerDisappear(); + return webDriver.FindElement(searchContact1stCityContent).Text; + } + + public int ContactsTableResultNumber() + { + WaitUntilTableSpinnerDisappear(); + return webDriver.FindElements(searchContactTableContent).Count; + } + + public Boolean SearchFoundResults() + { + WaitUntilTableSpinnerDisappear(); + return webDriver.FindElements(searchContact1stRowResult).Count > 0; + } + public void VerifyContactTableContent(string summary, string firstName, string lastName, string organization, string email, string address, string city, string province, string country) { Wait(2000); - AssertTrueContentEquals(searchContactFirstResultLink,summary); - AssertTrueContentEquals(searchContactFirstNameDiv, firstName); - AssertTrueContentEquals(searchContactFirstLastNameDiv, lastName); - AssertTrueContentEquals(searchContactFirstOrganizationDiv, organization); - AssertTrueContentEquals(searchContactFirstEmailDiv, email); - AssertTrueContentEquals(searchContactFirstMailAddressDiv, address); - AssertTrueContentEquals(searchContactFirstCityDiv, city); + AssertTrueContentEquals(searchContact1stResultLink,summary); + AssertTrueContentEquals(searchContact1stFirstNameContent, firstName); + AssertTrueContentEquals(searchContact1stLastNameContent, lastName); + AssertTrueContentEquals(searchContact1stOrganizationContent, organization); + AssertTrueContentEquals(searchContact1stEmailContent, email); + AssertTrueContentEquals(searchContact1stMailAddressContent, address); + AssertTrueContentEquals(searchContact1stCityContent, city); if (country == "Canada" || country == "United States of America") - AssertTrueContentEquals(searchContactFirstProvinceDiv, province); + AssertTrueContentEquals(searchContact1stProvinceContent, province); else - AssertTrueContentEquals(searchContactFirstProvinceDiv, ""); + AssertTrueContentEquals(searchContact1stProvinceContent, ""); AssertTrueIsDisplayed(searchContactUpdateBttn); AssertTrueIsDisplayed(searchContactViewBttn); diff --git a/testing/PIMS.Tests.Automation/PageObjects/SearchDispositionFiles.cs b/testing/PIMS.Tests.Automation/PageObjects/SearchDispositionFiles.cs index b37bf03625..8a72e87a9e 100644 --- a/testing/PIMS.Tests.Automation/PageObjects/SearchDispositionFiles.cs +++ b/testing/PIMS.Tests.Automation/PageObjects/SearchDispositionFiles.cs @@ -128,7 +128,7 @@ public void OrderByDispositionFileType() public void OrderByDispositionStatus() { WaitUntilClickable(searchDispositionFileOrderDispositionStatusBttn); - webDriver.FindElement(searchDispositionFileOrderDispositionStatusBttn).Click(); + FocusAndClick(searchDispositionFileOrderDispositionStatusBttn); } public void OrderByDispositionFileStatus() diff --git a/testing/PIMS.Tests.Automation/PageObjects/SearchLease.cs b/testing/PIMS.Tests.Automation/PageObjects/SearchLease.cs index c5269a8247..0855c7c461 100644 --- a/testing/PIMS.Tests.Automation/PageObjects/SearchLease.cs +++ b/testing/PIMS.Tests.Automation/PageObjects/SearchLease.cs @@ -36,16 +36,20 @@ public class SearchLease : PageObjectBase private By searchLicenceLFileColumnHeader = By.XPath("//div[@data-testid='leasesTable']/div[@class='thead thead-light']/div/div/div[contains(text(),'L-File Number')]"); private By searchLicenseOrderByLFileBttn = By.CssSelector("div[data-testid='sort-column-lFileNo']"); private By searchLicenceExpiryDateColumnHeader = By.XPath("//div[@data-testid='leasesTable']/div[@class='thead thead-light']/div/div/div[contains(text(),'Expiry Date')]"); + private By searchLicenseOrderByExpiryDateBttn = By.CssSelector("div[data-testid='sort-column-expiryDate']"); private By searchLicenceProgramNameColumnHeader = By.XPath("//div[@data-testid='leasesTable']/div[@class='thead thead-light']/div/div/div[contains(text(),'Program Name')]"); + private By searchLicenseOrderByProgramNameBttn = By.CssSelector("div[data-testid='sort-column-programName']"); private By searchLicenceTenantNameColumnHeader = By.XPath("//div[@data-testid='leasesTable']/div[@class='thead thead-light']/div/div/div[contains(text(),'Tenant Names')]"); private By searchLicencePropertiesColumnHeader = By.XPath("//div[@data-testid='leasesTable']/div[@class='thead thead-light']/div/div/div[contains(text(),'Properties')]"); private By searchLicenceStatusColumnHeader = By.XPath("//div[@data-testid='leasesTable']/div[@class='thead thead-light']/div/div/div[contains(text(),'Status')]"); + private By searchLicenseOrderByStatusBttn = By.CssSelector("div[data-testid='sort-column-fileStatusTypeCode']"); + private By searchLicenseResultsTable = By.CssSelector("div[data-testid='leasesTable'] div[class='tbody'] div[class='tr-wrapper']"); //Search Table 1st Result Elements private By searchLicenseResultsTable1stResult = By.CssSelector("div[data-testid='leasesTable'] div[class='tbody'] div[class='tr-wrapper']:nth-child(1)"); private By searchLicense1stResultLink = By.CssSelector("div[data-testid='leasesTable'] div[class='tbody'] div[class='tr-wrapper']:nth-child(1) a"); - private By searchLicense1stResultExpiryDateContent = By.XPath("//div[@data-testid='leasesTable']/div[@class='tbody']/div[@class='tr-wrapper'][1]/div/div[2]/span"); + private By searchLicense1stResultExpiryDateContent = By.XPath("//div[@data-testid='leasesTable']/div[@class='tbody']/div[@class='tr-wrapper'][1]/div/div[2]/span[1]"); private By searchLicense1stResultProgramContent = By.XPath("//div[@data-testid='leasesTable']/div[@class='tbody']/div[@class='tr-wrapper'][1]/div/div[3]"); private By searchLicense1stResultTenantsContent = By.XPath("//div[@data-testid='leasesTable']/div[@class='tbody']/div[@class='tr-wrapper'][1]/div/div[4]/div/div"); private By searchLicense1stResultPropertiesContent = By.XPath("//div[@data-testid='leasesTable']/div[@class='tbody']/div[@class='tr-wrapper'][1]/div/div[5]/div/div"); @@ -94,6 +98,16 @@ public void SearchLastLease() webDriver.FindElement(searchLicenseOrderByLFileBttn).Click(); } + public void SearchAllLeases() + { + Wait(2000); + webDriver.FindElement(searchLicenseResetButton).Click(); + + Wait(2000); + webDriver.FindElement(searchLicenseActiveStatusDeleteBttn).Click(); + webDriver.FindElement(searchLicenseSearchButton).Click(); + } + public void OrderByLastLease() { WaitUntilClickable(searchLicenseOrderByLFileBttn); @@ -103,6 +117,30 @@ public void OrderByLastLease() webDriver.FindElement(searchLicenseOrderByLFileBttn).Click(); } + public void OrderByLeaseFileNumber() + { + WaitUntilClickable(searchLicenseOrderByLFileBttn); + webDriver.FindElement(searchLicenseOrderByLFileBttn).Click(); + } + + public void OrderByLeaseExpiryDate() + { + WaitUntilClickable(searchLicenseOrderByExpiryDateBttn); + webDriver.FindElement(searchLicenseOrderByExpiryDateBttn).Click(); + } + + public void OrderByLeaseProgramName() + { + WaitUntilClickable(searchLicenseOrderByProgramNameBttn); + webDriver.FindElement(searchLicenseOrderByProgramNameBttn).Click(); + } + + public void OrderByLeaseStatus() + { + WaitUntilClickable(searchLicenseOrderByStatusBttn); + webDriver.FindElement(searchLicenseOrderByStatusBttn).Click(); + } + public void SelectFirstOption() { WaitUntilClickable(searchLicense1stResultLink); @@ -112,6 +150,30 @@ public void SelectFirstOption() Assert.True(webDriver.FindElement(searchLicenseFileHeaderCode).Displayed); } + public string FirstLeaseFileNumber() + { + WaitUntilTableSpinnerDisappear(); + return webDriver.FindElement(searchLicense1stResultLink).Text; + } + + public string FirstLeaseExpiryDate() + { + WaitUntilTableSpinnerDisappear(); + return webDriver.FindElement(searchLicense1stResultExpiryDateContent).Text; + } + + public string FirstLeaseProgramName() + { + WaitUntilTableSpinnerDisappear(); + return webDriver.FindElement(searchLicense1stResultProgramContent).Text; + } + + public string FirstLeaseStatus() + { + WaitUntilTableSpinnerDisappear(); + return webDriver.FindElement(searchLicense1stResultStatusContent).Text; + } + public void FilterLeasesFiles(string pid, string expiryDate, string tenant, string status) { Wait(); @@ -142,6 +204,12 @@ public Boolean SearchFoundResults() return webDriver.FindElements(searchLicenseResultsTable1stResult).Count > 0; } + public int LeasesTableResultNumber() + { + WaitUntilTableSpinnerDisappear(); + return webDriver.FindElements(searchLicenseResultsTable).Count; + } + public void VerifySearchLeasesView() { WaitUntilVisible(searchBySelect); diff --git a/testing/PIMS.Tests.Automation/PageObjects/SearchProjects.cs b/testing/PIMS.Tests.Automation/PageObjects/SearchProjects.cs index 851cd7efa2..6bf8ab2677 100644 --- a/testing/PIMS.Tests.Automation/PageObjects/SearchProjects.cs +++ b/testing/PIMS.Tests.Automation/PageObjects/SearchProjects.cs @@ -1,8 +1,5 @@ using OpenQA.Selenium; -using OpenQA.Selenium.Support.Extensions; -using OpenQA.Selenium.Support.UI; using PIMS.Tests.Automation.Classes; -using SeleniumExtras.WaitHelpers; namespace PIMS.Tests.Automation.PageObjects { @@ -112,20 +109,6 @@ public void SearchProjectByStatus(string projectStatus) webDriver.FindElement(searchProjectButton).Click(); } - public void SearchLastProject() - { - WaitUntilVisible(searchProjectResetButton); - webDriver.FindElement(searchProjectResetButton).Click(); - - WaitUntilVisible(searchProjectTotalCount); - ChooseSpecificSelectOption(searchProjectStatusSelect, "All Statuses"); - FocusAndClick(searchProjectButton); - - WaitUntilVisible(searchProjectTotalCount); - webDriver.FindElement(searchProjectUpdatedDateSortBttn).Click(); - webDriver.FindElement(searchProjectUpdatedDateSortBttn).Click(); - } - public void SelectFirstResult() { WaitUntilVisible(searchProjectTotalCount); @@ -156,6 +139,7 @@ public void OrderByProjectLastUpdatedDate() webDriver.FindElement(searchProjectLastUpdatedDateOrderBttn).Click(); } + public void VerifySearchView() { WaitUntilVisible(searchProjectSubtitle); diff --git a/testing/PIMS.Tests.Automation/PageObjects/SearchResearchFiles.cs b/testing/PIMS.Tests.Automation/PageObjects/SearchResearchFiles.cs index 962b23cb71..f33a8f23eb 100644 --- a/testing/PIMS.Tests.Automation/PageObjects/SearchResearchFiles.cs +++ b/testing/PIMS.Tests.Automation/PageObjects/SearchResearchFiles.cs @@ -39,13 +39,22 @@ public class SearchResearchFiles : PageObjectBase //Search Research Files 1st Result Elements private By searchResearchFile1stResult = By.CssSelector("div[data-testid='researchFilesTable'] div[class='tbody'] div[class='tr-wrapper']:nth-child(1)"); private By searchResearchFile1stResultLink = By.CssSelector("div[data-testid='researchFilesTable'] div[class='tbody'] div[class='tr-wrapper']:nth-child(1) div[class='td clickable'] a"); + private By searchResearchFileOrderFileNumberBttn = By.CssSelector("div[data-testid='sort-column-rfileNumber']"); private By searchResearchFile1stResultFileName = By.CssSelector("div[data-testid='researchFilesTable'] div[class='tbody'] div[class='tr-wrapper']:nth-child(1) div[class='td clickable']:nth-child(2)"); + private By searchResearchFileOrderFileNameBttn = By.CssSelector("div[data-testid='sort-column-name']"); private By searchResearchFile1stResultRegion = By.CssSelector("div[data-testid='researchFilesTable'] div[class='tbody'] div[class='tr-wrapper']:nth-child(1) div[class='td clickable']:nth-child(3)"); private By searchResearchFile1stResultCreator = By.CssSelector("div[data-testid='researchFilesTable'] div[class='tbody'] div[class='tr-wrapper']:nth-child(1) div[class='td clickable']:nth-child(4)"); + private By searchResearchFileOrderCreatorNameBttn = By.CssSelector("div[data-testid='sort-column-appCreateUserid']"); private By searchResearchFile1stResultCreateDate = By.CssSelector("div[data-testid='researchFilesTable'] div[class='tbody'] div[class='tr-wrapper']:nth-child(1) div[class='td clickable']:nth-child(5)"); + private By searchResearchFileOrderCreateDateBttn = By.CssSelector("div[data-testid='sort-column-appCreateTimestamp']"); private By searchResearchFile1stResultUpdatedBy = By.CssSelector("div[data-testid='researchFilesTable'] div[class='tbody'] div[class='tr-wrapper']:nth-child(1) div[class='td clickable']:nth-child(6)"); + private By searchResearchFileOrderLastUpdatedByBttn = By.CssSelector("div[data-testid='sort-column-appLastUpdateUserid']"); private By searchResearchFile1stResultUpdateDate = By.CssSelector("div[data-testid='researchFilesTable'] div[class='tbody'] div[class='tr-wrapper']:nth-child(1) div[class='td clickable']:nth-child(7)"); + private By searchResearchFileOrderUpdatedDateBttn = By.CssSelector("div[data-testid='sort-column-appLastUpdateTimestamp']"); private By searchResearchFile1stResultStatus = By.CssSelector("div[data-testid='researchFilesTable'] div[class='tbody'] div[class='tr-wrapper']:nth-child(1) div[class='td clickable']:nth-child(8)"); + private By searchResearchFileStatusNameBttn = By.CssSelector("div[data-testid='sort-column-researchFileStatusTypeCode']"); + + private By searchResearchFileTableContent = By.CssSelector("div[data-testid='researchFilesTable'] div[class='tbody'] div[class='tr-wrapper']"); //Search Research File Pagination private By searchResearchFilePaginationMenu = By.CssSelector("div[class='Menu-root']"); @@ -77,27 +86,97 @@ public void SearchResearchFileByRFile(string RFile) webDriver.FindElement(searchResearchFileButton).Click(); } - public void SearchLastResearchFile() + public void SearchAllResearchFiles() { - WaitUntilClickable(searchResearchFileResetButton); - webDriver.FindElement(searchResearchFileResetButton).Click(); + Wait(2000); + ChooseSpecificSelectOption(searchResearchStatusSelect, "All Status"); + + WaitUntilClickable(searchResearchFileButton); + webDriver.FindElement(searchResearchFileButton).Click(); + } - WaitUntilClickable(searchResearchFileSortByRFileBttn); - webDriver.FindElement(searchResearchFileSortByRFileBttn).Click(); - webDriver.FindElement(searchResearchFileSortByRFileBttn).Click(); + public void OrderByResearchFileNumber() + { + WaitUntilClickable(searchResearchFileOrderFileNumberBttn); + webDriver.FindElement(searchResearchFileOrderFileNumberBttn).Click(); + } - WaitUntilClickable(searchResearchStatusSelect); - ChooseSpecificSelectOption(searchResearchStatusSelect, "All Status"); - FocusAndClick(searchResearchFileButton); + public void OrderByResearchFileName() + { + WaitUntilClickable(searchResearchFileOrderFileNameBttn); + webDriver.FindElement(searchResearchFileOrderFileNameBttn).Click(); + } + + public void OrderByResearchFileCreatedBy() + { + WaitUntilClickable(searchResearchFileOrderCreatorNameBttn); + webDriver.FindElement(searchResearchFileOrderCreatorNameBttn).Click(); + } + + public void OrderByResearchCreatedDate() + { + WaitUntilClickable(searchResearchFileOrderCreateDateBttn); + webDriver.FindElement(searchResearchFileOrderCreateDateBttn).Click(); + } + + public void OrderByResearchLastUpdatedBy() + { + WaitUntilClickable(searchResearchFileOrderLastUpdatedByBttn); + webDriver.FindElement(searchResearchFileOrderLastUpdatedByBttn).Click(); + } + + public void OrderByResearchUpdatedDate() + { + WaitUntilClickable(searchResearchFileOrderUpdatedDateBttn); + webDriver.FindElement(searchResearchFileOrderUpdatedDateBttn).Click(); + } + + public void OrderByResearchStatus() + { + WaitUntilClickable(searchResearchFileStatusNameBttn); + webDriver.FindElement(searchResearchFileStatusNameBttn).Click(); + } + + public string FirstResearchFileNumber() + { + WaitUntilTableSpinnerDisappear(); + return webDriver.FindElement(searchResearchFile1stResultLink).Text; + } + + public string FirstResearchFileName() + { + WaitUntilTableSpinnerDisappear(); + return webDriver.FindElement(searchResearchFile1stResultFileName).Text; + } + + public string FirstResearchCreatedBy() + { + WaitUntilTableSpinnerDisappear(); + return webDriver.FindElement(searchResearchFile1stResultCreator).Text; + } + + public string FirstResearchCreatedDate() + { + WaitUntilTableSpinnerDisappear(); + return webDriver.FindElement(searchResearchFile1stResultCreateDate).Text; + } + + public string FirstResearchUpdatedBy() + { + WaitUntilTableSpinnerDisappear(); + return webDriver.FindElement(searchResearchFile1stResultUpdatedBy).Text; } - public void SelectFirstResult() + public string FirstResearchUpdatedDate() { - WaitUntilClickable(searchResearchFile1stResultLink); - webDriver.FindElement(searchResearchFile1stResultLink).Click(); + WaitUntilTableSpinnerDisappear(); + return webDriver.FindElement(searchResearchFile1stResultUpdateDate).Text; + } - WaitUntilVisible(researchFileHeaderCode); - Assert.True(webDriver.FindElement(researchFileHeaderCode).Displayed); + public string FirstResearchFileStatus() + { + WaitUntilTableSpinnerDisappear(); + return webDriver.FindElement(searchResearchFile1stResultStatus).Text; } public void VerifyResearchFileListView() @@ -175,5 +254,11 @@ public Boolean SearchFoundResults() Wait(2000); return webDriver.FindElements(searchResearchFile1stResult).Count > 0; } + + public int ResearchFileTableResultNumber() + { + WaitUntilTableSpinnerDisappear(); + return webDriver.FindElements(searchResearchFileTableContent).Count; + } } } diff --git a/testing/PIMS.Tests.Automation/PageObjects/SharedPagination.cs b/testing/PIMS.Tests.Automation/PageObjects/SharedPagination.cs index 962cd0d5ee..25f0542258 100644 --- a/testing/PIMS.Tests.Automation/PageObjects/SharedPagination.cs +++ b/testing/PIMS.Tests.Automation/PageObjects/SharedPagination.cs @@ -6,6 +6,8 @@ public class SharedPagination : PageObjectBase { //Search Acquisition File Pagination + private By searchListResetButton = By.Id("reset-button"); + private By searchTableEntriesSpan = By.XPath("//span[contains(text(),'Entries')]"); private By searchTablePagination5 = By.CssSelector("div[title='menu-item-5']"); private By searchTablePagination10 = By.CssSelector("div[title='menu-item-10']"); @@ -13,6 +15,8 @@ public class SharedPagination : PageObjectBase private By searchTablePagination50 = By.CssSelector("div[title='menu-item-50']"); private By searchTablePagination100 = By.CssSelector("div[title='menu-item-100']"); + private By searchTableNextPageButton = By.CssSelector("ul[class='pagination'] li:last-child"); + public SharedPagination(IWebDriver webDriver) : base(webDriver) {} @@ -47,5 +51,16 @@ public void ChoosePaginationOption(int pagination) break; } } + + public void GoNextPage() + { + webDriver.FindElement(searchTableNextPageButton).Click(); + } + + public void ResetSearch() + { + WaitUntilClickable(searchListResetButton); + webDriver.FindElement(searchListResetButton).Click(); + } } } diff --git a/testing/PIMS.Tests.Automation/StepDefinitions/AcquisitionFileSteps.cs b/testing/PIMS.Tests.Automation/StepDefinitions/AcquisitionFileSteps.cs index ab207043fc..4e5e309bb1 100644 --- a/testing/PIMS.Tests.Automation/StepDefinitions/AcquisitionFileSteps.cs +++ b/testing/PIMS.Tests.Automation/StepDefinitions/AcquisitionFileSteps.cs @@ -1,6 +1,4 @@ - - -using PIMS.Tests.Automation.Classes; +using PIMS.Tests.Automation.Classes; using PIMS.Tests.Automation.Data; using System.Data; @@ -890,11 +888,21 @@ public void SearchExistingAcquisitionFile(int rowNumber) Assert.NotEqual(firstFileNameDescResult, firstFileNameAscResult); - //Filter research Files + //Verify Pagination display different set of results + sharedPagination.ResetSearch(); + + var firstAcquisitionPage1 = searchAcquisitionFiles.FirstAcquisitionFileNumber(); + sharedPagination.GoNextPage(); + var firstAcquisitionPage2 = searchAcquisitionFiles.FirstAcquisitionFileNumber(); + Assert.NotEqual(firstAcquisitionPage1, firstAcquisitionPage2); + + sharedPagination.ResetSearch(); + + //Filter Acquisition Files searchAcquisitionFiles.FilterAcquisitionFiles("003-549-551", "", "", "Acquisition from Jonathan Doe", "", "Cancelled", ""); Assert.False(searchAcquisitionFiles.SearchFoundResults()); - //Look for the last created research file + //Look for the last created Acquisition File searchAcquisitionFiles.FilterAcquisitionFiles("", "", "", acquisitionFile.AcquisitionFileName, "", acquisitionFile.AcquisitionStatus, ""); } diff --git a/testing/PIMS.Tests.Automation/StepDefinitions/AdminToolSteps.cs b/testing/PIMS.Tests.Automation/StepDefinitions/AdminToolSteps.cs index 55f84fdc80..23ca25a143 100644 --- a/testing/PIMS.Tests.Automation/StepDefinitions/AdminToolSteps.cs +++ b/testing/PIMS.Tests.Automation/StepDefinitions/AdminToolSteps.cs @@ -1,7 +1,5 @@ -using Microsoft.Extensions.Configuration; -using PIMS.Tests.Automation.Classes; +using PIMS.Tests.Automation.Classes; using PIMS.Tests.Automation.Data; -using PIMS.Tests.Automation.PageObjects; using System.Data; namespace PIMS.Tests.Automation.StepDefinitions @@ -66,6 +64,75 @@ public void UserManagement() //Navigate to User Management manageUsers.NavigateUserManagement(); + //Verify Pagination + sharedPagination.ChoosePaginationOption(5); + Assert.Equal(5, manageUsers.TotalUsersResult()); + + sharedPagination.ChoosePaginationOption(10); + Assert.Equal(10, manageUsers.TotalUsersResult()); + + sharedPagination.ChoosePaginationOption(20); + Assert.Equal(20, manageUsers.TotalUsersResult()); + + sharedPagination.ChoosePaginationOption(50); + Assert.Equal(50, manageUsers.TotalUsersResult()); + + sharedPagination.ChoosePaginationOption(100); + Assert.True(manageUsers.TotalUsersResult() > 50); + + //Verify Column Sorting by IDIR + manageUsers.OrderByUserIDIR(); + var firstIDIRDescResult = manageUsers.FirstUserIDIR(); + + manageUsers.OrderByUserIDIR(); + var firstIDIRAscResult = manageUsers.FirstUserIDIR(); + + Assert.NotEqual(firstIDIRDescResult, firstIDIRAscResult); + + //Verify Column Sorting by First Name + manageUsers.OrderByUserFirstName(); + var firstNameDescResult = manageUsers.FirstUserFirstName(); + + manageUsers.OrderByUserFirstName(); + var firstNameAscResult = manageUsers.FirstUserFirstName(); + + Assert.NotEqual(firstNameDescResult, firstNameAscResult); + + //Verify Column Sorting by Last Name + manageUsers.OrderByUserLastName(); + var firstLastNameDescResult = manageUsers.FirstUserLastName(); + + manageUsers.OrderByUserLastName(); + var firstLastNameAscResult = manageUsers.FirstUserLastName(); + + Assert.NotEqual(firstLastNameDescResult, firstLastNameAscResult); + + //Verify Column Sorting by Email + manageUsers.OrderByUserMail(); + var firstEmailDescResult = manageUsers.FirstUserEmail(); + + manageUsers.OrderByUserMail(); + var firstEmailAscResult = manageUsers.FirstUserEmail(); + + Assert.NotEqual(firstEmailDescResult, firstEmailAscResult); + + //Verify Column Sorting by Position + manageUsers.OrderByUserPosition(); + var firstPositionDescResult = manageUsers.FirstUserPosition(); + + manageUsers.OrderByUserPosition(); + var firstPositionAscResult = manageUsers.FirstUserPosition(); + + Assert.NotEqual(firstPositionDescResult, firstPositionAscResult); + + //Verify Pagination display different set of results + var firstUserPage1 = manageUsers.FirstUserIDIR(); + sharedPagination.GoNextPage(); + var firstUserPage2 = manageUsers.FirstUserIDIR(); + Assert.NotEqual(firstUserPage1, firstUserPage2); + + sharedPagination.ResetSearch(); + //Verify Filters manageUsers.FilterUsers("TRANPSP1", "Cannot determine"); Assert.Equal(0, manageUsers.TotalUsersResult()); @@ -301,6 +368,15 @@ public void SearchFinancialCodes(int rowNumber) Assert.NotEqual(firstFinCodeExpiryDateDescResult, firstFinCodeExpiryDateAscResult); + //Verify Pagination display different set of results + sharedPagination.ResetSearch(); + + var firstFinancialPage1 = financialCodes.FirstFinancialCodeDescription(); + sharedPagination.GoNextPage(); + var firstFinancialPage2 = financialCodes.FirstFinancialCodeDescription(); + Assert.NotEqual(firstFinancialPage1, firstFinancialPage2); + + sharedPagination.ResetSearch(); //Filter Financial Codes by Cost Types financialCodes.FilterFinancialCodeByType("Business function"); diff --git a/testing/PIMS.Tests.Automation/StepDefinitions/ContactsSteps.cs b/testing/PIMS.Tests.Automation/StepDefinitions/ContactsSteps.cs index d63302119f..4c129ad9b3 100644 --- a/testing/PIMS.Tests.Automation/StepDefinitions/ContactsSteps.cs +++ b/testing/PIMS.Tests.Automation/StepDefinitions/ContactsSteps.cs @@ -1,7 +1,7 @@ -using Microsoft.Extensions.Configuration; -using System.Data; +using System.Data; using PIMS.Tests.Automation.Data; using PIMS.Tests.Automation.Classes; +using PIMS.Tests.Automation.PageObjects; namespace PIMS.Tests.Automation.StepDefinitions { @@ -11,6 +11,7 @@ public class ContactsSteps private readonly LoginSteps loginSteps; private readonly Contacts contacts; private readonly SearchContacts searchContacts; + private readonly SharedPagination sharedPagination; private readonly string userName = "TRANPSP1"; @@ -22,6 +23,8 @@ public ContactsSteps(BrowserDriver driver) loginSteps = new LoginSteps(driver); contacts = new Contacts(driver.Current); searchContacts = new SearchContacts(driver.Current); + sharedPagination = new SharedPagination(driver.Current); + individualContact = new IndividualContact(); organizationContact = new OrganizationContact(); } @@ -134,12 +137,12 @@ public void SearchExistingContact(string contactType, int rowNumber) if (contactType == "Individual") { PopulateIndividualContact(rowNumber); - searchContacts.SearchGeneralContact(individualContact.FullName); + searchContacts.FilterContacts(individualContact.FullName); } else { PopulateOrganizationContact(rowNumber); - searchContacts.SearchGeneralContact(organizationContact.OrganizationName); + searchContacts.FilterContacts(organizationContact.OrganizationName); } } @@ -158,28 +161,109 @@ public void SearchNonExistantContact(string contactType, int rowNumber) if (contactType == "Individual") { PopulateIndividualContact(rowNumber); - searchContacts.SearchGeneralContact(individualContact.FullName); + searchContacts.FilterContacts(individualContact.FullName); } else { PopulateOrganizationContact(rowNumber); - searchContacts.SearchGeneralContact(organizationContact.OrganizationName); + searchContacts.FilterContacts(organizationContact.OrganizationName); } } - [StepDefinition(@"I verify the Contacts List View")] - public void VerifyContactsListView() + [StepDefinition(@"I verify the Contacts List View from row number (.*)")] + public void VerifyContactsListView(int rowNumber) { /* TEST COVERAGE: PSP-2355, PSP-4559 */ //Login to PIMS loginSteps.Idir(userName); + //Populate contacts data + PopulateOrganizationContact(rowNumber); + //Navigate to Search a Contact searchContacts.NavigateToSearchContact(); //Verify List View searchContacts.VerifyContactsListView(); + + //Verify Pagination + sharedPagination.ChoosePaginationOption(5); + Assert.Equal(5, searchContacts.ContactsTableResultNumber()); + + sharedPagination.ChoosePaginationOption(10); + Assert.Equal(10, searchContacts.ContactsTableResultNumber()); + + sharedPagination.ChoosePaginationOption(20); + Assert.Equal(20, searchContacts.ContactsTableResultNumber()); + + sharedPagination.ChoosePaginationOption(50); + Assert.Equal(50, searchContacts.ContactsTableResultNumber()); + + sharedPagination.ChoosePaginationOption(100); + Assert.Equal(100, searchContacts.ContactsTableResultNumber()); + + //Verify Column Sorting by Contact Summary + searchContacts.OrderByContactSummary(); + var firstSummaryDescResult = searchContacts.FirstContactSummary(); + + searchContacts.OrderByContactSummary(); + var firstSummaryAscResult = searchContacts.FirstContactSummary(); + + Assert.NotEqual(firstSummaryDescResult, firstSummaryAscResult); + + //Verify Column Sorting by First Name + searchContacts.OrderByContactFirstName(); + var firstNameDescResult = searchContacts.FirstContactFirstName(); + + searchContacts.OrderByContactFirstName(); + var firstNameAscResult = searchContacts.FirstContactFirstName(); + + Assert.NotEqual(firstNameDescResult, firstNameAscResult); + + //Verify Column Sorting by Last Name + searchContacts.OrderByContactLastName(); + var firstLastNameDescResult = searchContacts.FirstContactLastName(); + + searchContacts.OrderByContactLastName(); + var firstLastNameAscResult = searchContacts.FirstContactLastName(); + + Assert.NotEqual(firstLastNameDescResult, firstLastNameAscResult); + + //Verify Column Sorting by Organization + searchContacts.OrderByContactOrganization(); + var firstOrganizationDescResult = searchContacts.FirstContactOrganization(); + + searchContacts.OrderByContactOrganization(); + var firstOrganizationAscResult = searchContacts.FirstContactOrganization(); + + Assert.NotEqual(firstOrganizationDescResult, firstOrganizationAscResult); + + //Verify Column Sorting by City + searchContacts.OrderByContactCity(); + var firstCityDescResult = searchContacts.FirstContactCity(); + + searchContacts.OrderByContactCity(); + var firstCityAscResult = searchContacts.FirstContactCity(); + + Assert.NotEqual(firstCityDescResult, firstCityAscResult); + + //Verify Pagination display different set of results + sharedPagination.ResetSearch(); + + var firstContactPage1 = searchContacts.FirstContactSummary(); + sharedPagination.GoNextPage(); + var firstContactPage2 = searchContacts.FirstContactSummary(); + Assert.NotEqual(firstContactPage1, firstContactPage2); + + sharedPagination.ResetSearch(); + + //Filter Acquisition Files + searchContacts.FilterContacts("Individual", "Maria Johnson", "California"); + Assert.False(searchContacts.SearchFoundResults()); + + //Look for the last created Acquisition File + searchContacts.FilterContacts("Organization", organizationContact.OrganizationName, organizationContact.OrgMailAddress.City); } [StepDefinition(@"No contacts results are found")] diff --git a/testing/PIMS.Tests.Automation/StepDefinitions/DispositionFileSteps.cs b/testing/PIMS.Tests.Automation/StepDefinitions/DispositionFileSteps.cs index eb7a6b31c5..0622c7b1a3 100644 --- a/testing/PIMS.Tests.Automation/StepDefinitions/DispositionFileSteps.cs +++ b/testing/PIMS.Tests.Automation/StepDefinitions/DispositionFileSteps.cs @@ -467,6 +467,9 @@ public void SearchExistingAcquisitionFile(int rowNumber) sharedPagination.ChoosePaginationOption(100); Assert.True(searchDispositionFiles.DispositionFileTableResultNumber() > 51); + //Reset Pagination to 10 + sharedPagination.ChoosePaginationOption(10); + //Verify Column Sorting by File Number searchDispositionFiles.OrderByDispositionFileNumber(); var firstFileNbrDescResult = searchDispositionFiles.FirstDispositionFileNumber(); @@ -521,6 +524,16 @@ public void SearchExistingAcquisitionFile(int rowNumber) Assert.NotEqual(firstFileStatusDescResult, firstFileStatusAscResult); + //Verify Pagination display different set of results + sharedPagination.ResetSearch(); + + var firstDispositionPage1 = searchDispositionFiles.FirstDispositionFileNumber(); + sharedPagination.GoNextPage(); + var firstDispositionPage2 = searchDispositionFiles.FirstDispositionFileNumber(); + Assert.NotEqual(firstDispositionPage1, firstDispositionPage2); + + sharedPagination.ResetSearch(); + //Filter Disposition Files searchDispositionFiles.FilterDispositionFiles("003-549-551", "Disposition Example File", "", "Archived", "On Hold", ""); Assert.False(searchDispositionFiles.SearchFoundResults()); diff --git a/testing/PIMS.Tests.Automation/StepDefinitions/LeaseLicenseSteps.cs b/testing/PIMS.Tests.Automation/StepDefinitions/LeaseLicenseSteps.cs index 0c343070a3..63b3f10c02 100644 --- a/testing/PIMS.Tests.Automation/StepDefinitions/LeaseLicenseSteps.cs +++ b/testing/PIMS.Tests.Automation/StepDefinitions/LeaseLicenseSteps.cs @@ -1,8 +1,6 @@  - using PIMS.Tests.Automation.Classes; using PIMS.Tests.Automation.Data; -using PIMS.Tests.Automation.PageObjects; using System.Data; namespace PIMS.Tests.Automation.StepDefinitions @@ -18,10 +16,12 @@ public class LeaseLicenseSteps private readonly LeaseInsurance insurance; private readonly LeaseDeposits deposits; private readonly LeaseSurplus surplus; - private readonly SearchLease searchLease; + private readonly SearchLease searchLeases; private readonly SearchProperties searchProperties; private readonly PropertyInformation propertyInformation; private readonly SharedFileProperties sharedSearchProperties; + private readonly SharedPagination sharedPagination; + private readonly string userName = "TRANPSP1"; @@ -38,10 +38,11 @@ public LeaseLicenseSteps(BrowserDriver driver) insurance = new LeaseInsurance(driver.Current); deposits = new LeaseDeposits(driver.Current); surplus = new LeaseSurplus(driver.Current); - searchLease = new SearchLease(driver.Current); + searchLeases = new SearchLease(driver.Current); searchProperties = new SearchProperties(driver.Current); propertyInformation = new PropertyInformation(driver.Current); sharedSearchProperties = new SharedFileProperties(driver.Current); + sharedPagination = new SharedPagination(driver.Current); lease = new Lease(); } @@ -137,11 +138,11 @@ public void UpdateLeaseDetails(int rowNumber) //Navigate to Search Leases PopulateLeaseLicense(rowNumber); - searchLease.NavigateToSearchLicense(); + searchLeases.NavigateToSearchLicense(); //Look for the previously created lease - searchLease.SearchLicenseByLFile(leaseCode); - searchLease.SelectFirstOption(); + searchLeases.SearchLicenseByLFile(leaseCode); + searchLeases.SelectFirstOption(); //Edit File Details Section leaseDetails.EditLeaseFileDetailsBttn(); @@ -216,11 +217,11 @@ public void UpdateTenants(int rowNumber) //Navigate to Search Leases PopulateLeaseLicense(rowNumber); - searchLease.NavigateToSearchLicense(); + searchLeases.NavigateToSearchLicense(); //Look for the previously created lease - searchLease.SearchLicenseByLFile(leaseCode); - searchLease.SelectFirstOption(); + searchLeases.SearchLicenseByLFile(leaseCode); + searchLeases.SelectFirstOption(); //Navigate to Tenants section tenant.NavigateToTenantSection(); @@ -290,11 +291,11 @@ public void UpdateImprovements(int rowNumber) //Navigate to Search Leases PopulateLeaseLicense(rowNumber); - searchLease.NavigateToSearchLicense(); + searchLeases.NavigateToSearchLicense(); //Look for the previously created lease - searchLease.SearchLicenseByLFile(leaseCode); - searchLease.SelectFirstOption(); + searchLeases.SearchLicenseByLFile(leaseCode); + searchLeases.SelectFirstOption(); //Navigate to the improvements section @@ -368,11 +369,11 @@ public void UpdateInsurance(int rowNumber) //Navigate to Search Leases PopulateLeaseLicense(rowNumber); - searchLease.NavigateToSearchLicense(); + searchLeases.NavigateToSearchLicense(); //Look for the previously created lease - searchLease.SearchLicenseByLFile(leaseCode); - searchLease.SelectFirstOption(); + searchLeases.SearchLicenseByLFile(leaseCode); + searchLeases.SelectFirstOption(); //Navigate to Insurance insurance.NavigateToInsuranceSection(); @@ -447,11 +448,11 @@ public void UpdateDeposits(int rowNumber) //Navigate to Search Leases PopulateLeaseLicense(rowNumber); - searchLease.NavigateToSearchLicense(); + searchLeases.NavigateToSearchLicense(); //Look for the last created lease - searchLease.SearchLicenseByLFile(leaseCode); - searchLease.SelectFirstOption(); + searchLeases.SearchLicenseByLFile(leaseCode); + searchLeases.SelectFirstOption(); //Navigate to Deposits deposits.NavigateToDepositSection(); @@ -521,11 +522,11 @@ public void UpdatePayments(int rowNumber) //Navigate to Search Leases PopulateLeaseLicense(rowNumber); - searchLease.NavigateToSearchLicense(); + searchLeases.NavigateToSearchLicense(); //Look for the last created lease - searchLease.SearchLastLease(); - searchLease.SelectFirstOption(); + searchLeases.SearchLastLease(); + searchLeases.SelectFirstOption(); //Navigate to Payments payments.NavigateToPaymentSection(); @@ -643,21 +644,86 @@ public void SearchExistingLicense(int rowNumber) loginSteps.Idir(userName); //Navigate to Leases Search - searchLease.NavigateToSearchLicense(); + searchLeases.NavigateToSearchLicense(); + + //Verify Pagination + sharedPagination.ChoosePaginationOption(5); + Assert.Equal(5, searchLeases.LeasesTableResultNumber()); + + sharedPagination.ChoosePaginationOption(10); + Assert.Equal(10, searchLeases.LeasesTableResultNumber()); + + sharedPagination.ChoosePaginationOption(20); + Assert.Equal(20, searchLeases.LeasesTableResultNumber()); + + sharedPagination.ChoosePaginationOption(50); + Assert.Equal(50, searchLeases.LeasesTableResultNumber()); + + sharedPagination.ChoosePaginationOption(100); + Assert.Equal(100, searchLeases.LeasesTableResultNumber()); + + //Delete "Active" status from list view + searchLeases.SearchAllLeases(); + + //Verify Column Sorting by File Number + searchLeases.OrderByLeaseFileNumber(); + var firstFileNbrDescResult = searchLeases.FirstLeaseFileNumber(); + + searchLeases.OrderByLeaseFileNumber(); + var firstFileNbrAscResult = searchLeases.FirstLeaseFileNumber(); + + Assert.NotEqual(firstFileNbrDescResult, firstFileNbrAscResult); + + //Verify Column Sorting by Expiry Date + searchLeases.OrderByLeaseExpiryDate(); + var firstExpiryDateDescResult = searchLeases.FirstLeaseExpiryDate(); + + searchLeases.OrderByLeaseExpiryDate(); + var firstExpiryDatelAscResult = searchLeases.FirstLeaseExpiryDate(); + + Assert.NotEqual(firstExpiryDateDescResult, firstExpiryDatelAscResult); + + //Verify Column Sorting by Program Name + searchLeases.OrderByLeaseProgramName(); + var firstProgramNameDescResult = searchLeases.FirstLeaseProgramName(); + + searchLeases.OrderByLeaseProgramName(); + var firstProgramNameAscResult = searchLeases.FirstLeaseProgramName(); + + Assert.NotEqual(firstProgramNameDescResult, firstProgramNameAscResult); + + //Verify Column Sorting by File Name + searchLeases.OrderByLeaseStatus(); + var firstStatusDescResult = searchLeases.FirstLeaseStatus(); + + searchLeases.OrderByLeaseStatus(); + var firstStatusAscResult = searchLeases.FirstLeaseStatus(); + + Assert.NotEqual(firstStatusDescResult, firstStatusAscResult); + + //Verify Pagination display different set of results + sharedPagination.ResetSearch(); + + var firstLeasePage1 = searchLeases.FirstLeaseFileNumber(); + sharedPagination.GoNextPage(); + var firstLeasePage2 = searchLeases.FirstLeaseFileNumber(); + Assert.NotEqual(firstLeasePage1, firstLeasePage2); + + sharedPagination.ResetSearch(); //Filter leases Files PopulateLeaseLicense(rowNumber); - searchLease.FilterLeasesFiles(lease.SearchProperties.PID, lease.LeaseExpiryDate, "", lease.LeaseStatus); - Assert.True(searchLease.SearchFoundResults()); + searchLeases.FilterLeasesFiles(lease.SearchProperties.PID, lease.LeaseExpiryDate, "", lease.LeaseStatus); + Assert.True(searchLeases.SearchFoundResults()); - searchLease.FilterLeasesFiles("", "", "Progressive Motor Sports", ""); - Assert.True(searchLease.SearchFoundResults()); + searchLeases.FilterLeasesFiles("", "", "Progressive Motor Sports", ""); + Assert.True(searchLeases.SearchFoundResults()); - searchLease.FilterLeasesFiles("003-549-551", "05/12/1987", "Jonathan Doe", "Discarded"); - Assert.False(searchLease.SearchFoundResults()); + searchLeases.FilterLeasesFiles("003-549-551", "05/12/1987", "Jonathan Doe", "Discarded"); + Assert.False(searchLeases.SearchFoundResults()); - searchLease.FilterLeasesFiles("", "03/22/2024", "", "Terminated"); - searchLease.OrderByLastLease(); + searchLeases.FilterLeasesFiles("", "03/22/2024", "", "Terminated"); + searchLeases.OrderByLastLease(); } [StepDefinition(@"A new lease is created successfully")] @@ -665,11 +731,11 @@ public void NewLeaseCreated() { //TEST COVERAGE: PSP-2466, PSP-2993 - searchLease.NavigateToSearchLicense(); - searchLease.SearchLicenseByLFile(leaseCode); + searchLeases.NavigateToSearchLicense(); + searchLeases.SearchLicenseByLFile(leaseCode); - Assert.True(searchLease.SearchFoundResults()); - searchLease.Dispose(); + Assert.True(searchLeases.SearchFoundResults()); + searchLeases.Dispose(); } [StepDefinition(@"Expected Lease File Content is displayed on Leases Table")] @@ -678,9 +744,9 @@ public void VerifyAcquisitionFileTableContent() /* TEST COVERAGE: PSP-1833 */ //Verify List View - searchLease.VerifySearchLeasesView(); - searchLease.VerifyLeaseTableContent(lease); - searchLease.Dispose(); + searchLeases.VerifySearchLeasesView(); + searchLeases.VerifyLeaseTableContent(lease); + searchLeases.Dispose(); } diff --git a/testing/PIMS.Tests.Automation/StepDefinitions/ProjectSteps.cs b/testing/PIMS.Tests.Automation/StepDefinitions/ProjectSteps.cs index bb24a15d28..ddede111a3 100644 --- a/testing/PIMS.Tests.Automation/StepDefinitions/ProjectSteps.cs +++ b/testing/PIMS.Tests.Automation/StepDefinitions/ProjectSteps.cs @@ -155,7 +155,7 @@ public void SearchExistingProjects(int rowNumber) searchProjects.OrderByProjectNumber(); var firstProjectNbrAscResult = searchProjects.FirstProjectCode(); - Assert.True(firstProjectNbrDescResult != firstProjectNbrAscResult); + Assert.NotEqual(firstProjectNbrDescResult, firstProjectNbrAscResult); //Verify Column Sorting by Project Name searchProjects.OrderByProjectName(); @@ -164,7 +164,7 @@ public void SearchExistingProjects(int rowNumber) searchProjects.OrderByProjectName(); var firstProjectNameAscResult = searchProjects.FirstProjectName(); - Assert.True(firstProjectNameResult != firstProjectNameAscResult); + Assert.NotEqual(firstProjectNameResult, firstProjectNameAscResult); //Verify Column Sorting Last Updated By searchProjects.OrderByProjectLastUpdatedBy(); @@ -173,7 +173,7 @@ public void SearchExistingProjects(int rowNumber) searchProjects.OrderByProjectLastUpdatedBy(); var firstProjectLastUpdatedByAscResult = searchProjects.FirstProjectLastUpdatedBy(); - Assert.True(firstProjectLastUpdatedByDescResult != firstProjectLastUpdatedByAscResult); + Assert.NotEqual(firstProjectLastUpdatedByDescResult, firstProjectLastUpdatedByAscResult); //Verify Column Sorting Last Updated Date searchProjects.OrderByProjectLastUpdatedDate(); @@ -182,7 +182,17 @@ public void SearchExistingProjects(int rowNumber) searchProjects.OrderByProjectLastUpdatedDate(); var firstProjectLastUpdatedDateAscResult = searchProjects.FirstProjectLastUpdatedDate(); - Assert.True(firstProjectLastUpdatedDateDescResult != firstProjectLastUpdatedDateAscResult); + Assert.NotEqual(firstProjectLastUpdatedDateDescResult, firstProjectLastUpdatedDateAscResult); + + //Verify Pagination display different set of results + sharedPagination.ResetSearch(); + + var firstProjectPage1 = searchProjects.FirstProjectName(); + sharedPagination.GoNextPage(); + var firstProjectPage2 = searchProjects.FirstProjectName(); + Assert.NotEqual(firstProjectPage1, firstProjectPage2); + + sharedPagination.ResetSearch(); //Filter Projects by Region searchProjects.SearchProjectByRegion("Northern Region"); diff --git a/testing/PIMS.Tests.Automation/StepDefinitions/ResearchFileSteps.cs b/testing/PIMS.Tests.Automation/StepDefinitions/ResearchFileSteps.cs index 25c1a3a478..0be6d3fd9c 100644 --- a/testing/PIMS.Tests.Automation/StepDefinitions/ResearchFileSteps.cs +++ b/testing/PIMS.Tests.Automation/StepDefinitions/ResearchFileSteps.cs @@ -1,5 +1,6 @@ using PIMS.Tests.Automation.Classes; using PIMS.Tests.Automation.Data; +using PIMS.Tests.Automation.PageObjects; using System.Data; namespace PIMS.Tests.Automation.StepDefinitions @@ -10,9 +11,10 @@ public class ResearchFileSteps private readonly LoginSteps loginSteps; private readonly ResearchFiles researchFiles; private readonly SharedFileProperties sharedFileProperties; - private readonly SearchResearchFiles searchResearchFile; + private readonly SearchResearchFiles searchResearchFiles; private readonly PropertyInformation propertyInformation; private readonly SearchProperties searchProperties; + private readonly SharedPagination sharedPagination; private readonly Notes notes; private readonly GenericSteps genericSteps; @@ -26,12 +28,13 @@ public ResearchFileSteps(BrowserDriver driver) loginSteps = new LoginSteps(driver); researchFiles = new ResearchFiles(driver.Current); sharedFileProperties = new SharedFileProperties(driver.Current); - searchResearchFile = new SearchResearchFiles(driver.Current); + sharedPagination = new SharedPagination(driver.Current); + searchResearchFiles = new SearchResearchFiles(driver.Current); propertyInformation = new PropertyInformation(driver.Current); searchProperties = new SearchProperties(driver.Current); - genericSteps = new GenericSteps(driver); notes = new Notes(driver.Current); - + genericSteps = new GenericSteps(driver); + researchFile = new ResearchFile(); } @@ -265,13 +268,105 @@ public void ResearchFileListView(int rowNumber) //Navigate to Research File Search PopulateResearchFile(rowNumber); - searchResearchFile.NavigateToSearchResearchFile(); + searchResearchFiles.NavigateToSearchResearchFile(); + + //Verify Pagination + sharedPagination.ChoosePaginationOption(5); + Assert.Equal(5, searchResearchFiles.ResearchFileTableResultNumber()); + + sharedPagination.ChoosePaginationOption(10); + Assert.Equal(10, searchResearchFiles.ResearchFileTableResultNumber()); + + sharedPagination.ChoosePaginationOption(20); + Assert.Equal(20, searchResearchFiles.ResearchFileTableResultNumber()); + + sharedPagination.ChoosePaginationOption(50); + Assert.Equal(50, searchResearchFiles.ResearchFileTableResultNumber()); + + sharedPagination.ChoosePaginationOption(100); + Assert.Equal(100, searchResearchFiles.ResearchFileTableResultNumber()); + + //Set view to see all Research files + searchResearchFiles.SearchAllResearchFiles(); + + //Verify Column Sorting by File Number + searchResearchFiles.OrderByResearchFileNumber(); + var firstFileNbrDescResult = searchResearchFiles.FirstResearchFileNumber(); + + searchResearchFiles.OrderByResearchFileNumber(); + var firstFileNbrAscResult = searchResearchFiles.FirstResearchFileNumber(); + + Assert.NotEqual(firstFileNbrDescResult, firstFileNbrAscResult); + + //Verify Column Sorting by File Name + searchResearchFiles.OrderByResearchFileName(); + var firstFileNameDescResult = searchResearchFiles.FirstResearchFileName(); + + searchResearchFiles.OrderByResearchFileName(); + var firstFileNameAscResult = searchResearchFiles.FirstResearchFileName(); + + Assert.NotEqual(firstFileNameDescResult, firstFileNameAscResult); + + //Verify Column Sorting by Created By + searchResearchFiles.OrderByResearchFileCreatedBy(); + var firstCreatedByDescResult = searchResearchFiles.FirstResearchCreatedBy(); + + searchResearchFiles.OrderByResearchFileCreatedBy(); + var firstCreatedByAscResult = searchResearchFiles.FirstResearchCreatedBy(); + + Assert.NotEqual(firstCreatedByDescResult, firstCreatedByAscResult); + + //Verify Column Sorting by Created Date + searchResearchFiles.OrderByResearchCreatedDate(); + var firstCreatedDateDescResult = searchResearchFiles.FirstResearchCreatedDate(); + + searchResearchFiles.OrderByResearchCreatedDate(); + var firstCreatedDateAscResult = searchResearchFiles.FirstResearchCreatedDate(); + + Assert.NotEqual(firstCreatedDateDescResult, firstCreatedDateAscResult); + + //Verify Column Sorting by Last Updated By + searchResearchFiles.OrderByResearchLastUpdatedBy(); + var firstUpdatedByDescResult = searchResearchFiles.FirstResearchUpdatedBy(); + + searchResearchFiles.OrderByResearchLastUpdatedBy(); + var firstUpdatedByAscResult = searchResearchFiles.FirstResearchUpdatedBy(); + + Assert.NotEqual(firstUpdatedByDescResult, firstUpdatedByAscResult); + + //Verify Column Sorting by Last Updated Date + searchResearchFiles.OrderByResearchUpdatedDate(); + var firstUpdatedDateDescResult = searchResearchFiles.FirstResearchUpdatedDate(); + + searchResearchFiles.OrderByResearchUpdatedDate(); + var firstUpdatedDateAscResult = searchResearchFiles.FirstResearchUpdatedDate(); + + Assert.NotEqual(firstUpdatedDateDescResult, firstUpdatedDateAscResult); + + //Verify Column Sorting by Status + searchResearchFiles.OrderByResearchStatus(); + var firstStatusDescResult = searchResearchFiles.FirstResearchFileStatus(); + + searchResearchFiles.OrderByResearchStatus(); + var firstStatusAscResult = searchResearchFiles.FirstResearchFileStatus(); + + Assert.NotEqual(firstStatusDescResult, firstStatusAscResult); + + //Verify Pagination display different set of results + sharedPagination.ResetSearch(); + + var firstResearchPage1 = searchResearchFiles.FirstResearchFileNumber(); + sharedPagination.GoNextPage(); + var firstResearchPage2 = searchResearchFiles.FirstResearchFileNumber(); + Assert.NotEqual(firstResearchPage1, firstResearchPage2); + + sharedPagination.ResetSearch(); //Filter research Files - searchResearchFile.FilterResearchFiles(researchFile.ResearchFileName, researchFile.Status, researchFile.RoadName, "TRANPSP1"); - Assert.True(searchResearchFile.SearchFoundResults()); + searchResearchFiles.FilterResearchFiles(researchFile.ResearchFileName, researchFile.Status, researchFile.RoadName, "TRANPSP1"); + Assert.True(searchResearchFiles.SearchFoundResults()); - searchResearchFile.FilterResearchFiles("Automated", "Closed", "Happy", "TRANPSP1"); + searchResearchFiles.FilterResearchFiles("Automated", "Closed", "Happy", "TRANPSP1"); } [StepDefinition(@"A new Research File is created successfully")] @@ -279,20 +374,20 @@ public void NewResearchFileCreated() { /* TEST COVERAGE: PSP-4556, PSP-3294 */ - searchResearchFile.NavigateToSearchResearchFile(); - searchResearchFile.SearchResearchFileByRFile(researchFileCode); + searchResearchFiles.NavigateToSearchResearchFile(); + searchResearchFiles.SearchResearchFileByRFile(researchFileCode); - searchResearchFile.VerifyResearchFileListView(); - searchResearchFile.VerifyResearchFileTableContent(researchFile, userName); + searchResearchFiles.VerifyResearchFileListView(); + searchResearchFiles.VerifyResearchFileTableContent(researchFile, userName); - searchResearchFile.Dispose(); + searchResearchFiles.Dispose(); } [StepDefinition(@"Research File Properties remain unchanged")] public void SearchResearchFileResult() { - Assert.False(searchResearchFile.SearchFoundResults()); - searchResearchFile.Dispose(); + Assert.False(searchResearchFiles.SearchFoundResults()); + searchResearchFiles.Dispose(); } private void PopulateResearchFile(int rowNumber) From c05e012de951f05ca561bc67fa7082cdc44e589b Mon Sep 17 00:00:00 2001 From: Sue Tairaku Date: Wed, 20 Mar 2024 16:52:32 -0700 Subject: [PATCH 2/9] Automation - changes based on Build updates --- .../PIMS.Tests.Automation/Classes/Property.cs | 20 ++ .../Data/PIMS_Testing_Data.xlsx | Bin 101086 -> 103634 bytes .../Features/DispositionFiles.feature | 14 +- .../Features/DispositionFiles.feature.cs | 39 +++- .../Features/Properties.feature | 5 +- .../Features/Properties.feature.cs | 26 ++- .../Features/SubdivisionConsolidation.feature | 13 ++ .../SubdivisionConsolidation.feature.cs | 139 ++++++++++++ .../PIMS.Tests.Automation.csproj | 2 +- .../PageObjects/AcquisitionDetails.cs | 14 +- .../PageObjects/DispositionFileDetails.cs | 2 - .../PageObjects/DispositionOfferSale.cs | 9 +- .../PageObjects/Projects.cs | 3 +- .../PageObjects/PropertyInformation.cs | 28 ++- .../PageObjects/SearchProperties.cs | 77 ++++++- .../PageObjects/SharedFileProperties.cs | 12 +- .../PageObjects/SharedPagination.cs | 9 +- .../SubdivisionConsolidationProperties.cs | 203 ++++++++++++++++++ .../PageObjects/SubdivisionProperties.cs | 86 -------- .../StepDefinitions/AcquisitionFileSteps.cs | 8 +- .../StepDefinitions/AdminToolSteps.cs | 5 + .../StepDefinitions/ContactsSteps.cs | 8 +- .../StepDefinitions/DispositionFileSteps.cs | 8 +- .../StepDefinitions/LeaseLicenseSteps.cs | 6 +- .../StepDefinitions/PropertiesSteps.cs | 116 +++++++++- .../StepDefinitions/ResearchFileSteps.cs | 3 +- .../SubdivisionsConsolidationsSteps.cs | 101 +++++++++ 27 files changed, 787 insertions(+), 169 deletions(-) create mode 100644 testing/PIMS.Tests.Automation/Features/SubdivisionConsolidation.feature create mode 100644 testing/PIMS.Tests.Automation/Features/SubdivisionConsolidation.feature.cs create mode 100644 testing/PIMS.Tests.Automation/PageObjects/SubdivisionConsolidationProperties.cs delete mode 100644 testing/PIMS.Tests.Automation/PageObjects/SubdivisionProperties.cs create mode 100644 testing/PIMS.Tests.Automation/StepDefinitions/SubdivisionsConsolidationsSteps.cs diff --git a/testing/PIMS.Tests.Automation/Classes/Property.cs b/testing/PIMS.Tests.Automation/Classes/Property.cs index a2916734c7..4d1826d802 100644 --- a/testing/PIMS.Tests.Automation/Classes/Property.cs +++ b/testing/PIMS.Tests.Automation/Classes/Property.cs @@ -100,4 +100,24 @@ public class ManagementPropertyActivityInvoice public string PropertyActivityInvoicePSTAmount { get; set; } = null!; public string PropertyActivityInvoiceTotalAmount { get; set; } = null!; } + + public class PropertyHistory + { + public string PropertyHistoryIdentifier { get; set; } = null!; + public string PropertyHistoryPlan { get; set; } = null!; + public string PropertyHistoryStatus { get; set; } = null!; + public string PropertyHistoryArea { get; set; } = null!; + } + + public class PropertySubdivision + { + public PropertyHistory SubdivisionSource { get; set; } = new PropertyHistory(); + public List SubdivisionDestination { get; set; } = new List(); + } + + public class PropertyConsolidation + { + public List ConsolidationSource { get; set; } = new List(); + public PropertyHistory ConsolidationDestination { get; set; } = new PropertyHistory(); + } } diff --git a/testing/PIMS.Tests.Automation/Data/PIMS_Testing_Data.xlsx b/testing/PIMS.Tests.Automation/Data/PIMS_Testing_Data.xlsx index 4ef068e9abc6fe65d9b83106991e1bfa7a465b2f..97d05fd89fc1cc01c1efec6ff06391a70220d6f1 100644 GIT binary patch delta 76447 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 z%0A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

L{h0ERr019J0*8&R_z307N9SDU+t{pOOScd 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