Commit 5bca7034 authored by Dohatec's avatar Dohatec

First Commit for BidderRegistration in Tendering Module

parents
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" output="target/classes" path="src/main/java">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" output="target/test-classes" path="src/test/java">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
<attribute name="test" value="true"/>
</attributes>
</classpathentry>
<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources">
<attributes>
<attribute name="maven.pomderived" value="true"/>
<attribute name="test" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/classes"/>
</classpath>
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>BidderRegistration</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.m2e.core.maven2Nature</nature>
</natures>
</projectDescription>
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
org.eclipse.jdt.core.compiler.compliance=1.5
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore
org.eclipse.jdt.core.compiler.release=disabled
org.eclipse.jdt.core.compiler.source=1.5
activeProfiles=
eclipse.preferences.version=1
resolveWorkspaceProjects=true
version=1
<?xml version="1.0" encoding="UTF-8"?>
<suite name="Bidder Registration and Approve">
<test name="Registering Bidder">
<classes>
<class name="testcases.bidderRegInsideBhutan" >
<methods>
<include name="CompanyDetailsInsideBhutan" />
<include name="CompanyContactPersonDetails" />
<include name="SupportingDocuments" />
<include name="BidderVerification" />
</methods>
</class>
</classes>
</test>
</suite>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<suite name="Bidder Registration and Approve">
<test name="Registering Bidder">
<classes>
<class name="testcases.bidderRegOutsideBhutan" >
<methods>
<include name="CompanyDetailsOutsideBhutan" />
<include name="CompanyContactPersonDetails" />
<include name="SupportingDocuments" />
<include name="BidderVerification" />
</methods>
</class>
</classes>
</test>
</suite>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<suite name="Bidder Registration and Approve">
<test name="Registering Bidder">
<classes>
<class name="testcases.individualConsultant" >
<methods>
<include name="IndividualConsultant" />
<include name="SupportingDocIndividualConsult" />
</methods>
</class>
</classes>
</test>
</suite>
\ No newline at end of file
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.egpstaging</groupId>
<artifactId>BidderRegistration</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>4.8.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.github.bonigarcia/webdrivermanager -->
<dependency>
<groupId>io.github.bonigarcia</groupId>
<artifactId>webdrivermanager</artifactId>
<version>5.3.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.oltu.oauth2/org.apache.oltu.oauth2.client -->
<dependency>
<groupId>org.apache.oltu.oauth2</groupId>
<artifactId>org.apache.oltu.oauth2.client</artifactId>
<version>1.0.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.testng/testng -->
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>7.7.1</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.uncommons/reportng -->
<dependency>
<groupId>org.uncommons</groupId>
<artifactId>reportng</artifactId>
<version>1.1.4</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>5.2.3</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.2.3</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml-schemas -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
<version>4.1.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.xmlbeans/xmlbeans -->
<dependency>
<groupId>org.apache.xmlbeans</groupId>
<artifactId>xmlbeans</artifactId>
<version>5.1.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-collections4 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId>
<version>4.4</version>
</dependency>
<!-- https://mvnrepository.com/artifact/log4j/log4j -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.19.0</version>
</dependency>
<dependency>
<groupId>com.browserstack</groupId>
<artifactId>browserstack-java-sdk</artifactId>
<version>LATEST</version>
</dependency>
</dependencies>
</project>
\ No newline at end of file
package base;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Properties;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.BeforeTest;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.edge.EdgeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import io.github.bonigarcia.wdm.WebDriverManager;
public class baseTest {
public static WebDriver driver;
public static Properties prop = new Properties();
public static Properties locat = new Properties();
public static FileReader fr;
public static FileReader fr1;
@BeforeMethod
public void setup() throws IOException
{
if(driver == null) {
fr = new FileReader(System.getProperty("user.dir") + "\\src\\test\\resources\\config.properties");
fr1 = new FileReader(System.getProperty("user.dir") + "\\src\\test\\resources\\locators.properties");
prop.load(fr);
locat.load(fr1);
}
if(prop.getProperty("browser").equalsIgnoreCase("chrome"))
{
WebDriverManager.chromedriver().setup();
ChromeOptions options = new ChromeOptions();
options.addArguments("--remote-allow-origins=*");
driver=new ChromeDriver(options);
driver.get(prop.getProperty("testurl"));
}
else if(prop.getProperty("browser").equalsIgnoreCase("firefox"))
{
WebDriverManager.firefoxdriver().setup();
driver=new FirefoxDriver();
driver.get(prop.getProperty("testurl"));
}
else if(prop.getProperty("browser").equalsIgnoreCase("edge")){
WebDriverManager.edgedriver().setup();
driver = new EdgeDriver();
driver.get(prop.getProperty("testurl"));
}
}
// @AfterMethod
// public void teardown()
// {
// driver.close();
// System.out.println("Driver close successfully");
// }
}
This diff is collapsed.
package testcases;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.support.ui.Select;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import base.baseTest;
import io.github.bonigarcia.wdm.WebDriverManager;
import utilities.ReadXLSData;
public class bidderRegularOutsideBhutan extends baseTest {
@Test(dataProviderClass = ReadXLSData.class,dataProvider = "prantodata")
public static void CompanyDetailsOutsideBhutan(String username, String password, String LicenseNo, String companyName, String EstYear,
String TaxCertNo, String TaxOffice, String cityname, String postno, String mobileno,String phoneareacode,
String phoneno,String faxareacode, String faxno, String websitename) throws InterruptedException {
System.out.println("Clikced Successfully");
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(2, TimeUnit.SECONDS);
driver.findElement(By.xpath(locat.getProperty("username"))).sendKeys(username);
driver.findElement(By.xpath(locat.getProperty("password"))).sendKeys(password);
driver.findElement(By.xpath(locat.getProperty("SignInButton"))).click();
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
//License Type
Select license = new Select(driver.findElement(By.id(locat.getProperty("LicenseId"))));
license.selectByValue("1");
//Country Of Origin
Select originCountry = new Select(driver.findElement(By.xpath(locat.getProperty("OriginCountry"))));
originCountry.selectByValue("223");
Thread.sleep(2000);
driver.findElement(By.name(locat.getProperty("LicenseNo"))).sendKeys(LicenseNo);
WebElement companyname = driver.findElement(By.xpath(locat.getProperty("CompanyName")));
companyname.click();
Thread.sleep(1000);
companyname.sendKeys(companyName);
Select LigalStatus = new Select(driver.findElement(By.name(locat.getProperty("CompanyStatus"))));
LigalStatus.selectByValue("public");
Thread.sleep(2000);
driver.findElement(By.id(locat.getProperty("CompanyEstablishear"))).sendKeys(EstYear);
// driver.findElement(By.id(locat.getProperty("TaxCertificateNo"))).sendKeys(TaxCertNo);
JavascriptExecutor js = (JavascriptExecutor)driver;
js.executeScript("window.scrollBy(0,500)");
// Resigtered Office Address
driver.findElement(By.id(locat.getProperty("RegTaxOffice"))).sendKeys(TaxOffice);
// Select Country Name
Select CountryName = new Select(driver.findElement(By.name(locat.getProperty("countryname"))));
CountryName.selectByValue("223");
// Select Dzongkhag / District Name
Select DistrictName = new Select(driver.findElement(By.name(locat.getProperty("districtname"))));
DistrictName.selectByValue("Texas");
// City Name and Code
driver.findElement(By.id(locat.getProperty("CityName"))).sendKeys(cityname);
driver.findElement(By.xpath(locat.getProperty("Postcode"))).sendKeys(phoneno);
// //Mobile Number Check
//
driver.findElement(By.id(locat.getProperty("MobileNo"))).sendKeys(mobileno);
// Phone no And Area Code
driver.findElement(By.xpath(locat.getProperty("PhoneNumber"))).sendKeys(phoneno);
driver.findElement(By.xpath(locat.getProperty("PhoneAreaCode"))).sendKeys(phoneareacode);
//Fax no and Fax Area Code
driver.findElement(By.xpath(locat.getProperty("FaxNumber"))).sendKeys(faxno);
driver.findElement(By.xpath(locat.getProperty("FaxAreaCode"))).sendKeys(faxareacode);
// Click Checkbox
driver.findElement(By.id(locat.getProperty("CheckBox"))).click();
js.executeScript("window.scrollBy(0,300)");
//Company Website Name
driver.findElement(By.id(locat.getProperty("CompanyWebsiteName"))).sendKeys(websitename);
//Checking Preview
driver.findElement(By.id(locat.getProperty("ClickPreview"))).click();
Thread.sleep(2000);
driver.findElement(By.xpath("/html/body/div[47]/div[1]/a/span")).click();
//Click Save button
//driver.findElement(By.xpath(locat.getProperty("ClickSave"))).click();
//driver.close();
}
@Test(dataProviderClass = ReadXLSData.class,dataProvider = "prantodata")
public static void CompanyContactPersonDetails(String username, String password, String CIDNo, String designation, String dept, String CityName, String postcode, String email, String phoneno, String faxno) throws InterruptedException
{
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(2, TimeUnit.SECONDS);
driver.findElement(By.xpath(locat.getProperty("username"))).sendKeys(username);
driver.findElement(By.xpath(locat.getProperty("password"))).sendKeys(password);
driver.findElement(By.xpath(locat.getProperty("SignInButton"))).click();
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
Select personcountry = new Select(driver.findElement(By.id(locat.getProperty("PersonCountry"))));
personcountry.selectByValue("150");
//CID no
driver.findElement(By.id(locat.getProperty("CIDNumber"))).sendKeys(CIDNo);
//User Type
Select User = new Select(driver.findElement(By.id(locat.getProperty("UserType"))));
User.selectByValue("2");
//Title
Select Title = new Select(driver.findElement(By.id(locat.getProperty("Title"))));
Title.selectByValue("Mr.");
//Designation
driver.findElement(By.id(locat.getProperty("Designation"))).sendKeys(designation);
//Department
driver.findElement(By.id(locat.getProperty("Department"))).sendKeys(dept);
//SubDistrict
Select subdist = new Select(driver.findElement(By.id(locat.getProperty("Sub-Dist"))));
subdist.selectByValue("Lingzhi");
//Gewog
// Select Thana = new Select(driver.findElement(By.id(locat.getProperty("Gewog"))));
// Thana.deselectByValue("Gomdar");
//City
driver.findElement(By.id(locat.getProperty("City"))).sendKeys(CityName);
//PostCode
driver.findElement(By.id(locat.getProperty("PostCode"))).sendKeys(postcode);
//Email
driver.findElement(By.id(locat.getProperty("EmailAddress"))).sendKeys(email);
//PhoneNo
driver.findElement(By.id(locat.getProperty("PhoneNo"))).sendKeys(phoneno);
//FaxNo
driver.findElement(By.id(locat.getProperty("FaxNo"))).sendKeys(faxno);
//SaveButton
driver.findElement(By.id(locat.getProperty("SaveButton"))).click();
driver.close();
}
@Test(dataProviderClass = ReadXLSData.class,dataProvider = "prantodata")
public static void SupportingDocuments(String username, String password, String docrefno1, String docrefno2, String docrefno3) throws InterruptedException
{
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(2, TimeUnit.SECONDS);
driver.findElement(By.xpath(locat.getProperty("username"))).sendKeys(username);
driver.findElement(By.xpath(locat.getProperty("password"))).sendKeys(password);
driver.findElement(By.xpath(locat.getProperty("SignInButton"))).click();
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
//SelectDocument
driver.findElement(By.id(locat.getProperty("UploadDoc"))).sendKeys("E:\\revauc1.pdf");
//fileupload
driver.findElement(By.id(locat.getProperty("FileUpload"))).click();
//Final Profile Submission
driver.findElement(By.xpath(locat.getProperty("FinalDocument"))).click();
//FinalSubmission
driver.findElement(By.id(locat.getProperty("FinalSubmission"))).click();
driver.close();
}
@Test(dataProviderClass = ReadXLSData.class,dataProvider = "prantodata")
public static void BidderVerification(String username, String password, String emailname, String comments) throws InterruptedException
{
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(2, TimeUnit.SECONDS);
driver.findElement(By.xpath(locat.getProperty("username"))).sendKeys(username);
driver.findElement(By.xpath(locat.getProperty("password"))).sendKeys(password);
driver.findElement(By.xpath(locat.getProperty("SignInButton"))).click();
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
driver.findElement(By.id(locat.getProperty("CompanyVerification"))).click();
//Advanced Search
driver.findElement(By.id(locat.getProperty("AdvanceSearch"))).click();
driver.findElement(By.id(locat.getProperty("SearchEmail"))).sendKeys(emailname);
driver.findElement(By.id(locat.getProperty("SearchButton"))).click();
//Click Specific bidder Action in View
Thread.sleep(2000);
driver.findElement(By.xpath(locat.getProperty("ClickView"))).click();
//Click Next button from the Registration Detials
driver.findElement(By.xpath(locat.getProperty("RegDetailsNext"))).click();
//Click Next button from the Company Details
driver.findElement(By.xpath(locat.getProperty("CompDetailsNext"))).click();
//Click Next button from the Bidder/Consultant Details
driver.findElement(By.xpath(locat.getProperty("ConsultDetailsNext"))).click();
//Comment and Approve
driver.findElement(By.xpath(locat.getProperty("Comment"))).sendKeys(comments);
driver.findElement(By.id(locat.getProperty("Approve"))).click();
}
}
\ No newline at end of file
package testcases;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.support.ui.Select;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import base.baseTest;
import io.github.bonigarcia.wdm.WebDriverManager;
import utilities.ReadXLSData;
public class individualConsultant extends baseTest {
@Test(dataProviderClass = ReadXLSData.class,dataProvider = "prantodata")
public static void IndividualConsultant(String username, String password, String firstName, String middleName, String lastName,
String address, String cityname, String postcode, String phoneno, String faxno, String mobileno, String tinNo ,String website) throws InterruptedException
{
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(2, TimeUnit.SECONDS);
driver.findElement(By.xpath(locat.getProperty("username"))).sendKeys(username);
driver.findElement(By.xpath(locat.getProperty("password"))).sendKeys(password);
driver.findElement(By.xpath(locat.getProperty("SignInButton"))).click();
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
//Title
Select title = new Select(driver.findElement(By.id(locat.getProperty("Title"))));
title.selectByValue("Mr.");
//FirstName
driver.findElement(By.id(locat.getProperty("FirstName"))).sendKeys(firstName);
//MiddleName
driver.findElement(By.id(locat.getProperty("MiddleName"))).sendKeys(middleName);
//LastName
driver.findElement(By.id(locat.getProperty("LastName"))).sendKeys(lastName);
//Address Number
driver.findElement(By.id(locat.getProperty("Address"))).sendKeys(address);
JavascriptExecutor js = (JavascriptExecutor)driver;
js.executeScript("window.scrollBy(0,400)");
Select personcountry = new Select(driver.findElement(By.xpath(locat.getProperty("Country"))));
personcountry.selectByValue("150");
//Title
Select Title = new Select(driver.findElement(By.xpath(locat.getProperty("District"))));
Title.selectByValue("Thimphu");
//SubDistrict
Select subdist = new Select(driver.findElement(By.xpath(locat.getProperty("Sub-District"))));
subdist.selectByValue("Lingzhi");
//Gewog
// Select Thana = new Select(driver.findElement(By.id(locat.getProperty("Gewog"))));
// Thana.deselectByValue("Gomdar");
//City
driver.findElement(By.xpath(locat.getProperty("City-Town"))).sendKeys(cityname);
//PostCode
driver.findElement(By.xpath(locat.getProperty("Postcode"))).sendKeys(postcode);
//PhoneNo
driver.findElement(By.xpath(locat.getProperty("Phone"))).sendKeys(phoneno);
//FaxNo
driver.findElement(By.xpath(locat.getProperty("Fax"))).sendKeys(faxno);
//Email
driver.findElement(By.xpath(locat.getProperty("Mobile"))).sendKeys(mobileno);
//Tin Doc Name
driver.findElement(By.xpath(locat.getProperty("Tin"))).sendKeys(tinNo);
//Website
driver.findElement(By.xpath(locat.getProperty("WebSite"))).sendKeys(website);
//Save Button Click
driver.findElement(By.xpath(locat.getProperty("Save"))).click();
}
@Test(dataProviderClass = ReadXLSData.class,dataProvider = "prantodata")
public static void SupportingDocIndividualConsult(String username, String password, String docname, String docrefno) throws InterruptedException
{
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(2, TimeUnit.SECONDS);
driver.findElement(By.xpath(locat.getProperty("username"))).sendKeys(username);
driver.findElement(By.xpath(locat.getProperty("password"))).sendKeys(password);
driver.findElement(By.xpath(locat.getProperty("SignInButton"))).click();
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
//Doc Name
driver.findElement(By.xpath(locat.getProperty("DocName"))).sendKeys(docname);
//Doc Ref No
driver.findElement(By.xpath(locat.getProperty("DocRefNo"))).sendKeys(docrefno);
//SelectDocument
driver.findElement(By.xpath(locat.getProperty("DocUpload"))).sendKeys("E:\\revauc1.pdf");
//Upload Document
driver.findElement(By.xpath(locat.getProperty("UploadingDoc"))).click();
Thread.sleep(2000);
//Final Doc Upload
driver.findElement(By.xpath(locat.getProperty("FinalDocUpload"))).click();
//Final Submission
driver.findElement(By.xpath(locat.getProperty("FinalSubmission"))).click();
}
}
package utilities;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Properties;
public class ReadPropertyFile {
public static void main(String[] args) throws IOException{
FileReader fr = new FileReader("C:\\Users\\Dohatec\\eclipse-workspace\\BidderRegistration\\src\\test\\resources\\locators.properties");
Properties p = new Properties();
p.load(fr);
System.out.println(p.getProperty("browser"));
System.out.println(p.getProperty("testurl"));
}
}
package utilities;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.lang.reflect.Method;
import org.apache.poi.EncryptedDocumentException;
import org.apache.poi.ss.usermodel.DataFormatter;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;
import org.testng.annotations.DataProvider;
public class ReadXLSData {
@DataProvider (name = "prantodata")
public String[][] getData(Method m) throws EncryptedDocumentException, IOException
{
String excelSheetName = m.getName();
System.out.println(System.getProperty("user.dir"));
File f = new File(System.getProperty("user.dir")+"\\src\\test\\resources\\Testdata\\bidderReg.xlsx");
FileInputStream fis = new FileInputStream(f);
Workbook wb = WorkbookFactory.create(fis);
Sheet sheetName = wb.getSheet(excelSheetName);
int totalRows = sheetName.getLastRowNum();
//System.out.println(totalRows);
Row rowCells = sheetName.getRow(0);
int totalCols = rowCells.getLastCellNum();
//System.out.println(totalCols);
DataFormatter format = new DataFormatter();
String testData[][] = new String[totalRows][totalCols];
for(int i = 1; i<=totalRows; i++) {
for(int j = 0;j<totalCols; j++) {
testData[i-1][j] = format.formatCellValue(sheetName.getRow(i).getCell(j));
//System.out.println(testData[i-1][j]);
}
}
return testData;
}
}
browser = chrome
testurl = http://staging.egp.gov.bt/
\ No newline at end of file
username = //input[@id = 'txtEmailId']
password = //input[@id = 'txtPassword']
SignInButton = //input[@id = 'btnLogin']
LicenseId = LicenseType
OriginCountry = //select[@name = 'originCountry']
LicenseNo = licenseNo
CompanyName = //*[@id=\"txtCompName\"]
CompanyStatus = legalStatus
CompanyEstablishear = txtComYear
TaxCertificateNo = taxClrCert
RegTaxOffice = txtaRegAddr
ProcurementCatagoryGoods = //input[@value='Goods']
ProcurementCatagoryWorkss = //input[@value='Works']
ProcurementCatagoryServices = //input[@value='Services']
ServiceType = //input[@name ='servicetype0']
CDBNO = //input[@name = 'cdbNumber']
countryname = regOffCountry
districtname = regOffState
SubDistrict = cmbRegSubdistrict
Gewog = txtRegThana
CityName = txtRegCity
PostNo = //input[@name = 'regOffPostcode']
MobileNo = txtregOffMobileNo
PhoneNumber = //input[@id = 'txtRegPhone']
PhoneAreaCode = //input[@name = 'regPhoneSTD']
FaxNumber = //input[@id = 'txtRegFax']
FaxAreaCode = //input[@name = 'regFaxSTD']
CheckBox = chkRC
CompanyWebsiteName = txtWeb
ClickPreview = btnPreview
ClickSave = //input[@type='submit']
// Company Contract Person Details//
PersonCountry = cmbCountry
CIDNumber = cidNo
UserType = cmbUserType
Title = cmbTitle
Designation = txtDesig
Department = txtDept
Sub-Dist = cmbSubDistrict
Gewog = txtThana
City = txtCity
PostCode = txtPost
EmailAddress = txtEmail
PhoneNo = txtPhone
FaxNo = txtFax
SaveButton = btnSave
// Person Details Bicma Bidder//
//Supporting Documents
DocType = cmbDocType
DocRefNo = //input[@name = 'docRefNo']
UploadDoc = uploadDocFile
FileUpload = btnUpload
FinalDocument = //a[@class = 'anchorLink']
FinalSubmission = //input[@id='btnNext']
// Bidder Verification Process//
CompanyVerification = headTabCompVerify
AdvanceSearch = collExp
SearchEmail = txtMail
SearchButton = button
ClickView = //a[contains(text(),'View')]
RegDetailsNext = //a[contains(text(),'Next')]
CompDetailsNext = //a[contains(text(),'Next')]
ConsultDetailsNext = //a[contains(text(),'Next')]
Comment = //textarea[@name ='comments']
Approve = btnApprove
// Individual Consultant//
Title = cmbTitle
FirstName = txtFirstName
MiddleName = txtMiddleName
LastName = txtLastName
Address = txtaAddr1
Country = //select[@name = 'country']
District = //select[@name = 'state']
Sub-District = //select[@name = 'subDistrict']
City-Town = //input[@name='city']
Postcode = //input[@name='postcode']
Phone = //input[@name='phoneNo']
Fax = //input[@name='faxNo']
Mobile = //input[@name='mobileNo']
Tin = //input[@name = 'tinDocName']
WebSite = //input[@name = 'website']
Save = //input[@type='submit']
// Supporting Documents For Individual Consultant //
DocName = //input[@name = 'docName']
DocRefNo = //input[@name = 'docRefNo']
DocUpload = //input[@name='uploadDocFile']
UploadingDoc = //input[@type = 'submit']
FinalDocUpload = //a[contains(text(),'profile submission')]
FinalSubmission = //input[@type='submit']
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">
<suite name="Failed suite [Bidder Registration and Approve]">
<test thread-count="5" name="Registering Bidder(failed)">
<classes>
<class name="testcases.bidderRegOutsideBhutan">
<methods>
<include name="BidderVerification" invocation-numbers="0"/>
<include name="CompanyDetailsOutsideBhutan" invocation-numbers="0"/>
<include name="setup"/>
<include name="SupportingDocuments" invocation-numbers="0"/>
</methods>
</class> <!-- testcases.bidderRegOutsideBhutan -->
</classes>
</test> <!-- Registering Bidder(failed) -->
</suite> <!-- Failed suite [Bidder Registration and Approve] -->
<html>
<head>
<title>TestNG: Default test</title>
<link href="../testng.css" rel="stylesheet" type="text/css" />
<link href="../my-testng.css" rel="stylesheet" type="text/css" />
<style type="text/css">
.log { display: none;}
.stack-trace { display: none;}
</style>
<script type="text/javascript">
<!--
function flip(e) {
current = e.style.display;
if (current == 'block') {
e.style.display = 'none';
return 0;
}
else {
e.style.display = 'block';
return 1;
}
}
function toggleBox(szDivId, elem, msg1, msg2)
{
var res = -1; if (document.getElementById) {
res = flip(document.getElementById(szDivId));
}
else if (document.all) {
// this is the way old msie versions work
res = flip(document.all[szDivId]);
}
if(elem) {
if(res == 0) elem.innerHTML = msg1; else elem.innerHTML = msg2;
}
}
function toggleAllBoxes() {
if (document.getElementsByTagName) {
d = document.getElementsByTagName('div');
for (i = 0; i < d.length; i++) {
if (d[i].className == 'log') {
flip(d[i]);
}
}
}
}
// -->
</script>
</head>
<body>
<h2 align='center'>Default test</h2><table border='1' align="center">
<tr>
<td>Tests passed/Failed/Skipped:</td><td>1/0/0</td>
</tr><tr>
<td>Started on:</td><td>Thu Apr 13 12:45:14 BDT 2023</td>
</tr>
<tr><td>Total time:</td><td>17 seconds (17526 ms)</td>
</tr><tr>
<td>Included groups:</td><td></td>
</tr><tr>
<td>Excluded groups:</td><td></td>
</tr>
</table><p/>
<small><i>(Hover the method name to see the test class name)</i></small><p/>
<table width='100%' border='1' class='invocation-passed'>
<tr><td colspan='4' align='center'><b>PASSED TESTS</b></td></tr>
<tr><td><b>Test method</b></td>
<td><b>Attribute(s)</b></td>
<td width="30%"><b>Exception</b></td>
<td width="10%"><b>Time (seconds)</b></td>
<td><b>Instance</b></td>
</tr>
<tr>
<td title='testcases.bicmaBidderReg.BidderVerification()'><b>BidderVerification</b><br>Test class: testcases.bicmaBidderReg<br>Parameters: contentadmin@staging.com, egp12345, bicmabidder2@dohatec.com, Bicma Bidder </td>
<td></td>
<td>10</td>
<td>testcases.bicmaBidderReg@22d7b4f8</td></tr>
</table><p>
</body>
</html>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated by org.testng.reporters.JUnitXMLReporter -->
<testsuite ignored="3" hostname="DESKTOP-GRUS52T" failures="0" tests="1" name="Default test" time="17.526" errors="0" timestamp="2023-04-13T12:45:31 BDT">
<testcase classname="testcases.bicmaBidderReg" name="BidderVerification" time="10.772"/>
<testcase classname="testcases.bicmaBidderReg" name="SupportingDocuments" time="0.0">
<ignored/>
</testcase> <!-- SupportingDocuments -->
<testcase classname="testcases.bicmaBidderReg" name="PersonDetailsBicmaBidder" time="0.0">
<ignored/>
</testcase> <!-- PersonDetailsBicmaBidder -->
<testcase classname="testcases.bicmaBidderReg" name="bicmaBidder" time="0.0">
<ignored/>
</testcase> <!-- bicmaBidder -->
</testsuite> <!-- Default test -->
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">
<suite name="Failed suite [Default suite]" guice-stage="DEVELOPMENT">
<test thread-count="5" name="Default test(failed)">
<classes>
<class name="testcases.bicmaBidderReg">
<methods>
<include name="BidderVerification" invocation-numbers="0"/>
<include name="setup"/>
</methods>
</class> <!-- testcases.bicmaBidderReg -->
</classes>
</test> <!-- Default test(failed) -->
</suite> <!-- Failed suite [Default suite] -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "https://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="https://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<title>TestNG Report</title>
<style type="text/css">table {margin-bottom:10px;border-collapse:collapse;empty-cells:show}th,td {border:1px solid #009;padding:.25em .5em}th {vertical-align:bottom}td {vertical-align:top}table a {font-weight:bold}.stripe td {background-color: #E6EBF9}.num {text-align:right}.passedodd td {background-color: #3F3}.passedeven td {background-color: #0A0}.skippedodd td {background-color: #DDD}.skippedeven td {background-color: #CCC}.failedodd td,.attn {background-color: #F33}.failedeven td,.stripe .attn {background-color: #D00}.stacktrace {white-space:pre;font-family:monospace}.totop {font-size:85%;text-align:center;border-bottom:2px solid #000}.invisible {display:none}</style>
</head>
<body>
<table>
<tr><th>Test</th><th># Passed</th><th># Skipped</th><th># Retried</th><th># Failed</th><th>Time (ms)</th><th>Included Groups</th><th>Excluded Groups</th></tr>
<tr><th colspan="8">Default suite</th></tr>
<tr><td><a href="#t0">Default test</a></td><td class="num">1</td><td class="num">0</td><td class="num">0</td><td class="num">0</td><td class="num">17,526</td><td></td><td></td></tr>
</table>
<table id='summary'><thead><tr><th>Class</th><th>Method</th><th>Start</th><th>Time (ms)</th></tr></thead><tbody><tr><th colspan="4">Default suite</th></tr></tbody><tbody id="t0"><tr><th colspan="4">Default test &#8212; passed</th></tr><tr class="passedeven"><td rowspan="1">testcases.bicmaBidderReg</td><td><a href="#m0">BidderVerification</a></td><td rowspan="1">1681368320857</td><td rowspan="1">10772</td></tr></tbody>
</table>
<h2>Default test</h2><h3 id="m0">testcases.bicmaBidderReg#BidderVerification</h3><table class="result"><tr class="param"><th>Parameter #1</th><th>Parameter #2</th><th>Parameter #3</th><th>Parameter #4</th></tr><tr class="param stripe"><td>contentadmin@staging.com</td><td>egp12345</td><td>bicmabidder2@dohatec.com</td><td>Bicma Bidder </td></tr></table><p class="totop"><a href="#summary">back to summary</a></p>
</body>
</html>
This diff is collapsed.
This diff is collapsed.
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated by org.testng.reporters.JUnitReportReporter -->
<testsuite hostname="DESKTOP-GRUS52T" failures="0" tests="1" name="testcases.bicmaBidderReg" time="16.706" errors="0" timestamp="2023-04-13T12:45:31 BDT" skipped="0">
<testcase classname="testcases.bicmaBidderReg" name="BidderVerification" time="16.706"/>
<system-out/>
</testsuite> <!-- testcases.bicmaBidderReg -->
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated by org.testng.reporters.JUnitReportReporter -->
<testsuite hostname="DESKTOP-GRUS52T" failures="0" tests="1" name="testcases.bidderReg" time="17.785" errors="0" timestamp="2023-04-06T10:58:26 BDT" skipped="0">
<testcase classname="testcases.bidderReg" name="BidderVerification" time="17.785"/>
<system-out/>
</testsuite> <!-- testcases.bidderReg -->
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated by org.testng.reporters.JUnitReportReporter -->
<testsuite hostname="DESKTOP-GRUS52T" failures="0" tests="1" name="testcases.bidderRegInsideBhutan" time="68.958" errors="1" timestamp="2023-04-12T09:37:41 BDT" skipped="0">
<testcase classname="testcases.bidderRegInsideBhutan" name="CompanyDetailsInsideBhutan" time="68.958">
<error message="no such element: Unable to locate element: {&quot;method&quot;:&quot;xpath&quot;,&quot;selector&quot;:&quot;//input[@name=&#039;postcode&#039;]&quot;}
(Session info: chrome=111.0.5563.65)
For documentation on this error, please visit: https://selenium.dev/exceptions/#no_such_element
Build info: version: &#039;4.8.1&#039;, revision: &#039;8ebccac989&#039;
System info: os.name: &#039;Windows 10&#039;, os.arch: &#039;amd64&#039;, os.version: &#039;10.0&#039;, java.version: &#039;17.0.3&#039;
Driver info: org.openqa.selenium.chrome.ChromeDriver
Command: [cb061c8c687013a44eb851e23ae09695, findElement {using=xpath, value=//input[@name=&#039;postcode&#039;]}]
Capabilities {acceptInsecureCerts: false, browserName: chrome, browserVersion: 111.0.5563.65, chrome: {chromedriverVersion: 111.0.5563.64 (c710e93d5b63..., userDataDir: C:\Users\Dohatec\AppData\Lo...}, goog:chromeOptions: {debuggerAddress: localhost:49390}, networkConnectionEnabled: false, pageLoadStrategy: normal, platformName: WINDOWS, proxy: Proxy(), se:cdp: ws://localhost:49390/devtoo..., se:cdpVersion: 111.0.5563.65, setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss and notify, webauthn:extension:credBlob: true, webauthn:extension:largeBlob: true, webauthn:extension:minPinLength: true, webauthn:extension:prf: true, webauthn:virtualAuthenticators: true}
Session ID: cb061c8c687013a44eb851e23ae09695" type="org.openqa.selenium.NoSuchElementException">
<![CDATA[org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"xpath","selector":"//input[@name='postcode']"}
(Session info: chrome=111.0.5563.65)
For documentation on this error, please visit: https://selenium.dev/exceptions/#no_such_element
Build info: version: '4.8.1', revision: '8ebccac989'
System info: os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '17.0.3'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Command: [cb061c8c687013a44eb851e23ae09695, findElement {using=xpath, value=//input[@name='postcode']}]
Capabilities {acceptInsecureCerts: false, browserName: chrome, browserVersion: 111.0.5563.65, chrome: {chromedriverVersion: 111.0.5563.64 (c710e93d5b63..., userDataDir: C:\Users\Dohatec\AppData\Lo...}, goog:chromeOptions: {debuggerAddress: localhost:49390}, networkConnectionEnabled: false, pageLoadStrategy: normal, platformName: WINDOWS, proxy: Proxy(), se:cdp: ws://localhost:49390/devtoo..., se:cdpVersion: 111.0.5563.65, setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss and notify, webauthn:extension:credBlob: true, webauthn:extension:largeBlob: true, webauthn:extension:minPinLength: true, webauthn:extension:prf: true, webauthn:virtualAuthenticators: true}
Session ID: cb061c8c687013a44eb851e23ae09695
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.createException(W3CHttpResponseCodec.java:200)
at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:133)
at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:53)
at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:184)
at org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCommandExecutor.java:167)
at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:142)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:543)
at org.openqa.selenium.remote.ElementLocation$ElementFinder$2.findElement(ElementLocation.java:162)
at org.openqa.selenium.remote.ElementLocation.findElement(ElementLocation.java:60)
at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:352)
at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:344)
at testcases.bidderRegInsideBhutan.CompanyDetailsInsideBhutan(bidderRegInsideBhutan.java:85)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:677)
at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:221)
at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:50)
at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:969)
at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:194)
at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:148)
at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at org.testng.TestRunner.privateRun(TestRunner.java:829)
at org.testng.TestRunner.run(TestRunner.java:602)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:437)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:431)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:391)
at org.testng.SuiteRunner.run(SuiteRunner.java:330)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1256)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1176)
at org.testng.TestNG.runSuites(TestNG.java:1099)
at org.testng.TestNG.run(TestNG.java:1067)
at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:115)
at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)
]]>
</error>
</testcase> <!-- CompanyDetailsInsideBhutan -->
<system-out/>
</testsuite> <!-- testcases.bidderRegInsideBhutan -->
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated by org.testng.reporters.JUnitReportReporter -->
<testsuite hostname="DESKTOP-GRUS52T" failures="0" tests="1" name="testcases.bidderRegOutsideBhutan" time="53.033" errors="1" timestamp="2023-04-12T09:39:44 BDT" skipped="0">
<testcase classname="testcases.bidderRegOutsideBhutan" name="CompanyDetailsOutsideBhutan" time="53.033">
<error message="Cannot locate option with value: Texas
For documentation on this error, please visit: https://selenium.dev/exceptions/#no_such_element
Build info: version: &#039;4.8.1&#039;, revision: &#039;8ebccac989&#039;
System info: os.name: &#039;Windows 10&#039;, os.arch: &#039;amd64&#039;, os.version: &#039;10.0&#039;, java.version: &#039;17.0.3&#039;
Driver info: driver.version: unknown" type="org.openqa.selenium.NoSuchElementException">
<![CDATA[org.openqa.selenium.NoSuchElementException: Cannot locate option with value: Texas
For documentation on this error, please visit: https://selenium.dev/exceptions/#no_such_element
Build info: version: '4.8.1', revision: '8ebccac989'
System info: os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '17.0.3'
Driver info: driver.version: unknown
at org.openqa.selenium.support.ui.Select.findOptionsByValue(Select.java:291)
at org.openqa.selenium.support.ui.Select.selectByValue(Select.java:194)
at testcases.bidderRegOutsideBhutan.CompanyDetailsOutsideBhutan(bidderRegOutsideBhutan.java:78)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:677)
at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:221)
at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:50)
at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:969)
at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:194)
at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:148)
at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at org.testng.TestRunner.privateRun(TestRunner.java:829)
at org.testng.TestRunner.run(TestRunner.java:602)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:437)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:431)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:391)
at org.testng.SuiteRunner.run(SuiteRunner.java:330)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1256)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1176)
at org.testng.TestNG.runSuites(TestNG.java:1099)
at org.testng.TestNG.run(TestNG.java:1067)
at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:115)
at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)
]]>
</error>
</testcase> <!-- CompanyDetailsOutsideBhutan -->
<system-out/>
</testsuite> <!-- testcases.bidderRegOutsideBhutan -->
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated by org.testng.reporters.JUnitReportReporter -->
<testsuite hostname="DESKTOP-GRUS52T" failures="0" tests="1" name="testcases.bidderRegularInsideBhutan" time="28.653" errors="0" timestamp="2023-04-12T13:14:03 BDT" skipped="0">
<testcase classname="testcases.bidderRegularInsideBhutan" name="BidderVerification" time="28.653"/>
<system-out/>
</testsuite> <!-- testcases.bidderRegularInsideBhutan -->
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated by org.testng.reporters.JUnitReportReporter -->
<testsuite hostname="DESKTOP-GRUS52T" failures="0" tests="1" name="testcases.individualConsultant" time="19.436" errors="0" timestamp="2023-04-11T11:38:02 BDT" skipped="0">
<testcase classname="testcases.individualConsultant" name="SupportingDocIndividualConsult" time="19.436"/>
<system-out/>
</testsuite> <!-- testcases.individualConsultant -->
[SuiteResult context=Registering Bidder]
\ No newline at end of file
<table border='1'>
<tr>
<th>Class name</th>
<th>Method name</th>
<th>Groups</th>
</tr><tr>
<td>testcases.bidderRegOutsideBhutan</td>
<td>&nbsp;</td><td>&nbsp;</td></tr>
<tr>
<td align='center' colspan='3'>@Test</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>CompanyContactPersonDetails</td>
<td>&nbsp;</td></tr>
<tr>
<td>&nbsp;</td>
<td>CompanyDetailsOutsideBhutan</td>
<td>&nbsp;</td></tr>
<tr>
<td>&nbsp;</td>
<td>SupportingDocuments</td>
<td>&nbsp;</td></tr>
<tr>
<td>&nbsp;</td>
<td>BidderVerification</td>
<td>&nbsp;</td></tr>
<tr>
<td align='center' colspan='3'>@BeforeClass</td>
</tr>
<tr>
<td align='center' colspan='3'>@BeforeMethod</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>setup</td>
<td>&nbsp;</td></tr>
<tr>
<td align='center' colspan='3'>@AfterMethod</td>
</tr>
<tr>
<td align='center' colspan='3'>@AfterClass</td>
</tr>
</table>
<h2>Groups used for this test run</h2>
\ No newline at end of file
<html><head><title>Results for Bidder Registration and Approve</title></head>
<frameset cols="26%,74%">
<frame src="toc.html" name="navFrame">
<frame src="main.html" name="mainFrame">
</frameset>
</html>
<html><head><title>Results for Bidder Registration and Approve</title></head>
<body>Select a result on the left-hand pane.</body></html>
<h2>Methods run, sorted chronologically</h2><h3>&gt;&gt; means before, &lt;&lt; means after</h3><p/><br/><em>Bidder Registration and Approve</em><p/><small><i>(Hover the method name to see the test class name)</i></small><p/>
<table border="1">
<tr><th>Time</th><th>Delta (ms)</th><th>Suite<br>configuration</th><th>Test<br>configuration</th><th>Class<br>configuration</th><th>Groups<br>configuration</th><th>Method<br>configuration</th><th>Test<br>method</th><th>Thread</th><th>Instances</th></tr>
<tr bgcolor="6ec192"> <td>23/04/09 12:55:36</td> <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="bidderRegOutsideBhutan.BidderVerification(java.lang.String,java.lang.String,java.lang.String,java.lang.String)[pri:0, instance:testcases.bidderRegOutsideBhutan@6d1ef78d]">BidderVerification</td>
<td>main@20156341</td> <td></td> </tr>
<tr bgcolor="6ec192"> <td>23/04/09 12:54:53</td> <td>-42915</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="bidderRegOutsideBhutan.CompanyContactPersonDetails(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String)[pri:0, instance:testcases.bidderRegOutsideBhutan@6d1ef78d]">CompanyContactPersonDetails</td>
<td>main@20156341</td> <td></td> </tr>
<tr bgcolor="6ec192"> <td>23/04/09 12:54:41</td> <td>-54675</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="bidderRegOutsideBhutan.CompanyDetailsOutsideBhutan(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String)[pri:0, instance:testcases.bidderRegOutsideBhutan@6d1ef78d]">CompanyDetailsOutsideBhutan</td>
<td>main@20156341</td> <td></td> </tr>
<tr bgcolor="6ec192"> <td>23/04/09 12:55:11</td> <td>-24538</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="bidderRegOutsideBhutan.SupportingDocuments(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String)[pri:0, instance:testcases.bidderRegOutsideBhutan@6d1ef78d]">SupportingDocuments</td>
<td>main@20156341</td> <td></td> </tr>
<tr bgcolor="ffa3be"> <td>23/04/09 12:55:18</td> <td>-17887</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="&gt;&gt;baseTest.setup()[pri:0, instance:testcases.bidderRegOutsideBhutan@6d1ef78d]">&gt;&gt;setup</td>
<td>&nbsp;</td> <td>main@20156341</td> <td></td> </tr>
<tr bgcolor="ffa3be"> <td>23/04/09 12:55:18</td> <td>-17887</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="&gt;&gt;baseTest.setup()[pri:0, instance:testcases.bidderRegOutsideBhutan@6d1ef78d]">&gt;&gt;setup</td>
<td>&nbsp;</td> <td>main@20156341</td> <td></td> </tr>
<tr bgcolor="ffa3be"> <td>23/04/09 12:55:18</td> <td>-17887</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="&gt;&gt;baseTest.setup()[pri:0, instance:testcases.bidderRegOutsideBhutan@6d1ef78d]">&gt;&gt;setup</td>
<td>&nbsp;</td> <td>main@20156341</td> <td></td> </tr>
<tr bgcolor="ffa3be"> <td>23/04/09 12:55:18</td> <td>-17887</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="&gt;&gt;baseTest.setup()[pri:0, instance:testcases.bidderRegOutsideBhutan@6d1ef78d]">&gt;&gt;setup</td>
<td>&nbsp;</td> <td>main@20156341</td> <td></td> </tr>
</table>
<h2>Methods that were not run</h2><table>
</table>
\ No newline at end of file
<h2>Methods run, sorted chronologically</h2><h3>&gt;&gt; means before, &lt;&lt; means after</h3><p/><br/><em>Bidder Registration and Approve</em><p/><small><i>(Hover the method name to see the test class name)</i></small><p/>
<table border="1">
<tr><th>Time</th><th>Delta (ms)</th><th>Suite<br>configuration</th><th>Test<br>configuration</th><th>Class<br>configuration</th><th>Groups<br>configuration</th><th>Method<br>configuration</th><th>Test<br>method</th><th>Thread</th><th>Instances</th></tr>
<tr bgcolor="ffa3be"> <td>23/04/09 12:55:18</td> <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="&gt;&gt;baseTest.setup()[pri:0, instance:testcases.bidderRegOutsideBhutan@6d1ef78d]">&gt;&gt;setup</td>
<td>&nbsp;</td> <td>main@20156341</td> <td></td> </tr>
<tr bgcolor="ffa3be"> <td>23/04/09 12:55:18</td> <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="&gt;&gt;baseTest.setup()[pri:0, instance:testcases.bidderRegOutsideBhutan@6d1ef78d]">&gt;&gt;setup</td>
<td>&nbsp;</td> <td>main@20156341</td> <td></td> </tr>
<tr bgcolor="6ec192"> <td>23/04/09 12:55:11</td> <td>-6651</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="bidderRegOutsideBhutan.SupportingDocuments(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String)[pri:0, instance:testcases.bidderRegOutsideBhutan@6d1ef78d]">SupportingDocuments</td>
<td>main@20156341</td> <td></td> </tr>
<tr bgcolor="ffa3be"> <td>23/04/09 12:55:18</td> <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="&gt;&gt;baseTest.setup()[pri:0, instance:testcases.bidderRegOutsideBhutan@6d1ef78d]">&gt;&gt;setup</td>
<td>&nbsp;</td> <td>main@20156341</td> <td></td> </tr>
<tr bgcolor="6ec192"> <td>23/04/09 12:54:41</td> <td>-36788</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="bidderRegOutsideBhutan.CompanyDetailsOutsideBhutan(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String)[pri:0, instance:testcases.bidderRegOutsideBhutan@6d1ef78d]">CompanyDetailsOutsideBhutan</td>
<td>main@20156341</td> <td></td> </tr>
<tr bgcolor="ffa3be"> <td>23/04/09 12:55:18</td> <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="&gt;&gt;baseTest.setup()[pri:0, instance:testcases.bidderRegOutsideBhutan@6d1ef78d]">&gt;&gt;setup</td>
<td>&nbsp;</td> <td>main@20156341</td> <td></td> </tr>
<tr bgcolor="6ec192"> <td>23/04/09 12:54:53</td> <td>-25028</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="bidderRegOutsideBhutan.CompanyContactPersonDetails(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String)[pri:0, instance:testcases.bidderRegOutsideBhutan@6d1ef78d]">CompanyContactPersonDetails</td>
<td>main@20156341</td> <td></td> </tr>
<tr bgcolor="6ec192"> <td>23/04/09 12:55:36</td> <td>17887</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="bidderRegOutsideBhutan.BidderVerification(java.lang.String,java.lang.String,java.lang.String,java.lang.String)[pri:0, instance:testcases.bidderRegOutsideBhutan@6d1ef78d]">BidderVerification</td>
<td>main@20156341</td> <td></td> </tr>
</table>
<h2>Reporter output</h2><table></table>
\ No newline at end of file
<html><head><title>testng.xml for Bidder Registration and Approve</title></head><body><tt>&lt;?xml&nbsp;version="1.0"&nbsp;encoding="UTF-8"?&gt;<br/>&lt;!DOCTYPE&nbsp;suite&nbsp;SYSTEM&nbsp;"https://testng.org/testng-1.0.dtd"&gt;<br/>&lt;suite&nbsp;name="Bidder&nbsp;Registration&nbsp;and&nbsp;Approve"&gt;<br/>&nbsp;&nbsp;&lt;test&nbsp;thread-count="5"&nbsp;name="Registering&nbsp;Bidder"&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;classes&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;class&nbsp;name="testcases.bidderRegOutsideBhutan"&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;methods&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;include&nbsp;name="CompanyDetailsOutsideBhutan"/&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;include&nbsp;name="CompanyContactPersonDetails"/&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;include&nbsp;name="SupportingDocuments"/&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;include&nbsp;name="BidderVerification"/&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/methods&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/class&gt;&nbsp;&lt;!--&nbsp;testcases.bidderRegOutsideBhutan&nbsp;--&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/classes&gt;<br/>&nbsp;&nbsp;&lt;/test&gt;&nbsp;&lt;!--&nbsp;Registering&nbsp;Bidder&nbsp;--&gt;<br/>&lt;/suite&gt;&nbsp;&lt;!--&nbsp;Bidder&nbsp;Registration&nbsp;and&nbsp;Approve&nbsp;--&gt;<br/></tt></body></html>
\ No newline at end of file
<html>
<head>
<title>Results for Bidder Registration and Approve</title>
<link href="../testng.css" rel="stylesheet" type="text/css" />
<link href="../my-testng.css" rel="stylesheet" type="text/css" />
</head>
<body>
<h3><p align="center">Results for<br/><em>Bidder Registration and Approve</em></p></h3>
<table border='1' width='100%'>
<tr valign='top'>
<td>1 test</td>
<td><a target='mainFrame' href='classes.html'>1 class</a></td>
<td>4 methods:<br/>
&nbsp;&nbsp;<a target='mainFrame' href='methods.html'>chronological</a><br/>
&nbsp;&nbsp;<a target='mainFrame' href='methods-alphabetical.html'>alphabetical</a><br/>
&nbsp;&nbsp;<a target='mainFrame' href='methods-not-run.html'>not run (0)</a></td>
</tr>
<tr>
<td><a target='mainFrame' href='groups.html'>0 group</a></td>
<td><a target='mainFrame' href='reporter-output.html'>reporter output</a></td>
<td><a target='mainFrame' href='testng.xml.html'>testng.xml</a></td>
</tr></table>
<table width='100%' class='test-failed'>
<tr><td>
<table style='width: 100%'><tr><td valign='top'>Registering Bidder (1/3/0)</td><td valign='top' align='right'>
<a href='Registering Bidder.html' target='mainFrame'>Results</a>
</td></tr></table>
</td></tr><p/>
</table>
</body></html>
\ No newline at end of file
[SuiteResult context=Default test]
\ No newline at end of file
<table border='1'>
<tr>
<th>Class name</th>
<th>Method name</th>
<th>Groups</th>
</tr><tr>
<td>testcases.bicmaBidderReg</td>
<td>&nbsp;</td><td>&nbsp;</td></tr>
<tr>
<td align='center' colspan='3'>@Test</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>bicmaBidder</td>
<td>&nbsp;</td></tr>
<tr>
<td>&nbsp;</td>
<td>SupportingDocuments</td>
<td>&nbsp;</td></tr>
<tr>
<td>&nbsp;</td>
<td>PersonDetailsBicmaBidder</td>
<td>&nbsp;</td></tr>
<tr>
<td>&nbsp;</td>
<td>BidderVerification</td>
<td>&nbsp;</td></tr>
<tr>
<td align='center' colspan='3'>@BeforeClass</td>
</tr>
<tr>
<td align='center' colspan='3'>@BeforeMethod</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>setup</td>
<td>&nbsp;</td></tr>
<tr>
<td align='center' colspan='3'>@AfterMethod</td>
</tr>
<tr>
<td align='center' colspan='3'>@AfterClass</td>
</tr>
</table>
<h2>Groups used for this test run</h2>
\ No newline at end of file
<html><head><title>Results for Default suite</title></head>
<frameset cols="26%,74%">
<frame src="toc.html" name="navFrame">
<frame src="main.html" name="mainFrame">
</frameset>
</html>
<html><head><title>Results for Default suite</title></head>
<body>Select a result on the left-hand pane.</body></html>
<h2>Methods run, sorted chronologically</h2><h3>&gt;&gt; means before, &lt;&lt; means after</h3><p/><br/><em>Default suite</em><p/><small><i>(Hover the method name to see the test class name)</i></small><p/>
<table border="1">
<tr><th>Time</th><th>Delta (ms)</th><th>Suite<br>configuration</th><th>Test<br>configuration</th><th>Class<br>configuration</th><th>Groups<br>configuration</th><th>Method<br>configuration</th><th>Test<br>method</th><th>Thread</th><th>Instances</th></tr>
<tr bgcolor="9c73b5"> <td>23/04/13 12:45:20</td> <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="bicmaBidderReg.BidderVerification(java.lang.String,java.lang.String,java.lang.String,java.lang.String)[pri:0, instance:testcases.bicmaBidderReg@22d7b4f8]">BidderVerification</td>
<td>main@1687354037</td> <td></td> </tr>
<tr bgcolor="b5af6b"> <td>23/04/13 12:45:14</td> <td>-5933</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="&gt;&gt;baseTest.setup()[pri:0, instance:testcases.bicmaBidderReg@22d7b4f8]">&gt;&gt;setup</td>
<td>&nbsp;</td> <td>main@1687354037</td> <td></td> </tr>
</table>
<h2>Methods that were not run</h2><table>
<tr><td>testcases.bicmaBidderReg.SupportingDocuments</td></tr>
<tr><td>testcases.bicmaBidderReg.PersonDetailsBicmaBidder</td></tr>
<tr><td>testcases.bicmaBidderReg.bicmaBidder</td></tr>
</table>
\ No newline at end of file
<h2>Methods run, sorted chronologically</h2><h3>&gt;&gt; means before, &lt;&lt; means after</h3><p/><br/><em>Default suite</em><p/><small><i>(Hover the method name to see the test class name)</i></small><p/>
<table border="1">
<tr><th>Time</th><th>Delta (ms)</th><th>Suite<br>configuration</th><th>Test<br>configuration</th><th>Class<br>configuration</th><th>Groups<br>configuration</th><th>Method<br>configuration</th><th>Test<br>method</th><th>Thread</th><th>Instances</th></tr>
<tr bgcolor="9c73b5"> <td>23/04/13 12:45:20</td> <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="bicmaBidderReg.BidderVerification(java.lang.String,java.lang.String,java.lang.String,java.lang.String)[pri:0, instance:testcases.bicmaBidderReg@22d7b4f8]">BidderVerification</td>
<td>main@1687354037</td> <td></td> </tr>
<tr bgcolor="b5af6b"> <td>23/04/13 12:45:14</td> <td>-5933</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="&gt;&gt;baseTest.setup()[pri:0, instance:testcases.bicmaBidderReg@22d7b4f8]">&gt;&gt;setup</td>
<td>&nbsp;</td> <td>main@1687354037</td> <td></td> </tr>
</table>
<h2>Reporter output</h2><table></table>
\ No newline at end of file
<html><head><title>testng.xml for Default suite</title></head><body><tt>&lt;?xml&nbsp;version="1.0"&nbsp;encoding="UTF-8"?&gt;<br/>&lt;!DOCTYPE&nbsp;suite&nbsp;SYSTEM&nbsp;"https://testng.org/testng-1.0.dtd"&gt;<br/>&lt;suite&nbsp;name="Default&nbsp;suite"&nbsp;guice-stage="DEVELOPMENT"&gt;<br/>&nbsp;&nbsp;&lt;test&nbsp;thread-count="5"&nbsp;name="Default&nbsp;test"&nbsp;verbose="2"&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;classes&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;class&nbsp;name="testcases.bicmaBidderReg"&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;methods&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;include&nbsp;name="BidderVerification"/&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/methods&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/class&gt;&nbsp;&lt;!--&nbsp;testcases.bicmaBidderReg&nbsp;--&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/classes&gt;<br/>&nbsp;&nbsp;&lt;/test&gt;&nbsp;&lt;!--&nbsp;Default&nbsp;test&nbsp;--&gt;<br/>&lt;/suite&gt;&nbsp;&lt;!--&nbsp;Default&nbsp;suite&nbsp;--&gt;<br/></tt></body></html>
\ No newline at end of file
<html>
<head>
<title>Results for Default suite</title>
<link href="../testng.css" rel="stylesheet" type="text/css" />
<link href="../my-testng.css" rel="stylesheet" type="text/css" />
</head>
<body>
<h3><p align="center">Results for<br/><em>Default suite</em></p></h3>
<table border='1' width='100%'>
<tr valign='top'>
<td>1 test</td>
<td><a target='mainFrame' href='classes.html'>1 class</a></td>
<td>1 method:<br/>
&nbsp;&nbsp;<a target='mainFrame' href='methods.html'>chronological</a><br/>
&nbsp;&nbsp;<a target='mainFrame' href='methods-alphabetical.html'>alphabetical</a><br/>
&nbsp;&nbsp;<a target='mainFrame' href='methods-not-run.html'>not run (3)</a></td>
</tr>
<tr>
<td><a target='mainFrame' href='groups.html'>0 group</a></td>
<td><a target='mainFrame' href='reporter-output.html'>reporter output</a></td>
<td><a target='mainFrame' href='testng.xml.html'>testng.xml</a></td>
</tr></table>
<table width='100%' class='test-passed'>
<tr><td>
<table style='width: 100%'><tr><td valign='top'>Default test (1/0/0)</td><td valign='top' align='right'>
<a href='Default test.html' target='mainFrame'>Results</a>
</td></tr></table>
</td></tr><p/>
</table>
</body></html>
\ No newline at end of file
<html>
<head><title></title><link href="./testng.css" rel="stylesheet" type="text/css" />
<link href="./my-testng.css" rel="stylesheet" type="text/css" />
</head><body>
<h2><p align='center'>Test results</p></h2>
<table border='1' width='100%' class='main-page'><tr><th>Suite</th><th>Passed</th><th>Failed</th><th>Skipped</th><th>testng.xml</th></tr>
<tr align='center' class='invocation-passed'><td><em>Total</em></td><td><em>1</em></td><td><em>0</em></td><td><em>0</em></td><td>&nbsp;</td></tr>
<tr align='center' class='invocation-passed'><td><a href='Default suite/index.html'>Default suite</a></td>
<td>1</td><td>0</td><td>0</td><td><a href='Default suite/testng.xml.html'>Link</a></td></tr></table></body></html>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">
<suite name="Failed suite [Default suite]" guice-stage="DEVELOPMENT">
<test thread-count="5" name="Default test(failed)">
<classes>
<class name="testcases.bicmaBidderReg">
<methods>
<include name="BidderVerification" invocation-numbers="0"/>
<include name="setup"/>
</methods>
</class> <!-- testcases.bicmaBidderReg -->
</classes>
</test> <!-- Default test(failed) -->
</suite> <!-- Failed suite [Default suite] -->
body {
margin: 0 0 5px 5px;
}
ul {
margin: 0;
}
li {
list-style-type: none;
}
a {
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
.navigator-selected {
background: #ffa500;
}
.wrapper {
position: absolute;
top: 60px;
bottom: 0;
left: 400px;
right: 0;
overflow: auto;
}
.navigator-root {
position: absolute;
top: 60px;
bottom: 0;
left: 0;
width: 400px;
overflow-y: auto;
}
.suite {
margin: 0 10px 10px 0;
background-color: #fff8dc;
}
.suite-name {
padding-left: 10px;
font-size: 25px;
font-family: Times, sans-serif;
}
.main-panel-header {
padding: 5px;
background-color: #9FB4D9; /*afeeee*/;
font-family: monospace;
font-size: 18px;
}
.main-panel-content {
padding: 5px;
margin-bottom: 10px;
background-color: #DEE8FC; /*d0ffff*/;
}
.rounded-window {
border-radius: 10px;
border-style: solid;
border-width: 1px;
}
.rounded-window-top {
border-top-right-radius: 10px 10px;
border-top-left-radius: 10px 10px;
border-style: solid;
border-width: 1px;
overflow: auto;
}
.light-rounded-window-top {
border-top-right-radius: 10px 10px;
border-top-left-radius: 10px 10px;
}
.rounded-window-bottom {
border-style: solid;
border-width: 0 1px 1px 1px;
border-bottom-right-radius: 10px 10px;
border-bottom-left-radius: 10px 10px;
overflow: auto;
}
.method-name {
font-size: 12px;
font-family: monospace;
}
.method-content {
border-style: solid;
border-width: 0 0 1px 0;
margin-bottom: 10px;
padding-bottom: 5px;
width: 80%;
}
.parameters {
font-size: 14px;
font-family: monospace;
}
.stack-trace {
white-space: pre;
font-family: monospace;
font-size: 12px;
font-weight: bold;
margin-top: 0;
margin-left: 20px;
}
.testng-xml {
font-family: monospace;
}
.method-list-content {
margin-left: 10px;
}
.navigator-suite-content {
margin-left: 10px;
font: 12px 'Lucida Grande';
}
.suite-section-title {
margin-top: 10px;
width: 80%;
border-style: solid;
border-width: 1px 0 0 0;
font-family: Times, sans-serif;
font-size: 18px;
font-weight: bold;
}
.suite-section-content {
list-style-image: url(bullet_point.png);
}
.top-banner-root {
position: absolute;
top: 0;
height: 45px;
left: 0;
right: 0;
padding: 5px;
margin: 0 0 5px 0;
background-color: #0066ff;
font-family: Times, sans-serif;
color: #fff;
text-align: center;
}
.button{
position: absolute;
margin-left:500px;
margin-top:8px;
background-color: white;
color:#0066ff;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-weight:bold;
border-color:#0066ff ;
border-radius:25px;
cursor: pointer;
height:30px;
width:150px;
outline:none;
}
.top-banner-title-font {
font-size: 25px;
}
.test-name {
font-family: 'Lucida Grande', sans-serif;
font-size: 16px;
}
.suite-icon {
padding: 5px;
float: right;
height: 20px;
}
.test-group {
font: 20px 'Lucida Grande';
margin: 5px 5px 10px 5px;
border-width: 0 0 1px 0;
border-style: solid;
padding: 5px;
}
.test-group-name {
font-weight: bold;
}
.method-in-group {
font-size: 16px;
margin-left: 80px;
}
table.google-visualization-table-table {
width: 100%;
}
.reporter-method-name {
font-size: 14px;
font-family: monospace;
}
.reporter-method-output-div {
padding: 5px;
margin: 0 0 5px 20px;
font-size: 12px;
font-family: monospace;
border-width: 0 0 0 1px;
border-style: solid;
}
.ignored-class-div {
font-size: 14px;
font-family: monospace;
}
.ignored-methods-div {
padding: 5px;
margin: 0 0 5px 20px;
font-size: 12px;
font-family: monospace;
border-width: 0 0 0 1px;
border-style: solid;
}
.border-failed {
border-top-left-radius: 10px 10px;
border-bottom-left-radius: 10px 10px;
border-style: solid;
border-width: 0 0 0 10px;
border-color: #f00;
}
.border-skipped {
border-top-left-radius: 10px 10px;
border-bottom-left-radius: 10px 10px;
border-style: solid;
border-width: 0 0 0 10px;
border-color: #edc600;
}
.border-passed {
border-top-left-radius: 10px 10px;
border-bottom-left-radius: 10px 10px;
border-style: solid;
border-width: 0 0 0 10px;
border-color: #19f52d;
}
.times-div {
text-align: center;
padding: 5px;
}
.suite-total-time {
font: 16px 'Lucida Grande';
}
.configuration-suite {
margin-left: 20px;
}
.configuration-test {
margin-left: 40px;
}
.configuration-class {
margin-left: 60px;
}
.configuration-method {
margin-left: 80px;
}
.test-method {
margin-left: 100px;
}
.chronological-class {
background-color: skyblue;
border-style: solid;
border-width: 0 0 1px 1px;
}
.method-start {
float: right;
}
.chronological-class-name {
padding: 0 0 0 5px;
color: #008;
}
.after, .before, .test-method {
font-family: monospace;
font-size: 14px;
}
.navigator-suite-header {
font-size: 22px;
margin: 0 10px 5px 0;
background-color: #deb887;
text-align: center;
}
.collapse-all-icon {
padding: 5px;
float: right;
}
/*retro Theme*/
$(document).ready(function() {
$('a.navigator-link').on("click", function() {
// Extract the panel for this link
var panel = getPanelName($(this));
// Mark this link as currently selected
$('.navigator-link').parent().removeClass('navigator-selected');
$(this).parent().addClass('navigator-selected');
showPanel(panel);
});
installMethodHandlers('failed');
installMethodHandlers('skipped');
installMethodHandlers('passed', true); // hide passed methods by default
$('a.method').on("click", function() {
showMethod($(this));
return false;
});
// Hide all the panels and display the first one (do this last
// to make sure the click() will invoke the listeners)
$('.panel').hide();
$('.navigator-link').first().trigger("click");
// Collapse/expand the suites
$('a.collapse-all-link').on("click", function() {
var contents = $('.navigator-suite-content');
if (contents.css('display') == 'none') {
contents.show();
} else {
contents.hide();
}
});
});
// The handlers that take care of showing/hiding the methods
function installMethodHandlers(name, hide) {
function getContent(t) {
return $('.method-list-content.' + name + "." + t.attr('panel-name'));
}
function getHideLink(t, name) {
var s = 'a.hide-methods.' + name + "." + t.attr('panel-name');
return $(s);
}
function getShowLink(t, name) {
return $('a.show-methods.' + name + "." + t.attr('panel-name'));
}
function getMethodPanelClassSel(element, name) {
var panelName = getPanelName(element);
var sel = '.' + panelName + "-class-" + name;
return $(sel);
}
$('a.hide-methods.' + name).on("click", function() {
var w = getContent($(this));
w.hide();
getHideLink($(this), name).hide();
getShowLink($(this), name).show();
getMethodPanelClassSel($(this), name).hide();
});
$('a.show-methods.' + name).on("click", function() {
var w = getContent($(this));
w.show();
getHideLink($(this), name).show();
getShowLink($(this), name).hide();
showPanel(getPanelName($(this)));
getMethodPanelClassSel($(this), name).show();
});
if (hide) {
$('a.hide-methods.' + name).trigger("click");
} else {
$('a.show-methods.' + name).trigger("click");
}
}
function getHashForMethod(element) {
return element.attr('hash-for-method');
}
function getPanelName(element) {
return element.attr('panel-name');
}
function showPanel(panelName) {
$('.panel').hide();
var panel = $('.panel[panel-name="' + panelName + '"]');
panel.show();
}
function showMethod(element) {
var hashTag = getHashForMethod(element);
var panelName = getPanelName(element);
showPanel(panelName);
var current = document.location.href;
var base = current.substring(0, current.indexOf('#'))
document.location.href = base + '#' + hashTag;
var newPosition = $(document).scrollTop() - 65;
$(document).scrollTop(newPosition);
}
function drawTable() {
for (var i = 0; i < suiteTableInitFunctions.length; i++) {
window[suiteTableInitFunctions[i]]();
}
for (var k in window.suiteTableData) {
var v = window.suiteTableData[k];
var div = v.tableDiv;
var data = v.tableData
var table = new google.visualization.Table(document.getElementById(div));
table.draw(data, {
showRowNumber : false
});
}
}
body {
background-color: whitesmoke;
margin: 0 0 5px 5px;
}
ul {
margin-top: 10px;
margin-left:-10px;
}
li {
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
padding:5px 5px;
}
a {
text-decoration: none;
color: black;
font-size: 14px;
}
a:hover {
color:black ;
text-decoration: underline;
}
.navigator-selected {
/* #ffa500; Mouse hover color after click Orange.*/
background:#027368
}
.wrapper {
position: absolute;
top: 60px;
bottom: 0;
left: 400px;
right: 0;
margin-right:9px;
overflow: auto;/*imortant*/
}
.navigator-root {
position: absolute;
top: 60px;
bottom: 0;
left: 0;
width: 400px;
overflow-y: auto;/*important*/
}
.suite {
margin: -5px 10px 10px 5px;
background-color: whitesmoke ;/*Colour of the left bside box*/
}
.suite-name {
font-size: 24px;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;/*All TEST SUITE*/
color: white;
}
.main-panel-header {
padding: 5px;
background-color: #027368; /*afeeee*/;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
color:white;
font-size: 18px;
}
.main-panel-content {
padding: 5px;
margin-bottom: 10px;
background-color: #CCD0D1; /*d0ffff*/; /*Belongs to backGround of rightSide boxes*/
}
.rounded-window {
border-style: dotted;
border-width: 1px;/*Border of left Side box*/
background-color: whitesmoke;
border-radius: 10px;
}
.rounded-window-top {
border-top-right-radius: 10px 10px;
border-top-left-radius: 10px 10px;
border-style: solid;
border-width: 1px;
overflow: auto;/*Top of RightSide box*/
}
.light-rounded-window-top {
background-color: #027368;
padding-left:120px;
border-radius: 10px;
}
.rounded-window-bottom {
border-bottom-right-radius: 10px 10px;
border-bottom-left-radius: 10px 10px;
overflow: auto;/*Bottom of rightSide box*/
}
.method-name {
font-size: 14px;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-weight: bold;
}
.method-content {
border-style: solid;
border-width: 0 0 1px 0;
margin-bottom: 10px;
padding-bottom: 5px;
width: 100%;
}
.parameters {
font-size: 14px;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.stack-trace {
white-space: pre;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: 12px;
font-weight: bold;
margin-top: 0;
margin-left: 20px; /*Error Stack Trace Message*/
}
.testng-xml {
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.method-list-content {
margin-left: 10px;
}
.navigator-suite-content {
margin-left: 10px;
font: 12px 'Lucida Grande';
}
.suite-section-title {
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: 14px;
font-weight:bold;
background-color: #8C8887;
margin-left: -10px;
margin-top:10px;
padding:6px;
}
.suite-section-content {
list-style-image: url(bullet_point.png);
background-color: whitesmoke;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
overflow: hidden;
}
.top-banner-root {
position: absolute;
top: 0;
height: 45px;
left: 0;
right: 0;
padding: 5px;
margin: 0 0 5px 0;
background-color: #027368;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: 18px;
color: #fff;
text-align: center;/*Belongs to the Top of Report*//*Status: - Completed*/
}
.top-banner-title-font {
font-size: 25px;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
padding: 3px;
float: right;
}
.test-name {
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: 16px;
}
.suite-icon {
padding: 5px;
float: right;
height: 20px;
}
.test-group {
font: 20px 'Lucida Grande';
margin: 5px 5px 10px 5px;
border-width: 0 0 1px 0;
border-style: solid;
padding: 5px;
}
.test-group-name {
font-weight: bold;
}
.method-in-group {
font-size: 16px;
margin-left: 80px;
}
table.google-visualization-table-table {
width: 100%;
}
.reporter-method-name {
font-size: 14px;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.reporter-method-output-div {
padding: 5px;
margin: 0 0 5px 20px;
font-size: 12px;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
border-width: 0 0 0 1px;
border-style: solid;
}
.ignored-class-div {
font-size: 14px;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.ignored-methods-div {
padding: 5px;
margin: 0 0 5px 20px;
font-size: 12px;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
border-width: 0 0 0 1px;
border-style: solid;
}
.border-failed {
border-radius:2px;
border-style: solid;
border-width: 0 0 0 10px;
border-color: #F20505;
}
.border-skipped {
border-radius:2px;
border-style: solid;
border-width: 0 0 0 10px;
border-color: #F2BE22;
}
.border-passed {
border-radius:2px;
border-style: solid;
border-width: 0 0 0 10px;
border-color: #038C73;
}
.times-div {
text-align: center;
padding: 5px;
}
.suite-total-time {
font: 16px 'Lucida Grande';
}
.configuration-suite {
margin-left: 20px;
}
.configuration-test {
margin-left: 40px;
}
.configuration-class {
margin-left: 60px;
}
.configuration-method {
margin-left: 80px;
}
.test-method {
margin-left: 100px;
}
.chronological-class {
background-color: #CCD0D1;
border-width: 0 0 1px 1px;/*Chronological*/
}
.method-start {
float: right;
}
.chronological-class-name {
padding: 0 0 0 5px;
margin-top:5px;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
color: #008;
}
.after, .before, .test-method {
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: 14px;
margin-top:5px;
}
.navigator-suite-header {
font-size: 18px;
margin: 0px 10px 10px 5px;
padding: 5px;
border-radius: 10px;
background-color: #027368;
color: white;
font-weight:bold;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
text-align: center; /*All Suites on top of left box*//*Status: -Completed*/
}
.collapse-all-icon {
padding: 3px;
float: right;
}
.button{
position: absolute;
margin-left:500px;
margin-top:8px;
background-color: white;
color:#027368;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-weight:bold;
border-color:#027368;
border-radius:25px;
cursor: pointer;
height:30px;
width:150px;
outline: none;
}
/*Author: - Akhil Gullapalli*/
\ No newline at end of file
window.onload = function () {
let cookies = document.cookie;
let cookieValue = cookies.split('=');
if (cookieValue[1] === 'null' || localStorage.getItem('Theme') === 'null') {
document.getElementById('retro').setAttribute('disabled', 'false');
} else if (cookieValue[1] === 'Switch Ultra Theme' ||
localStorage.getItem('Theme') === 'Switch Ultra Theme') {
document.getElementById('button').innerText = "Switch Retro Theme";
document.getElementById('retro').setAttribute('disabled', 'false');
} else if (cookieValue[1] === 'Switch Retro Theme' ||
localStorage.getItem('Theme') === 'Switch Retro Theme') {
if (cookieValue[1] === 'Switch Ultra Theme' ||
localStorage.getItem('Theme') === 'Switch Ultra Theme') {
document.getElementById('button').innerText = "Switch Retro Theme";
document.getElementById('retro').setAttribute('disabled', 'false');
document.getElementById('button').innerText = "Switch Ultra Theme";
document.getElementById('retro').removeAttribute('disabled');
document.getElementById('ultra').setAttribute('disabled', 'false');
localStorage.setItem('Theme', select);
} else if (select === 'Switch Ultra Theme') {
document.getElementById('button').innerText = "Switch Retro Theme";
document.getElementById('ultra').removeAttribute('disabled');
document.getElementById('retro').setAttribute('disabled', 'false');
localStorage.setItem('Theme', select);
}
} else if (cookieValue[1] === 'Switch Retro Theme' ||
localStorage.getItem('Theme') === 'Switch Retro Theme') {
document.getElementById('button').innerText = "Switch Ultra Theme";
document.getElementById('ultra').setAttribute('disabled', 'false');
}
}
document.getElementById('button').onclick = function () {
let select = document.getElementById('button').innerText;
if (select === 'Switch Retro Theme') {
let d = new Date();
days = 365;
d.setTime(+d + (days * 86400000)); //24 * 60 * 60 * 1000
document.cookie = "Theme =" + select + "; expires=" + d.toGMTString() + ";";
document.getElementById('button').innerText = "Switch Ultra Theme";
document.getElementById('retro').removeAttribute('disabled');
document.getElementById('ultra').setAttribute('disabled', 'false');
localStorage.setItem('Theme', select);
} else if (select === 'Switch Ultra Theme') {
let d = new Date();
days = 365;
d.setTime(+d + (days * 86400000)); //24 * 60 * 60 * 1000
document.cookie = "Theme =" + select + "; expires=" + d.toGMTString() + ";";
document.getElementById('button').innerText = "Switch Retro Theme";
document.getElementById('ultra').removeAttribute('disabled');
document.getElementById('retro').setAttribute('disabled', 'false');
localStorage.setItem('Theme', select);
}
}
//Function to mouse hovering affect.
document.getElementById('button').onmouseover = function () {
document.getElementById('button').style.borderRadius = "25px";
document.getElementById('button').style.width = "180px";
document.getElementById('button').style.height = "45px";
document.getElementById('button').style.marginTop = "1px";
}
//Function to mouse out affect
document.getElementById('button').onmouseout = function () {
document.getElementById('button').style.borderRadius = "25px";
document.getElementById('button').style.width = "150px";
document.getElementById('button').style.height = "30px";
document.getElementById('button').style.marginTop = "8px";
}
//This is the file where we handle the switching of the Themes.
/*Author:- Akhil Gullapalli*/
<?xml version="1.0" encoding="UTF-8"?>
<testng-results ignored="3" total="4" passed="1" failed="0" skipped="0">
<reporter-output>
</reporter-output>
<suite started-at="2023-04-13T12:45:14 BDT" name="Default suite" finished-at="2023-04-13T12:45:31 BDT" duration-ms="17526">
<groups>
</groups>
<test started-at="2023-04-13T12:45:14 BDT" name="Default test" finished-at="2023-04-13T12:45:31 BDT" duration-ms="17526">
<class name="testcases.bicmaBidderReg">
<test-method is-config="true" signature="setup()[pri:0, instance:testcases.bicmaBidderReg@22d7b4f8]" started-at="2023-04-13T12:45:14 BDT" name="setup" finished-at="2023-04-13T12:45:20 BDT" duration-ms="5934" status="PASS">
<reporter-output>
</reporter-output>
</test-method> <!-- setup -->
<test-method signature="BidderVerification(java.lang.String,java.lang.String,java.lang.String,java.lang.String)[pri:0, instance:testcases.bicmaBidderReg@22d7b4f8]" started-at="2023-04-13T12:45:20 BDT" name="BidderVerification" data-provider="prantodata" finished-at="2023-04-13T12:45:31 BDT" duration-ms="10772" status="PASS">
<params>
<param index="0">
<value>
<![CDATA[contentadmin@staging.com]]>
</value>
</param>
<param index="1">
<value>
<![CDATA[egp12345]]>
</value>
</param>
<param index="2">
<value>
<![CDATA[bicmabidder2@dohatec.com]]>
</value>
</param>
<param index="3">
<value>
<![CDATA[Bicma Bidder ]]>
</value>
</param>
</params>
<reporter-output>
</reporter-output>
</test-method> <!-- BidderVerification -->
</class> <!-- testcases.bicmaBidderReg -->
</test> <!-- Default test -->
</suite> <!-- Default suite -->
</testng-results>
.invocation-failed, .test-failed { background-color: #DD0000; }
.invocation-percent, .test-percent { background-color: #006600; }
.invocation-passed, .test-passed { background-color: #00AA00; }
.invocation-skipped, .test-skipped { background-color: #CCCC00; }
.main-page {
font-size: x-large;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment