@Test(
      priority = 405,
      description =
          "Entry Criteria : A district organization is selected from the Display list box, leaving the Grades and Filter list box at -- All Grades --  and -- All User Types --, the 'Go' button is clicked. </br> Execution Criteria : Verify the search "
              + "results table shows all users associated to the district organization </br> Exit Criteria : User is in Users landing page.")
  public void checkResultsRowsForAllUsersUnderDistrict() {
    page.clickHomeTabBtn();
    page.clickUsrTabBtn();

    ((UsersBasePage) page)
        .selectItemFromUsersTypeDropDown(UsersTypeDropDown.ALL_USER_TYPE.getType());
    ((UsersBasePage) page).clickUsersGoBtn();
    // assertEquals( ( (UsersBasePage) page ).getRowsCountFromFooter(), ( (UsersBasePage) page
    // ).getRowsCountFromUsersTable(), "Count in Footer does not match" );
    // TODO : SQL for data validation of all users pertaining to District needed.
  }
 @Test(
     priority = 410,
     description =
         "Entry Criteria :A district organization is selected from the Display list box, leaving the Grades and Filter list box at -- All Grades --  and -- All Active Students --, the 'Go' button is clicked. </br> Execution Criteria : Verify the "
             + "text of the 'Add Users to Group' button to the left of the 'Remove' button. </br> Exit Criteria : User is in Users landing page.  ")
 public void checkTextOfAddUsersToGroupButtonForDistrictAllActiveStudents() {
   page.clickHomeTabBtn();
   page.clickUsrTabBtn();
   ((UsersBasePage) page)
       .selectItemFromUsersTypeDropDown(UsersTypeDropDown.ALL_ACTIVE_STUDENTS.getType());
   ((UsersBasePage) page).clickUsersGoBtn();
   assertEquals(
       ((UsersBasePage) page).getUsersAddUserToGroupBtn().getText(),
       appProperties.getProperty("UsersAddUserToGroupBtnText"),
       "Mismatch in the \"Add Users to Group\" button Text. ");
   log.info(UsersConstants.VERIFICATION_SUCCESS);
 }
  @Test(
      priority = 409,
      description =
          "Entry Criteria :A district organization is selected from the Display list box, leaving the Grades and Filter list box at -- All Grades --  and -- All Active Students --, the 'Go' button is clicked. </br> Execution Criteria : Verify the "
              + "presence of the 'Add Users to Group' button to the left of the 'Remove' button. </br> Exit Criteria : User is in Users landing page.  ")
  public void checkPresenceOfAddUsersToGroupButtonForDistrictAllActiveStudents() {
    page.clickHomeTabBtn();
    page.clickUsrTabBtn();

    ((UsersBasePage) page)
        .selectItemFromUsersTypeDropDown(UsersTypeDropDown.ALL_ACTIVE_STUDENTS.getType());
    ((UsersBasePage) page).clickUsersGoBtn();
    assertNotNull(
        ((UsersBasePage) page).getUsersAddUserToGroupBtn(),
        "Add User To Group button was not found");
    log.info(UsersConstants.VERIFICATION_SUCCESS);
  }
  @Test(
      priority = 411,
      description =
          "Entry Criteria :A district organization is selected from the Display list box, leaving the Grades and Filter list box at -- All Grades --  and -- All Active Students --, the 'Go' button is clicked. </br> Execution Criteria : Verify "
              + "the 'Add Users to Group' button is in inactive state </br> Exit Criteria : User is in Users landing page.  ")
  public void checkIfDisabledAddUsersToGroupButtonForDistrictAllActiveStudents() {
    page.clickHomeTabBtn();
    page.clickUsrTabBtn();

    ((UsersBasePage) page)
        .selectItemFromUsersTypeDropDown(UsersTypeDropDown.ALL_ACTIVE_STUDENTS.getType());
    ((UsersBasePage) page).clickUsersGoBtn();
    assertEquals(
        ((UsersBasePage) page).getAttributeAddUserToGroupBtn(),
        LocatorConstants.ADD_USER_BTN_DISABLED,
        "Add User To Group button is not in Disabled state");
    log.info(UsersConstants.VERIFICATION_SUCCESS);
  }
  @Test(
      priority = 402,
      dataProvider = "getResultCountInFooterText",
      description =
          "Entry Criteria : A district organization is selected from the Display list box, leaving the Grades and Filter list box at -- All Grades --  selecting a User from "
              + "the drop down, the 'Go' button is clicked. </br> Execution Criteria : Verify the results label <# of system or district administrators associated to the district org> Users Found</br> Exit Criteria : User is in Users landing page.")
  public void checkResultsRowsCountInFooterLabelTextAllUsersAndAdmins(
      UsersTypeDropDown userType, String errorMessage, String verificationSuccessMsg) {
    page.clickHomeTabBtn();
    page.clickUsrTabBtn();

    ((UsersBasePage) page).selectItemFromUsersTypeDropDown(userType.getType());
    ((UsersBasePage) page).clickUsersGoBtn();
    assertEquals(
        ((UsersBasePage) page).getRowsCountFromFooter(),
        ((UsersBasePage) page).getRowsCountFromUsersTable(),
        errorMessage);
    log.info(verificationSuccessMsg);
  }
  @Test(
      priority = 407,
      dataProvider = "forZeroUsersFoundDistrict",
      description =
          "Entry Criteria : A district organization is selected from the Display list box, leaving the Grades and Filter list box at -- All Grades --  and a User is selected from the Users Drop Down, "
              + "then 'Go' button is clicked. </br> Execution Criteria : Verify the footer text \"0 Users Found\" appears at the bottom of the search results </br> Exit Criteria : User is in Users landing page.")
  public void checkZeroUsersFoundForDistrict(UsersTypeDropDown userType, String errorMessage) {
    page.clickHomeTabBtn();
    page.clickUsrTabBtn();

    ((UsersBasePage) page)
        .selectItemFromUsersTypeDropDown(UsersTypeDropDown.ALL_ACTIVE_STUDENTS.getType());
    ((UsersBasePage) page).clickUsersGoBtn();
    assertEquals(
        ((UsersBasePage) page).getNumOfUsersFoundFooterText(),
        appProperties.getProperty("UsersZeroUsersFooterText"),
        "Footer text does not match ");
    log.info(UsersConstants.VERIFICATION_SUCCESS);
  }
 @Test(
     priority = 401,
     description =
         "Entry Criteria : A district organization is selected from the Display list box, leaving the Grades and Filter list box at -- All Grades --  and -- All Groups --, the 'Go' button is clicked. </br> Execution Criteria : Verify the "
             + "presence of the 'Remove' button on the left side of the screen, on the same bar as the 'Transfer Students' button. </br> Exit Criteria : User is in Users landing page.")
 public void checkPresenceOfRemoveButton() {
   page.clickHomeTabBtn();
   page.clickUsrTabBtn();
   ((UsersBasePage) page).clickUsersGoBtn();
   assertNotNull(((UsersBasePage) page).getUsersRemoveBtn(), "Remove button is not present");
   log.info(UsersConstants.VERIFICATION_SUCCESS);
 }
 @Test(
     priority = 412,
     description =
         "Entry Criteria : Click on the Add Users button. </br> Execution Criteria: Verify if an alert with proper text appears and dismiss the alert. </br> Exit Criteria: User is in Users landing page. ")
 public void clickOnAddUserBtn() {
   Map<String, String> actualPageDetails = ((UsersBasePage) page).clickUsersAddUserBtn();
   checkPageDetails(
       actualPageDetails,
       appProperties.getProperty("AdminPageTitle"),
       appProperties.getProperty("AddUsersPageUrl"));
   log.info(UsersConstants.VERIFICATION_SUCCESS);
   ((UsersBasePage) page).getCancelButtonUsersPage().click();
 }