public void ATC3330_CRMInvestigationValidateSubstatusAfterSelectingStatus() { //Login in as role User user = this.environment.GetUser(SecurityRole.Investigations); new LoginDialog().Login(user.Id, user.Password); HomePage homePage = new HomePage(driver); homePage.HoverCRMRibbonTab(); homePage.ClickInvestigationsRibbonButton(); homePage.HoverInvestigationsRibbonTab(); homePage.ClickInvestigationsCasesRibbonButton(); // Create new investigation case InvestigationCaseSearchPage investigationCaseSearchPage = new InvestigationCaseSearchPage(driver); investigationCaseSearchPage.ClickNewInvestigationCaseButton(); InvestigationCasePage investigationCasePage = new InvestigationCasePage(driver); string BaseWindow = driver.CurrentWindowHandle; //Records the current window handles investigationCasePage.ClickPageTitle(); investigationCasePage.SetStatus("Investigation current"); investigationCasePage.ClickPageTitle(); investigationCasePage.SetSubStatus("Conducting background searches"); investigationCasePage.ClickPageTitle(); investigationCasePage.ClickSaveButton(); string investigationID = investigationCasePage.GetInvestigationCaseNumber(); // Now close the investigation case investigationCasePage.ClickStartDialogButton(); Table table = new Table(investigationCasePage.GetProcessSearchResultTable()); table.ClickCell("Process Name", "INV: Close investigation case", "Created On"); BaseWindow = driver.CurrentWindowHandle; //Records the current window handle investigationCasePage.ClickDialogAddButton(); driver = UICommon.SwitchToNewBrowserWithTitle(driver, BaseWindow, "INV:"); INVPage iNVPage = new INVPage(driver); iNVPage.ClickNextButton(); iNVPage.ClickNextButton(); iNVPage.ClickNextButton(); iNVPage.ClickFinishButton(); driver = driver.SwitchTo().Window(BaseWindow); // Now Investigation case is closed.. verify that this case is not seen in active Investigation case investigationCasePage.ClickSaveButton(); // RE-OPEN the Investigation Case by running the dialog investigationCasePage.ClickStartDialogButton(); table = new Table(investigationCasePage.GetProcessSearchResultTable()); table.ClickCell("Process Name", "INV: Re-open investigation case", "Created On"); BaseWindow = driver.CurrentWindowHandle; //Records the current window handle investigationCasePage.ClickDialogAddButton(); driver = UICommon.SwitchToNewBrowserWithTitle(driver, BaseWindow, "INV:"); iNVPage = new INVPage(driver); iNVPage.ClickNextButton(); iNVPage.ClickNextButton(); iNVPage.ClickFinishButton(); driver = driver.SwitchTo().Window(BaseWindow); investigationCasePage.ClickSaveButton(); // Select any Status and verify that list of "Sub-status" is correctly displayed investigationCasePage.SetStatus("Case finalisation"); investigationCasePage.ClickPageTitle(); // Verify that Sub-status is cleared off and error message is thrown investigationCasePage.ClickSubStatusText(); StringAssert.Contains(investigationCasePage.GetSubStatusErrorText(), "You must provide a value for Sub Status."); investigationCasePage.ClickPageTitle(); investigationCasePage.ClickSubStatusSearchButton(); Assert.IsTrue(investigationCasePage.FindSubStatusFromDropdown("Case closed discussion")); Assert.IsTrue(investigationCasePage.FindSubStatusFromDropdown("Close without further action")); Assert.IsTrue(investigationCasePage.FindSubStatusFromDropdown("Educating respondent(s)")); Assert.IsTrue(investigationCasePage.FindSubStatusFromDropdown("Prosecution required")); Assert.AreEqual(4, investigationCasePage.GetSubStatusCount()); }