mirror of
https://github.com/hmalik144/Automation-Test-Framework.git
synced 2025-12-10 03:05:35 +00:00
78 lines
2.1 KiB
Kotlin
78 lines
2.1 KiB
Kotlin
package stepDefinition
|
|
|
|
import constants.Drivers
|
|
import constants.Gender
|
|
import io.cucumber.java.After
|
|
import io.cucumber.java.Before
|
|
import io.cucumber.java.en.Given
|
|
import io.cucumber.java.en.Then
|
|
import io.cucumber.java.en.When
|
|
import org.openqa.selenium.WebDriver
|
|
import pages.FormPageFactory
|
|
import pages.SubmittedFormFactory
|
|
import stepDefinition.baseSteps.Driver
|
|
import stepDefinition.baseSteps.DriverSteps
|
|
import java.lang.AssertionError
|
|
|
|
|
|
class PracticeFormPageSteps: DriverSteps() {
|
|
|
|
lateinit var webDriver: WebDriver
|
|
|
|
lateinit var formPageFactory: FormPageFactory
|
|
lateinit var submittedFormFactory: SubmittedFormFactory
|
|
|
|
@Before
|
|
fun setup(){
|
|
webDriver = retrieveWebDriver(Drivers.Chrome)
|
|
|
|
formPageFactory = FormPageFactory(webDriver)
|
|
submittedFormFactory = SubmittedFormFactory(webDriver)
|
|
}
|
|
|
|
@After
|
|
fun tearDown(){
|
|
webDriver.finish()
|
|
}
|
|
|
|
@Given("user is on practice form")
|
|
fun user_is_on_practice_form() {
|
|
webDriver.launchUrl("https://demoqa.com/automation-practice-form")
|
|
}
|
|
|
|
@When("user enters first name {string} and last name {string}")
|
|
fun user_enters_first_name_and_last_name(firstName: String?, lastName: String?) {
|
|
formPageFactory.apply {
|
|
firstName?.let { enterFirstName(it) }
|
|
lastName?.let { enterLastName(it) }
|
|
}
|
|
}
|
|
|
|
@When("user selects gender \"([^\"]*)\"$")
|
|
fun user_selects_gender(gender: Gender?) {
|
|
gender?.let { formPageFactory.selectGender(it) }
|
|
}
|
|
|
|
@When("user enters email address {string}")
|
|
fun user_enters_email_address(email: String?) {
|
|
email?.let { formPageFactory.enterEmailAddress(it) }
|
|
}
|
|
|
|
@When("user enters mobile number {string}")
|
|
fun user_enters_mobile_number(mobile: String?) {
|
|
mobile?.let { formPageFactory.enterMobileNumber(it) }
|
|
}
|
|
|
|
@When("user clicks submit button")
|
|
fun user_clicks_submit_button() {
|
|
formPageFactory.submit()
|
|
}
|
|
|
|
@Then("pop up is displayed")
|
|
fun pop_up_is_displayed() {
|
|
if(!submittedFormFactory.checkTableIsDisplayed()){
|
|
throw AssertionError("Popup not displayed")
|
|
}
|
|
}
|
|
|
|
} |