public void ATC6708_CRMDistributeAmountForContributors() { #region Start Up Excel MyBook = MyApp.Workbooks.Open(DatasourceDir + @"\TenancyRequests.xlsx", 0, false, 5, "", "", true, Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0); MySheet = (Excel.Worksheet)MyBook.Sheets[Properties.Settings.Default.ENVIRONMENT.ToString()]; MyRange = MySheet.UsedRange; //Get specific row for the data int testDataRows = MyRange.Rows.Count; int MyRow = 0; for (int i = 2; i <= testDataRows; i++) { if (MyRange.Cells[i, 1].Value.ToString() == "6708") { MyRow = i; break; } } #endregion string secondContributor = MyRange.Cells[MyRow, TenancyRequestSchema.GetColumnIndex("MISC1")].Value.ToString(); string thridContributor = MyRange.Cells[MyRow, TenancyRequestSchema.GetColumnIndex("MISC2")].Value.ToString(); //Login as RBS Operations Standard user role. User user = this.environment.GetUser(SecurityRole.RBSOfficer); new LoginDialog().Login(user.Id, user.Password); //Navigate to: Rental Bond Services > Tenancy Requests HomePage homePage = new HomePage(driver); homePage.HoverCRMRibbonTab(); homePage.ClickRBSRibbonButton(); homePage.HoverRBSRibbonTab(); homePage.ClickRtaTenancyRequestRibbonButton(); //Create new Tenancy Request with mandatory fields populated TenancyRequestsSearchPage tenancyRequestSearchPage = new TenancyRequestsSearchPage(driver); tenancyRequestSearchPage.ClickNewTenancyRequestButton(); TenancyRequestPage tenancyRequestPage = new TenancyRequestPage(driver); tenancyRequestPage.ClickPageTitle(); string initialRequestParty = MyRange.Cells[MyRow, TenancyRequestSchema.GetColumnIndex("INITIAL_REQUEST_PARTY")].Value.ToString(); string initialContribution = MyRange.Cells[MyRow, TenancyRequestSchema.GetColumnIndex("INITIAL_CONTRIBUTION")].Value.ToString(); tenancyRequestPage.PopulateMandatoryFieldValues( MyRange.Cells[MyRow, TenancyRequestSchema.GetColumnIndex("REQUEST_TYPE")].Value.ToString(), MyRange.Cells[MyRow, TenancyRequestSchema.GetColumnIndex("RENTAL_PREMISES")].Value.ToString(), MyRange.Cells[MyRow, TenancyRequestSchema.GetColumnIndex("MANAGING_PARTY")].Value.ToString(), MyRange.Cells[MyRow, TenancyRequestSchema.GetColumnIndex("TENANCY_TYPE")].Value.ToString(), MyRange.Cells[MyRow, TenancyRequestSchema.GetColumnIndex("MANAGEMENT_TYPE")].Value.ToString(), MyRange.Cells[MyRow, TenancyRequestSchema.GetColumnIndex("NO_ROOMS")].Value.ToString(), initialRequestParty, MyRange.Cells[MyRow, TenancyRequestSchema.GetColumnIndex("WEEKLY_RENT")].Value.ToString(), initialContribution, MyRange.Cells[MyRow, TenancyRequestSchema.GetColumnIndex("AMOUNT_PAID_LODGEMENT")].Value.ToString(), MyRange.Cells[MyRow, TenancyRequestSchema.GetColumnIndex("LODGEMENT_TYPE")].Value.ToString(), MyRange.Cells[MyRow, TenancyRequestSchema.GetColumnIndex("TENANCY_START")].Value.ToString(), MyRange.Cells[MyRow, TenancyRequestSchema.GetColumnIndex("ANTICIPATED_END")].Value.ToString(), MyRange.Cells[MyRow, TenancyRequestSchema.GetColumnIndex("PAYMENT_TYPE")].Value.ToString()); //Save Tenancy Record tenancyRequestPage.ClickSaveButton(); string tenancyRequest = tenancyRequestPage.GetRequestNumber(); //Inspect Screen for Warnings "Warning displays that {Amount Paid with Lodgement} field <> sum of contributors." string warningMessage = tenancyRequestPage.GetWarningMessage(); StringAssert.Contains(warningMessage, "Sum of Request does not equal the amount entered for Amount Paid with Lodgement","Validating the warning appears"); //Click the ribbon button Distribute and Save the record. Warnings should disappear string alertMessage = tenancyRequestPage.ClickDistributeButton(); StringAssert.Contains(alertMessage, "Distribution process has been initiated"); //TODO:This is an issue an extra save dialog pops up and clicking OK button on this. string saveMessage = tenancyRequestPage.GetAlertMessage(); StringAssert.Contains(saveMessage, "Your changes have not been saved"); warningMessage = tenancyRequestPage.GetWarningMessage(); Assert.AreEqual(warningMessage, "","Validating that warning message disappeared"); //Add another contributor and populate amount field with > $1. Save Record. Warning should appear. string BaseWindow = driver.CurrentWindowHandle; //Records the current window handle tenancyRequestPage.ClickAddNewRequestPartyImage(); Thread.Sleep(2000); driver = tenancyRequestPage.SwitchNewBrowser(driver, BaseWindow); TenancyRequestPartyPage tenancyRequestPartyPage = new TenancyRequestPartyPage(driver); tenancyRequestPartyPage.ClickPageTitle(); tenancyRequestPartyPage.SetClientNameValue(secondContributor); tenancyRequestPartyPage.SetAmountValue("100"); tenancyRequestPartyPage.ClickSaveCloseButton(); driver = driver.SwitchTo().Window(BaseWindow); tenancyRequestPage = new TenancyRequestPage(driver); tenancyRequestPage.ClickPageTitle(); tenancyRequestPage.ClickSaveButton(); //TODO:Issue the waning does not appear without refreshing the record.This is a workaround. homePage.HoverCRMRibbonTab(); homePage.ClickRBSRibbonButton(); homePage.HoverRBSRibbonTab(); homePage.ClickRtaTenancyRequestRibbonButton(); tenancyRequestSearchPage = new TenancyRequestsSearchPage(driver); tenancyRequestSearchPage.SetTenancyRequestSearchText(tenancyRequest); Table table = new Table(tenancyRequestSearchPage.GetSearchResultTable()); StringAssert.Contains(table.GetCellValue("Name", tenancyRequest, "Status Reason"), "New"); table.ClickCellValue("Name", tenancyRequest, "Name"); tenancyRequestPage = new TenancyRequestPage(driver); tenancyRequestPage.ClickPageTitle(); //Inspect warning appears warningMessage = tenancyRequestPage.GetWarningMessage(); StringAssert.Contains(warningMessage, "Sum of Request does not equal the amount entered for Amount Paid with Lodgement","Validating that the warning appears"); //Add another contributor and populate amount field with > $1. Save Record. Warning should appear. BaseWindow = driver.CurrentWindowHandle; //Records the current window handle tenancyRequestPage.ClickAddNewRequestPartyImage(); Thread.Sleep(2000); driver = tenancyRequestPage.SwitchNewBrowser(driver, BaseWindow); tenancyRequestPartyPage = new TenancyRequestPartyPage(driver); tenancyRequestPartyPage.ClickPageTitle(); tenancyRequestPartyPage.SetClientNameValue(thridContributor); tenancyRequestPartyPage.SetAmountValue("100"); tenancyRequestPartyPage.ClickSaveCloseButton(); driver = driver.SwitchTo().Window(BaseWindow); tenancyRequestPage = new TenancyRequestPage(driver); tenancyRequestPage.ClickPageTitle(); tenancyRequestPage.ClickSaveButton(); //Inspect warning appears warningMessage = tenancyRequestPage.GetWarningMessage(); StringAssert.Contains(warningMessage, "Sum of Request does not equal the amount entered for Amount Paid with Lodgement","Validating that the warning appears"); //Click the ribbon button Distribute and Save the record. Warning should disappear. alertMessage = tenancyRequestPage.ClickDistributeButton(); StringAssert.Contains(alertMessage, "Distribution process has been initiated"); tenancyRequestPage = new TenancyRequestPage(driver); tenancyRequestPage.ClickSaveButton(); //Issue the waning does disappear not appear without refreshing the record.This is a workaround. homePage.HoverCRMRibbonTab(); homePage.ClickRBSRibbonButton(); homePage.HoverRBSRibbonTab(); homePage.ClickRtaTenancyRequestRibbonButton(); tenancyRequestSearchPage = new TenancyRequestsSearchPage(driver); tenancyRequestSearchPage.SetTenancyRequestSearchText(tenancyRequest); table = new Table(tenancyRequestSearchPage.GetSearchResultTable()); StringAssert.Contains(table.GetCellValue("Name", tenancyRequest, "Status Reason"), "New"); table.ClickCellValue("Name", tenancyRequest, "Name"); tenancyRequestPage = new TenancyRequestPage(driver); tenancyRequestPage.ClickPageTitle(); //Warning disappears warningMessage = tenancyRequestPage.GetWarningMessage(); Assert.AreEqual(warningMessage, "", "Validating that warning message disappeared"); //Modify amount paid with lodgemnt to $1500 and inspect warning appears tenancyRequestPage.SetAmountPaidWithLodgement("1500"); tenancyRequestPage.ClickSaveButton(); warningMessage = tenancyRequestPage.GetWarningMessage(); StringAssert.Contains(warningMessage, "Sum of Request does not equal the amount entered for Amount Paid with Lodgement","Validating that the warning appears"); //TODO:Modify Contibutor amount to be different but still adds up to amount. Inspect warning disappears Table requestPartyTable = new Table(tenancyRequestPage.GetRequestPartyTable()); StringAssert.Contains(requestPartyTable.GetCellContainsValue("Client", secondContributor, "Request Amount"), "400"); BaseWindow = driver.CurrentWindowHandle; UICommon.DoubleClickElement(requestPartyTable.GetCellElementContainsValue("Client", secondContributor, "Client"), driver); Thread.Sleep(1000); driver = tenancyRequestPage.SwitchNewBrowser(driver, BaseWindow); tenancyRequestPartyPage = new TenancyRequestPartyPage(driver); tenancyRequestPartyPage.ClickPageTitle(); tenancyRequestPartyPage.SetAmountValue("700"); tenancyRequestPage.ClickSaveCloseButton(); driver = driver.SwitchTo().Window(BaseWindow); tenancyRequestPage = new TenancyRequestPage(driver); tenancyRequestPage.ClickPageTitle(); tenancyRequestPage.ClickSaveButton(); //TODO.WArnings does not disappear without refreshing the record. This is a workaround. homePage.HoverCRMRibbonTab(); homePage.ClickRBSRibbonButton(); homePage.HoverRBSRibbonTab(); homePage.ClickRtaTenancyRequestRibbonButton(); tenancyRequestSearchPage = new TenancyRequestsSearchPage(driver); tenancyRequestSearchPage.SetTenancyRequestSearchText(tenancyRequest); table = new Table(tenancyRequestSearchPage.GetSearchResultTable()); StringAssert.Contains(table.GetCellValue("Name", tenancyRequest, "Status Reason"), "New"); table.ClickCellValue("Name", tenancyRequest, "Name"); tenancyRequestPage = new TenancyRequestPage(driver); tenancyRequestPage.ClickPageTitle(); //Warning disappears warningMessage = tenancyRequestPage.GetWarningMessage(); Assert.AreEqual(warningMessage, "", "Validating that warning message disappeared"); //Modify amount paid with lodgement to be $900 tenancyRequestPage.SetAmountPaidWithLodgement("900"); tenancyRequestPage.ClickSaveButton(); //Warning appears warningMessage = tenancyRequestPage.GetWarningMessage(); StringAssert.Contains(warningMessage, "Sum of Request does not equal the amount entered for Amount Paid with Lodgement","Validating that the warning appesrs"); //Click Distribute and save the record. Warning should disappear tenancyRequestPage.ClickDistributeButton(); tenancyRequestPage.ClickSaveButton(); warningMessage = tenancyRequestPage.GetWarningMessage(); Assert.AreEqual(warningMessage, "", "Validating that warning message disappeared"); #region Shut down Excel MyBook.Save(); MyBook.Close(); MyApp.Quit(); #endregion }