Java tutorial
package com.etak.csrTestFirefox.steps; import com.etak.csrTestFirefox.pages.DashboardPage; import com.etak.csrTestFirefox.pages.HomePage; import com.etak.csrTestFirefox.util.*; import net.thucydides.core.annotations.Step; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; /** * Created by sekarayu on 22/09/2015. */ public class DashboardSteps { private DashboardPage dashboardPage; private HomePage homePage; private DBConnection dbConnection = new DBConnection(); private CountryISO countryISO = new CountryISO(); private CSRutil csRutil = new CSRutil(); private CommonProduct commonProduct = new CommonProduct(); private CommonTT commonTT = new CommonTT(); Logger logger = Logger.getLogger("info"); //set db connection private void setConnect() { try { dbConnection.DBConn2(); } catch (Exception e) { e.printStackTrace(); } } //close db connection private void closeConnection() { try { dbConnection.stmt.close(); dbConnection.conn.close(); } catch (Exception e) { e.printStackTrace(); } } @Step public void searchMsisdn(String msisdn) { homePage.searchBox.typeAndEnter(msisdn); } //for header, add blank before and after @Step public void searchMsisdnBlank(String msisdn) { homePage.searchBox.typeAndEnter(" " + msisdn + " "); } @Step public void waitDashLoad() { try { Thread.sleep(20000); } catch (InterruptedException e) { e.printStackTrace(); } } //get cust id from page public String getcustid() { String custid = dashboardPage.dashcustid.getText(); System.out.println("CUSTID = " + custid); return custid; } //assert name private String assertName() { String custid = getcustid(); String query = "SELECT FIRSTNAME, LASTNAME FROM CRM_CUSTOMERS (NOLOCK) WHERE CUSTOMERID =" + custid; String name = ""; String fname = ""; String lname = ""; setConnect(); try { ResultSet rs = dbConnection.stmt.executeQuery(query); if (rs.next()) { fname = rs.getString("FIRSTNAME"); lname = rs.getString("LASTNAME"); if (rs.wasNull()) { name = "null"; } else { name = fname + " " + lname; } } } catch (SQLException e) { e.printStackTrace(); } closeConnection(); return name; } @Step public void checkName() { String namedb = assertName(); boolean cekname = false; String namepg = dashboardPage.dashname.getTextValue().toString(); if (namedb.equals("null") || namedb.equals("") || namedb.equals(" ")) { namedb = ":"; } cekname = namepg.contains(namedb); if (cekname == true) { logger.info("Expected: " + namedb + ". Actual: " + namepg); assert true; } else { logger.info("Expected: " + namedb + ". Actual: " + namedb); killSession(); assert false; } } //assert nationality private String assertNat() { String custid = getcustid(); String query = "SELECT NATIONALITY FROM CRM_MVNO_CUSTOMERS_PROPERTY (NOLOCK) WHERE CUSTOMERID=" + custid; String national = ""; setConnect(); try { ResultSet rs = dbConnection.stmt.executeQuery(query); if (rs.next()) { national = rs.getString("NATIONALITY"); if (rs.wasNull()) { national = "null"; } } } catch (SQLException e) { e.printStackTrace(); } closeConnection(); return national; } @Step public void checkNat() { int nationality = Integer.parseInt(assertNat()); String natdb = countryISO.getCountry(nationality); String natpg = dashboardPage.dashnationality.getTextValue().toString(); boolean ceknat = false; if (natdb.equals("null") || natdb.equals("") || natdb.equals(" ") || natdb.equals("0")) { natdb = ":"; } ceknat = natpg.contains(natdb); if (ceknat == true) { logger.info("Expected: " + natdb + ". Actual: " + natpg); assert true; } else { logger.info("Expected: " + natdb + ". Actual: " + natpg); killSession(); assert false; } } //assert date of birth private String assertDob() { String custid = getcustid(); String query = "SELECT DATEOFBIRTH FROM CRM_CUSTOMERS (NOLOCK) WHERE CUSTOMERID=" + custid; String dob = ""; setConnect(); try { ResultSet rs = dbConnection.stmt.executeQuery(query); if (rs.next()) { dob = rs.getString("DATEOFBIRTH"); if (rs.wasNull()) { dob = "null"; } } } catch (SQLException e) { e.printStackTrace(); } closeConnection(); return dob; } @Step public void checkDob() { String dobdb = assertDob(); String dobpg = dashboardPage.dashdob.getTextValue().toString(); boolean cekdob = false; if (dobdb.equals("null") || dobdb.equals("") || dobdb.equals("0") || dobdb.equals(" ")) { dobdb = ":"; } else { String mth = dobdb.substring(5, 7); dobdb = dobdb.substring(8, 10) + " " + csRutil.getMonth(mth) + " " + dobdb.substring(0, 4); } cekdob = dobpg.contains(dobdb); if (cekdob == true) { logger.info("Expected: " + dobdb + ". Actual: " + dobpg); assert true; } else { logger.info("Expected: " + dobdb + ". Actual: " + dobpg); killSession(); assert false; } } //assert id type private String assertIdType() { String custid = getcustid(); String query = "SELECT IDTYPE FROM CRM_CUSTOMERS_PROPERTY (NOLOCK) WHERE CUSTOMERID=" + custid; String idtype = ""; setConnect(); try { ResultSet rs = dbConnection.stmt.executeQuery(query); if (rs.next()) { idtype = rs.getString("IDTYPE"); if (rs.wasNull()) { idtype = "0"; } } } catch (SQLException e) { e.printStackTrace(); } closeConnection(); return idtype; } @Step public void checkIdType() { String idtypedb = assertIdType(); String idtypepg = dashboardPage.dashidtype.getTextValue().toString(); boolean cekidt = false; if ("1".equals(idtypedb)) { idtypedb = "Passport"; } else if ("2".equals(idtypedb)) { idtypedb = "DriversLicense"; } else if ("3".equals(idtypedb)) { idtypedb = "DNI"; } else if ("4".equals(idtypedb)) { idtypedb = "NIF"; } else if ("5".equals(idtypedb)) { idtypedb = "NIE"; } else if ("6".equals(idtypedb)) { idtypedb = "CIF"; } else { idtypedb = ":"; } cekidt = idtypepg.contains(idtypedb); if (cekidt == true) { logger.info("Expected: " + idtypedb + ". Actual: " + idtypepg); assert true; } else { logger.info("Expected: " + idtypedb + ". Actual: " + idtypepg); killSession(); assert false; } } //assert id number private String assertIdNumb() { String custid = getcustid(); String query = "SELECT IDNUMBER FROM CRM_CUSTOMERS_PROPERTY (NOLOCK) WHERE CUSTOMERID=" + custid; String idnum = ""; setConnect(); try { ResultSet rs = dbConnection.stmt.executeQuery(query); if (rs.next()) { idnum = rs.getString("IDNUMBER"); if (rs.wasNull()) { idnum = "0"; } } } catch (SQLException e) { e.printStackTrace(); } closeConnection(); return idnum; } @Step public void checkIdNumb() { String idnumdb = assertIdNumb(); String idnumpg = dashboardPage.dashidnumber.getTextValue().toString(); boolean cekidnum = false; if ("0".equals(idnumdb) || "".equals(idnumdb) || " ".equals(idnumdb)) { idnumdb = ":"; } cekidnum = idnumpg.contains(idnumdb); if (cekidnum == true) { logger.info("Expected: " + idnumdb + ". Actual: " + idnumpg); assert true; } else { logger.info("Expected: " + idnumdb + ". Actual: " + idnumpg); killSession(); assert false; } } //assert cust id private String assertCustId(String msisdn) { String query = "SELECT CUSTOMERID FROM CRM_CUSTOMERS_RESOURCEMB (NOLOCK) WHERE RESOURCE ='" + msisdn + "' AND STATUSID = 1"; String custid = ""; setConnect(); try { ResultSet rs = dbConnection.stmt.executeQuery(query); if (rs.next()) { custid = rs.getString("CUSTOMERID"); if (rs.wasNull()) { custid = "0"; } } } catch (SQLException e) { e.printStackTrace(); } closeConnection(); return custid; } @Step public void checkCustId(String msisdn) { String custiddb = assertCustId(msisdn); String custidpg = dashboardPage.dashcustid.getTextValue().toString(); /*if(custidpg.length() > 2){ custidpg = custidpg.substring(custidpg.lastIndexOf(":")+2); }*/ if (custiddb.equals(custidpg)) { logger.info("Expected: " + custiddb + ". Actual: " + custidpg); assert true; } else { logger.info("Expected: " + custiddb + ". Actual: " + custidpg); killSession(); assert false; } } //assert status private String assertCustStatus() { String custid = getcustid(); String query = "SELECT PENDINGSTATUS FROM CRM_CUSTOMERS_PROPERTY (NOLOCK) WHERE CUSTOMERID = " + custid; String status = ""; setConnect(); try { ResultSet rs = dbConnection.stmt.executeQuery(query); if (rs.next()) { status = rs.getString("PENDINGSTATUS"); } } catch (SQLException e) { e.printStackTrace(); } closeConnection(); return status; } @Step public void checkCustStatus() { String statusdb = assertCustStatus(); String statuspg = dashboardPage.dashstatus.getText().toLowerCase(); if ("1".equals(statusdb)) { statusdb = "pending"; } else if ("2".equals(statusdb)) { statusdb = "active"; } else if ("3".equals(statusdb)) { statusdb = "terminated"; } else if ("5".equals(statusdb)) { statusdb = "preactive"; } else if ("6".equals(statusdb)) { statusdb = "regulatory"; } if (statuspg.contains(statusdb)) { assert true; } else { killSession(); assert false; } } //assert fiscal address private String assertFiscal() { String custid = getcustid(); String query = "SELECT A.HOUSENO AS HOUSENO, A.ADDRESS AS ADDRESS, A.HOUSEEXTENSION AS EXT, A.CITY AS CITY, A.STATE AS STATE, A.ZIPCODE AS ZIP " + "FROM ADDRESSES A, CRM_CUSTOMERS_ADDRESSES B (NOLOCK) " + "WHERE A.ADDRESSID = B.ADDRESSID AND B.USAGE_TYPE = 0 AND B.CUSTOMERID=" + custid; String fiscal = ""; setConnect(); try { ResultSet rs = dbConnection.stmt.executeQuery(query); if (rs.next()) { fiscal = rs.getString("ADDRESS") + " " + rs.getString("HOUSENO") + ", ext. " + rs.getString("EXT") + ", " + rs.getString("CITY") + ", " + rs.getString("STATE") + " " + rs.getString("ZIP"); if (rs.wasNull()) { fiscal = "null"; } } } catch (SQLException e) { e.printStackTrace(); } closeConnection(); return fiscal; } @Step public void checkFiscal() { String fiscaldb = assertFiscal(); String fiscalpg = dashboardPage.dashfiscal.getTextValue().toString(); boolean cekfis = false; if (fiscaldb.equals("null") || fiscaldb.equals("") || fiscaldb.equals(" ")) { fiscaldb = ":"; } cekfis = fiscalpg.contains(fiscaldb); if (cekfis == true) { logger.info("Expected: " + fiscaldb + ". Actual: " + fiscalpg); assert true; } else { logger.info("Expected: " + fiscaldb + ". Actual: " + fiscalpg); killSession(); assert false; } } //assert delivery address private String assertDeliv() { String custid = getcustid(); String query = "SELECT A.HOUSENO AS HOUSENO, A.ADDRESS AS ADDRESS, A.HOUSEEXTENSION AS EXT, A.CITY AS CITY, A.STATE AS STATE, A.ZIPCODE AS ZIP " + "FROM ADDRESSES A, CRM_CUSTOMERS_ADDRESSES B (NOLOCK) " + "WHERE A.ADDRESSID = B.ADDRESSID AND B.USAGE_TYPE = 1 AND B.CUSTOMERID=" + custid; String deliv = ""; setConnect(); try { ResultSet rs = dbConnection.stmt.executeQuery(query); if (rs.next()) { deliv = rs.getString("ADDRESS") + " " + rs.getString("HOUSENO") + ", ext. " + rs.getString("EXT") + ", " + rs.getString("CITY") + ", " + rs.getString("STATE") + " " + rs.getString("ZIP"); if (rs.wasNull()) { deliv = "null"; } } } catch (SQLException e) { e.printStackTrace(); } closeConnection(); return deliv; } @Step public void checkDeliv() { String delivdb = assertDeliv(); String delivpg = dashboardPage.dashdeliv.getTextValue().toString(); boolean cekdeliv = false; if (delivdb.equals("null") || delivdb.equals("") || delivdb.equals(" ")) { delivdb = ":"; } cekdeliv = delivpg.contains(delivdb); if (cekdeliv == true) { logger.info("Expected: " + delivdb + ". Actual: " + delivpg); assert true; } else { logger.info("Expected: " + delivdb + ". Actual: " + delivpg); killSession(); assert false; } } //assert customer address private String assertCustAddr() { String custid = getcustid(); String query = "SELECT A.HOUSENO AS HOUSENO, A.ADDRESS AS ADDRESS, A.HOUSEEXTENSION AS EXT, A.CITY AS CITY, A.STATE AS STATE, A.ZIPCODE AS ZIP " + "FROM ADDRESSES A, CRM_CUSTOMERS_ADDRESSES B (NOLOCK) " + "WHERE A.ADDRESSID = B.ADDRESSID AND B.USAGE_TYPE = 2 AND B.CUSTOMERID=" + custid; String custaddr = ""; setConnect(); try { ResultSet rs = dbConnection.stmt.executeQuery(query); if (rs.next()) { custaddr = rs.getString("ADDRESS") + " " + rs.getString("HOUSENO") + ", ext. " + rs.getString("EXT") + ", " + rs.getString("CITY") + ", " + rs.getString("STATE") + " " + rs.getString("ZIP"); if (rs.wasNull()) { custaddr = "null"; } } } catch (SQLException e) { e.printStackTrace(); } closeConnection(); return custaddr; } @Step public void checkCustAddr() { String custaddrdb = assertCustAddr(); String custaddrpg = dashboardPage.dashcustaddr.getTextValue().toString(); boolean cekcustaddr = false; if (custaddrdb.equals("null") || custaddrdb.equals("") || custaddrdb.equals(" ")) { custaddrdb = ":"; } cekcustaddr = custaddrpg.contains(custaddrdb); if (cekcustaddr == true) { logger.info("Expected: " + custaddrdb + ". Actual: " + custaddrpg); assert true; } else { logger.info("Expected: " + custaddrdb + ". Actual: " + custaddrpg); killSession(); assert false; } } //assert bank number private String assertBanknum() { String custid = getcustid(); String query = "SELECT TOP 1 BANKNUMBER FROM CRM_CUSTOMERS_BANK (NOLOCK) WHERE CUSTOMERID = " + custid + " ORDER BY CREATEDATE DESC"; String banknum = ""; setConnect(); try { ResultSet resultSet = dbConnection.stmt.executeQuery(query); if (resultSet.next()) { banknum = resultSet.getString("BANKNUMBER"); if (resultSet.wasNull()) { banknum = "null"; } } } catch (SQLException e) { e.printStackTrace(); } closeConnection(); return banknum; } @Step public void checkBanknum() { String banknumdb = assertBanknum(); String banknumpg = dashboardPage.dashbanknum.getTextValue().toString(); boolean cekbank = false; if ("null".equals(banknumdb) || "".equals(banknumdb) || " ".equals(banknumdb) || "0".equals(banknumdb)) { banknumdb = ":"; } cekbank = banknumpg.contains(banknumdb); if (cekbank == true) { logger.info("Expected: " + banknumdb + ". Actual: " + banknumpg); assert true; } else { logger.info("Expected: " + banknumdb + ". Actual: " + banknumpg); killSession(); assert false; } } /*SUBSCRIPTION INFORMATION BOX*/ //assert phone number @Step public void checkPhoneNum(String msisdn) { String numpg = dashboardPage.dashphone.getTextValue().toString(); boolean cekph = false; cekph = numpg.contains(msisdn); if (cekph == true) { assert true; } else { killSession(); assert false; } } //assert icc id private String assertIccid() { String custid = getcustid(); //String query = "SELECT ICC FROM CRM_CUSTOMERS_RESOURCEMB (NOLOCK) WHERE RESOURCE='"+msisdn+"' AND STATUSID=1"; String query = "SELECT ICC FROM CRM_CUSTOMERS_RESOURCEMB (NOLOCK) WHERE CUSTOMERID=" + custid; String iccid = ""; setConnect(); try { ResultSet rs = dbConnection.stmt.executeQuery(query); if (rs.next()) { iccid = rs.getString("ICC"); if (rs.wasNull()) { iccid = "0"; } } } catch (SQLException e) { e.printStackTrace(); } closeConnection(); return iccid; } @Step public void checkIccid() { String iccdb = assertIccid(); String iccpg = dashboardPage.dashiccid.getTextValue().toString(); boolean cekicc = false; cekicc = iccpg.contains(iccdb); if (cekicc == true) { logger.info("Expected: " + iccdb + ". Actual: " + iccpg); assert true; } else { logger.info("Expected: " + iccdb + ". Actual: " + iccpg); assert false; } } //assert imsi private String assertImsi() { String custid = getcustid(); //String query = "SELECT IMSI FROM CRM_CUSTOMERS_RESOURCEMB (NOLOCK) WHERE RESOURCE='"+msisdn+"' AND STATUSID=1"; String query = "SELECT IMSI FROM CRM_CUSTOMERS_RESOURCEMB (NOLOCK) WHERE CUSTOMERID=" + custid; String imsi = ""; setConnect(); try { ResultSet rs = dbConnection.stmt.executeQuery(query); if (rs.next()) { imsi = rs.getString("IMSI"); if (rs.wasNull()) { imsi = "0"; } } } catch (SQLException e) { e.printStackTrace(); } closeConnection(); return imsi; } @Step public void checkImsi() { String imsidb = assertImsi(); String imsipg = dashboardPage.dashimsi.getTextValue().toString(); boolean cekimsi = false; cekimsi = imsipg.contains(imsidb); if (cekimsi == true) { logger.info("Expected: " + imsidb + ". Actual: " + imsipg); assert true; } else { logger.info("Expected: " + imsidb + ". Actual: " + imsipg); killSession(); assert false; } } //assert customer type private String assertCustType() { String custid = getcustid(); String query = "SELECT CUSTOMERTYPEID FROM CRM_CUSTOMERS_PROPERTY (NOLOCK) WHERE CUSTOMERID = " + custid; String custype = ""; setConnect(); try { ResultSet rs = dbConnection.stmt.executeQuery(query); if (rs.next()) { custype = rs.getString("CUSTOMERTYPEID"); } } catch (SQLException e) { e.printStackTrace(); } closeConnection(); return custype; } @Step public void checkCustType() { String custypepg = dashboardPage.subsType.getText(); String custypedb = assertCustType(); if (custypedb.equals("0")) { custypedb = "none"; } else if (custypedb.equals("1")) { custypedb = "private"; } else if (custypedb.equals("2")) { custypedb = "business"; } logger.info("Expected : " + custypedb + ". Actual : " + custypepg.toLowerCase()); if (custypedb.equals(custypepg.toLowerCase())) { assert true; } else { killSession(); assert false; } } //assert sim status private String assertSimStatus() { String custid = getcustid(); String query = "SELECT STATUSID FROM CRM_CUSTOMERS_RESOURCEMB (NOLOCK) WHERE CUSTOMERID = " + custid; String simstat = ""; setConnect(); try { ResultSet resultSet = dbConnection.stmt.executeQuery(query); if (resultSet.next()) { simstat = resultSet.getString("STATUSID"); } } catch (SQLException e) { e.printStackTrace(); } closeConnection(); return simstat; } @Step public void checkSimStatus() { String simstatpg = dashboardPage.simStatus.getText(); String simstatdb = assertSimStatus(); if (simstatdb.equals("1")) { simstatdb = "active"; } else if (simstatdb.equals("2")) { simstatdb = "deactive"; } else if (simstatdb.equals("3")) { simstatdb = "expired"; } else if (simstatdb.equals("8")) { simstatdb = "init"; } else if (simstatdb.equals("9")) { simstatdb = "installed"; } else if (simstatdb.equals("10")) { simstatdb = "inactive"; } else if (simstatdb.equals("11")) { simstatdb = "frozen"; } else if (simstatdb.equals("15")) { simstatdb = "reserved"; } else if (simstatdb.equals("20")) { simstatdb = "deleted"; } else if (simstatdb.equals("0")) { simstatdb = "notinauc"; } logger.info("Expected : " + simstatdb + ". Actual : " + simstatpg.toLowerCase()); if (simstatdb.equals(simstatpg.toLowerCase())) { assert true; } else { killSession(); assert false; } } //assert create date private String assertCreateDt() { String custid = getcustid(); String query = "SELECT CREATEDATE FROM CRM_CUSTOMERS_RESOURCEMB (NOLOCK) WHERE CUSTOMERID = " + custid; String createDt = ""; setConnect(); try { ResultSet resultSet = dbConnection.stmt.executeQuery(query); if (resultSet.next()) { createDt = resultSet.getString("CREATEDATE"); } } catch (SQLException e) { e.printStackTrace(); } closeConnection(); return createDt; } @Step public void checkCreateDt() { String createdtdb = assertCreateDt().substring(0, 10); createdtdb = createdtdb.substring(8, 10) + " " + csRutil.getMonth(createdtdb.substring(5, 7)) + " " + createdtdb.substring(0, 4); String createdtpg = dashboardPage.createDt.getText(); logger.info("Expected : " + createdtdb.toLowerCase() + ". Actual : " + createdtpg.toLowerCase()); if (createdtdb.toLowerCase().equals(createdtpg.toLowerCase())) { assert true; } else { killSession(); assert false; } } //assert first used private String assertFirstUsed() { String custid = getcustid(); String query = "SELECT FIRSTUSED FROM CRM_CUSTOMERS_RESOURCEMB (NOLOCK) WHERE CUSTOMERID = " + custid; String firstused = ""; setConnect(); try { ResultSet resultSet = dbConnection.stmt.executeQuery(query); if (resultSet.next()) { firstused = resultSet.getString("FIRSTUSED"); if (resultSet.wasNull()) { firstused = "null"; } } } catch (SQLException e) { e.printStackTrace(); } return firstused; } @Step public void checkFirstUsed() { String fudb = assertFirstUsed(); String fupg = dashboardPage.firstUsed.getText(); if (fudb.equals("null") || fudb.equals("") || fudb.equals(" ") || fudb.equals("NULL")) { fudb = ""; } else { fudb = fudb.substring(8, 10) + " " + csRutil.getMonth(fudb.substring(5, 7)) + " " + fudb.substring(0, 4); } if (fudb.toLowerCase().equals(fupg.toLowerCase())) { assert true; } else { killSession(); assert false; } } //CHECK ORDER AND PRODUCT private int countProduct() { String custid = getcustid(); String query = "SELECT COUNT(*) AS TOTAL FROM CRM_CUSTOMERS_PROMOTION (NOLOCK) WHERE ACTIVE = 1 AND CUSTOMERID = " + custid; int totalProd = 0; setConnect(); try { ResultSet resultSet = dbConnection.stmt.executeQuery(query); if (resultSet.next()) { totalProd = resultSet.getInt("TOTAL"); } } catch (SQLException e) { e.printStackTrace(); } return totalProd; } private String[] checkProductName() { String custid = getcustid(); int totalProd = countProduct(); String[] cekprodname = new String[0]; if (totalProd > 0) { List<String> prodname = commonProduct.assertProductName(custid); String[] productname = prodname.toArray(new String[prodname.size()]); logger.info(productname); String table = dashboardPage.getDriver().getPageSource(); String tableProd = table.substring(table.indexOf("dashboard_productTable"), table.indexOf("billinfoContent")); String prodPg = tableProd.substring(tableProd.indexOf("<tbody>"), tableProd.indexOf("</tbody>")); logger.info(prodPg); cekprodname = new String[productname.length]; for (int i = 0; i < productname.length; i++) { logger.info("Expected : " + productname[i]); if (prodPg.toLowerCase().contains(productname[i].toLowerCase())) { cekprodname[i] = "true"; } else { cekprodname[i] = "false"; } } } else { cekprodname[0] = "true"; } return cekprodname; } private String[] checkProductStartDate() { String custid = getcustid(); int totalProd = countProduct(); String[] cekprodstart = new String[0]; String startdate = ""; if (totalProd > 0) { List<String> prodstart = commonProduct.assertProductStartDate(custid); String[] productstart = prodstart.toArray(new String[prodstart.size()]); String table = dashboardPage.getDriver().getPageSource(); String tableProd = table.substring(table.indexOf("dashboard_productTable"), table.indexOf("billinfoContent")); String prodPg = tableProd.substring(tableProd.indexOf("<tbody>"), tableProd.indexOf("</tbody>")); logger.info(prodPg); cekprodstart = new String[productstart.length]; for (int i = 0; i < productstart.length; i++) { if (!productstart[i].equals("null")) { String mth = productstart[i].substring(5, 7); startdate = productstart[i].substring(8, 10) + " " + csRutil.getMonth(mth) + " " + productstart[i].substring(0, 4); logger.info("Expected : " + startdate); if (prodPg.toLowerCase().contains(startdate.toLowerCase())) { cekprodstart[i] = "true"; } else { cekprodstart[i] = "false"; } } else { startdate = ""; if (prodPg.toLowerCase().contains(startdate)) { cekprodstart[i] = "true"; } else { cekprodstart[i] = "false"; } } } } else { cekprodstart[0] = "true"; } return cekprodstart; } private String[] checkProductEndDate() { String custid = getcustid(); int totalProd = countProduct(); String[] cekprodend = new String[0]; String enddate = ""; if (totalProd > 0) { List<String> prodend = commonProduct.assertProductEndDate(custid, totalProd); String[] productend = prodend.toArray(new String[prodend.size()]); String table = dashboardPage.getDriver().getPageSource(); String tableProd = table.substring(table.indexOf("dashboard_productTable"), table.indexOf("billinfoContent")); String prodPg = tableProd.substring(tableProd.indexOf("<tbody>"), tableProd.indexOf("</tbody>")); logger.info(prodPg); cekprodend = new String[productend.length]; for (int i = 0; i < productend.length; i++) { if (!productend[i].equals("null")) { String mth = productend[i].substring(5, 7); enddate = productend[i].substring(8, 10) + " " + csRutil.getMonth(mth) + " " + productend[i].substring(0, 4); logger.info("Expected : " + enddate); if (prodPg.toLowerCase().contains(productend[i].toLowerCase())) { cekprodend[i] = "true"; } else { cekprodend[i] = "false"; } } else { enddate = ""; if (prodPg.toLowerCase().contains(enddate)) { cekprodend[i] = "true"; } else { cekprodend[i] = "false"; } } } } else { cekprodend[0] = "true"; } return cekprodend; } private String[] checkProductBalance() { String custid = getcustid(); int totalProd = countProduct(); String[] cekprodbal = new String[0]; if (totalProd > 0) { List<String> prodbal = commonProduct.assertProductBalance(custid); String[] productbal = prodbal.toArray(new String[prodbal.size()]); String table = dashboardPage.getDriver().getPageSource(); String tableProd = table.substring(table.indexOf("dashboard_productTable"), table.indexOf("billinfoContent")); String prodPg = tableProd.substring(tableProd.indexOf("<tbody>"), tableProd.indexOf("</tbody>")); logger.info(prodPg); cekprodbal = new String[productbal.length]; for (int i = 0; i < productbal.length; i++) { logger.info("Expected : " + productbal[i]); if (prodPg.contains(productbal[i])) { cekprodbal[i] = "true"; } else { cekprodbal[i] = "false"; } } } else { cekprodbal[0] = "true"; } return cekprodbal; } @Step public void checkProductNameOnDash() { String[] prodname = checkProductName(); if (Arrays.asList(prodname).contains("false")) { killSession(); assert false; } else { assert true; } } @Step public void checkProductStartDateOnDash() { String[] prodstart = checkProductStartDate(); if (Arrays.asList(prodstart).contains("false")) { killSession(); assert false; } else { assert true; } } @Step public void checkProductEndDateOnDash() { String[] prodend = checkProductEndDate(); if (Arrays.asList(prodend).contains("false")) { killSession(); assert false; } else { assert true; } } @Step public void checkProductBalanceOnDash() { String[] prodbal = checkProductBalance(); if (Arrays.asList(prodbal).contains("false")) { killSession(); assert false; } else { assert true; } } //TROUBLE TICKET @Step public void clickNewTTBtn() { dashboardPage.newTTBtn.click(); try { Thread.sleep(8000); } catch (InterruptedException e) { e.printStackTrace(); } if (dashboardPage.createTTpage.isDisplayed()) { assert true; } else { killSession(); assert false; } } private int countTT() { String custid = getcustid(); String query = " SELECT COUNT(*) AS TOTAL FROM CRM_TT_TICKETS (NOLOCK) WHERE FUID = 190000 AND STATUSID <> 105 AND CUSTOMERID = " + custid; setConnect(); int totalTT = 0; try { ResultSet resultSet = dbConnection.stmt.executeQuery(query); if (resultSet.next()) { totalTT = resultSet.getInt("TOTAL"); } } catch (SQLException e) { e.printStackTrace(); } closeConnection(); return totalTT; } private String[] checkTTDeptName() { String custid = getcustid(); int totalTT = countTT(); String[] cekttdeptname = new String[0]; if (totalTT > 0) { List<String> ttdeptname = commonTT.assertTTDeptName(custid); String[] deptname = ttdeptname.toArray(new String[ttdeptname.size()]); logger.info(deptname); String table = dashboardPage.getDriver().getPageSource(); String tableProd = table.substring(table.indexOf("dashboard_TTtable"), table.indexOf("</table>")); String prodPg = tableProd.substring(tableProd.indexOf("<tbody>"), tableProd.indexOf("</tbody>")); logger.info(prodPg); cekttdeptname = new String[deptname.length]; for (int i = 0; i < deptname.length; i++) { logger.info("Expected : " + deptname[i]); if (prodPg.toLowerCase().contains(deptname[i].toLowerCase())) { cekttdeptname[i] = "true"; } else { cekttdeptname[i] = "false"; } } } else { cekttdeptname[0] = "true"; } return cekttdeptname; } private String[] checkTTCode() { String custid = getcustid(); int totalTT = countTT(); String[] cekttcode = new String[0]; if (totalTT > 0) { List<String> ttcode = commonTT.assertTTCode(custid); String[] code = ttcode.toArray(new String[ttcode.size()]); logger.info(code); String table = dashboardPage.getDriver().getPageSource(); String tableProd = table.substring(table.indexOf("dashboard_TTtable"), table.indexOf("</table>")); String prodPg = tableProd.substring(tableProd.indexOf("<tbody>"), tableProd.indexOf("</tbody>")); logger.info(prodPg); cekttcode = new String[code.length]; for (int i = 0; i < code.length; i++) { logger.info("Expected : " + code[i]); if (prodPg.toLowerCase().contains(code[i].toLowerCase())) { cekttcode[i] = "true"; } else { cekttcode[i] = "false"; } } } else { cekttcode[0] = "true"; } return cekttcode; } private String[] checkTTNumber() { String custid = getcustid(); int totalTT = countTT(); String[] cekttnum = new String[0]; if (totalTT > 0) { List<String> ttnum = commonTT.assertTTNumber(custid); String[] number = ttnum.toArray(new String[ttnum.size()]); logger.info(number); String table = dashboardPage.getDriver().getPageSource(); String tableProd = table.substring(table.indexOf("dashboard_TTtable"), table.indexOf("</table>")); String prodPg = tableProd.substring(tableProd.indexOf("<tbody>"), tableProd.indexOf("</tbody>")); logger.info(prodPg); cekttnum = new String[number.length]; for (int i = 0; i < number.length; i++) { logger.info("Expected : " + number[i]); if (prodPg.toLowerCase().contains(number[i].toLowerCase())) { cekttnum[i] = "true"; } else { cekttnum[i] = "false"; } } } else { cekttnum[0] = "true"; } return cekttnum; } private String[] checkTTSubmittedBy() { String custid = getcustid(); int totalTT = countTT(); String[] cekttsub = new String[0]; if (totalTT > 0) { List<String> ttsub = commonTT.assertTTSubmittedBy(custid); String[] submittedby = ttsub.toArray(new String[ttsub.size()]); logger.info(submittedby); String table = dashboardPage.getDriver().getPageSource(); String tableProd = table.substring(table.indexOf("dashboard_TTtable"), table.indexOf("</table>")); String prodPg = tableProd.substring(tableProd.indexOf("<tbody>"), tableProd.indexOf("</tbody>")); logger.info(prodPg); cekttsub = new String[submittedby.length]; for (int i = 0; i < submittedby.length; i++) { logger.info("Expected : " + submittedby[i]); if (prodPg.toLowerCase().contains(submittedby[i].toLowerCase())) { cekttsub[i] = "true"; } else { cekttsub[i] = "false"; } } } else { cekttsub[0] = "true"; } return cekttsub; } private String[] checkTTReportTime() { String custid = getcustid(); int totalTT = countTT(); String[] cekttreptime = new String[0]; String time = ""; if (totalTT > 0) { List<String> ttreptime = commonTT.assertTTReportTime(custid); String[] reporttime = ttreptime.toArray(new String[ttreptime.size()]); logger.info(reporttime); String table = dashboardPage.getDriver().getPageSource(); String tableProd = table.substring(table.indexOf("dashboard_TTtable"), table.indexOf("</table>")); String prodPg = tableProd.substring(tableProd.indexOf("<tbody>"), tableProd.indexOf("</tbody>")); logger.info(prodPg); cekttreptime = new String[reporttime.length]; for (int i = 0; i < reporttime.length; i++) { String mth = reporttime[i].substring(4, 6); time = reporttime[i].substring(6, 8) + " " + csRutil.getMonth(mth) + " " + reporttime[i].substring(0, 4); logger.info("Expected : " + time); if (prodPg.toLowerCase().contains(time.toLowerCase())) { cekttreptime[i] = "true"; } else { cekttreptime[i] = "false"; } } } else { cekttreptime[0] = "true"; } return cekttreptime; } private String[] checkTTClass() { String custid = getcustid(); int totalTT = countTT(); String[] cekttclass = new String[0]; if (totalTT > 0) { List<String> ttclass = commonTT.assertTTClass(custid); String[] incidentclass = ttclass.toArray(new String[ttclass.size()]); logger.info(incidentclass); String table = dashboardPage.getDriver().getPageSource(); String tableProd = table.substring(table.indexOf("dashboard_TTtable"), table.indexOf("</table>")); String prodPg = tableProd.substring(tableProd.indexOf("<tbody>"), tableProd.indexOf("</tbody>")); logger.info(prodPg); cekttclass = new String[incidentclass.length]; for (int i = 0; i < incidentclass.length; i++) { logger.info("Expected : " + incidentclass[i]); if (prodPg.toLowerCase().contains(incidentclass[i].toLowerCase())) { cekttclass[i] = "true"; } else { cekttclass[i] = "false"; } } } else { cekttclass[0] = "true"; } return cekttclass; } private String[] checkTTStatus() { String custid = getcustid(); int totalTT = countTT(); String[] cekttstat = new String[0]; if (totalTT > 0) { List<String> ttstat = commonTT.assertTTStatus(custid); String[] statusid = ttstat.toArray(new String[ttstat.size()]); logger.info(statusid); String table = dashboardPage.getDriver().getPageSource(); String tableProd = table.substring(table.indexOf("dashboard_TTtable"), table.indexOf("</table>")); String prodPg = tableProd.substring(tableProd.indexOf("<tbody>"), tableProd.indexOf("</tbody>")); logger.info(prodPg); cekttstat = new String[statusid.length]; for (int i = 0; i < statusid.length; i++) { logger.info("Expected : " + statusid[i]); if (prodPg.toLowerCase().contains(statusid[i].toLowerCase())) { cekttstat[i] = "true"; } else { cekttstat[i] = "false"; } } } else { cekttstat[0] = "true"; } return cekttstat; } @Step public void checkCustWithNoTT() { int totalTT = countTT(); String table = dashboardPage.getDriver().getPageSource(); String tableProd = table.substring(table.indexOf("dashboard_TTtable"), table.indexOf("</table>")); String prodPg = tableProd.substring(tableProd.indexOf("<tbody>"), tableProd.indexOf("</tbody>")); int count = StringUtils.countMatches(prodPg, "<tr"); logger.info("Expected: " + totalTT + ". Actual: " + count); if (totalTT == 0 && count == 0) { assert true; } else { killSession(); assert false; } } @Step public void checkTTDeptNameOnDash() { String[] deptname = checkTTDeptName(); if (Arrays.asList(deptname).contains("false")) { killSession(); assert false; } else { assert true; } } @Step public void checkTTCodeOnDash() { String[] ttcode = checkTTCode(); if (Arrays.asList(ttcode).contains("false")) { killSession(); assert false; } else { assert true; } } @Step public void checkTTNumberOnDash() { String[] ttnum = checkTTNumber(); if (Arrays.asList(ttnum).contains("false")) { killSession(); assert false; } else { assert true; } } @Step public void checkTTSubmittedByOnDash() { String[] ttsubmit = checkTTSubmittedBy(); if (Arrays.asList(ttsubmit).contains("false")) { killSession(); assert false; } else { assert true; } } @Step public void checkTTReportTimeOnDash() { String[] ttreptime = checkTTReportTime(); if (Arrays.asList(ttreptime).contains("false")) { killSession(); assert false; } else { assert true; } } @Step public void checkTTClassOnDash() { String[] ttclass = checkTTClass(); if (Arrays.asList(ttclass).contains("false")) { killSession(); assert false; } else { assert true; } } @Step public void checkTTStatusOnDash() { String[] ttstatus = checkTTStatus(); if (Arrays.asList(ttstatus).contains("false")) { killSession(); assert false; } else { assert true; } } //GO TO CUST DETAIL FROM DASHBOARD @Step public void goToCustDet() { try { Thread.sleep(7000); } catch (InterruptedException e) { e.printStackTrace(); } dashboardPage.goToCustDetailFrDash.click(); } private void killSession() { dashboardPage.getDriver().quit(); } }