Moved to using Gender enum

This commit is contained in:
2021-01-19 14:09:24 +00:00
parent 807afea586
commit 8160b4cd1c
4 changed files with 63 additions and 56 deletions

6
.idea/vcs.xml generated Normal file
View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

View File

@@ -1,5 +1,6 @@
package pages package pages
import constants.Gender
import org.openqa.selenium.WebDriver import org.openqa.selenium.WebDriver
import org.openqa.selenium.WebElement import org.openqa.selenium.WebElement
import org.openqa.selenium.support.FindBy import org.openqa.selenium.support.FindBy
@@ -43,11 +44,10 @@ class FormPageFactory(
fun enterEmailAddress(email: String) = userEmail.sendKeys(email) fun enterEmailAddress(email: String) = userEmail.sendKeys(email)
fun selectGender(gender: String) = when(gender){ fun selectGender(gender: Gender) = when(gender){
"Male"-> male.click() Gender.Male-> male.click()
"Female"-> female.click() Gender.Female-> female.click()
"Other"-> other.click() Gender.Other-> other.click()
else -> {}
} }
fun enterMobileNumber(mobile: String) = mobileNumber.sendKeys(mobile) fun enterMobileNumber(mobile: String) = mobileNumber.sendKeys(mobile)

View File

@@ -1,6 +1,7 @@
package stepDefinition package stepDefinition
import constants.Drivers import constants.Drivers
import constants.Gender
import io.cucumber.java.After import io.cucumber.java.After
import io.cucumber.java.Before import io.cucumber.java.Before
import io.cucumber.java.en.Given import io.cucumber.java.en.Given
@@ -47,9 +48,9 @@ class PracticeFormPageSteps: DriverSteps() {
} }
} }
@When("user selects gender {string}") @When("user selects gender \"([^\"]*)\"$")
fun user_selects_gender(gender: String?) { fun user_selects_gender(gender: Gender?) {
gender?.let { formPageFactory.selectGender(gender) } gender?.let { formPageFactory.selectGender(it) }
} }
@When("user enters email address {string}") @When("user enters email address {string}")

View File

@@ -17,52 +17,52 @@ Feature: Feature to test the practice form
| Rachel | Zane | Female | rachel.zane@pearson-specter.com | 2125096965 | | Rachel | Zane | Female | rachel.zane@pearson-specter.com | 2125096965 |
@SmokeTest @RegressionTest # @SmokeTest @RegressionTest
Scenario Outline: Check user can successfully submit a form with all the minimum valid credentials and 1 letter names # Scenario Outline: Check user can successfully submit a form with all the minimum valid credentials and 1 letter names
#
Given user is on practice form # Given user is on practice form
When user enters first name "<firstName>" and last name "<lastName>" # When user enters first name "<firstName>" and last name "<lastName>"
And user selects gender "<gender>" # And user selects gender "<gender>"
And user enters email address "<emailAddress>" # And user enters email address "<emailAddress>"
And user enters mobile number "<mobileNumber>" # And user enters mobile number "<mobileNumber>"
And user clicks submit button # And user clicks submit button
Then pop up is displayed # Then pop up is displayed
#
Examples: # Examples:
| firstName | lastName | gender | emailAddress | mobileNumber | # | firstName | lastName | gender | emailAddress | mobileNumber |
| i | j | Male | j@domain.com | 2125096995 | # | i | j | Male | j@domain.com | 2125096995 |
| 2 | y | Female | y@domain.com | 2125096965 | # | 2 | y | Female | y@domain.com | 2125096965 |
#
#
@RegressionTest # @RegressionTest
Scenario Outline: Check user cannot submit a form with if fields are empty # Scenario Outline: Check user cannot submit a form with if fields are empty
#
Given user is on practice form # Given user is on practice form
When user enters first name "<firstName>" and last name "<lastName>" # When user enters first name "<firstName>" and last name "<lastName>"
And user selects gender "<gender>" # And user selects gender "<gender>"
And user enters email address "<emailAddress>" # And user enters email address "<emailAddress>"
And user enters mobile number "<mobileNumber>" # And user enters mobile number "<mobileNumber>"
And user clicks submit button # And user clicks submit button
Then no pop up is displayed # Then no pop up is displayed
#
Examples: # Examples:
| firstName | lastName | gender | emailAddress | mobileNumber | # | firstName | lastName | gender | emailAddress | mobileNumber |
| | Lastname | Male | name@domain.com | 2125096995 | # | | Lastname | Male | name@domain.com | 2125096995 |
| FirstName | | Female | name@domain.com | 2125096965 | # | FirstName | | Female | name@domain.com | 2125096965 |
| FirstName | Lastname | | name@domain.com | 2125096965 | # | FirstName | Lastname | | name@domain.com | 2125096965 |
| FirstName | Lastname | Other | | 2125096965 | # | FirstName | Lastname | Other | | 2125096965 |
| FirstName | Lastname | Other | name@domain.com | | # | FirstName | Lastname | Other | name@domain.com | |
#
@RegressionTest # @RegressionTest
Scenario Outline: Check email address shows error if incorrect email string # Scenario Outline: Check email address shows error if incorrect email string
#
Given user is on practice form # Given user is on practice form
When user enters email address "<emailAddress>" # When user enters email address "<emailAddress>"
Then email input is displaying an error # Then email input is displaying an error
#
Examples: # Examples:
| emailAddress | # | emailAddress |
| namedomain.com | # | namedomain.com |
| name@domain.c | # | name@domain.c |
| @domain.com | # | @domain.com |