I'm writing testcases using BDD. I have a scenario where I'm stuck
I'm generating random data using below step
When generate random data for registration form
There is Bean class which have some fields like fname, lname, email, pass
while i call above step it generates random data and filled in that bean class
Now it returns that bean class object and I'm storing that in formdata
variable
And store into 'formdata'
Now i want to send that to my username field like below
And enter firstname as '${formdata}'
code step for same :
@QAFTestStep(stepName = "enterFirstName", description = "enter firstname as {0}")
public void enterFirstName(Map<String, Object> data) {
sendKeys(data.get("firstname").toString(), element);
}
Its working fine but suppose in some case i have to send only string as below
And enter firstname as 'Narendra'
Step would be :
@QAFTestStep(stepName = "enterFirstName", description = "enter firstname as {0}")
public void enterFirstName(String fname) {
sendKeys(fname, element);
}
Then how do i manage these 2 code as single method ?
I tried below solution which helped me to do the same as i expecting:
@QAFTestStep(stepName = "enterFirstName", description = "enter firstname as {0}")
public void enterFirstName(Object obj) {
if (obj instanceof LinkedTreeMap) {
Map<String, Object> map = (Map<String, Object>) obj;
sendKeys(map.get("firstname").toString(), "regpage.firstname.textbox");
} else if (obj instanceof String) {
sendKeys(obj.toString(), "regpage.firstname.textbox");
} else if (obj instanceof RandomRegisterDataGenerator) {
RandomRegisterDataGenerator data = (RandomRegisterDataGenerator) obj;
sendKeys(data.getFirstname(), "regpage.firstname.textbox");
}
}