2

Here is my problem:

When I have step with data:
|Name | Description | data1 | data2|
| A   |  new A      |   abc  | xyz   |

The step definition

@When I_have_step_with_data(List<DataSet> dataSet){
    ////
}

I am trying to map the above data table into this domain object.

public class DataSet{
    private String name;  -> maps to Name
    private String description; -> maps to Description
    private List<Data> data;  -> creates list of Data with data1,abc and data2,xyz set.
}

public class Data {
    private string key;
    private String value;
}

Any pointers on how this can be achieved would be great.

Vijay Venkatesh
  • 445
  • 4
  • 11

1 Answers1

1

Let's say here is your scenario :

   When I have step with data:
    |Name | Description | data1  | data2 |
    | A   |  new A      |   abc  | xyz   |

You will create POJO class (Getters and Setter)

You will create one class call "DataClass"

public class DataClass{
    private String Name;
    private String Description;
    private String Data1;
    private String Data2;


    public DataClass(String Name, String Description, String Data1,String Data2) {
        this.Name = Name;
        this.Description= Description;
        this.Data1= Data1;
        this.Data2= Data2;

    }
    public String getName() {
        return Name;
    }


    public void setName(String name) {
        Name = name;
    }


    public String getDescription() {
        return Description;
    }


    public void setDescription(String description) {
        Description = description;
    }


    public String getData1() {
        return Data1;
    }


    public void setData1(String data1) {
        Data1 = data1;
    }


    public String getData2() {
        return Data2;
    }


    public void setData2(String data2) {
        Data2 = data2;
    }


}

In Step Definition , Here is loop to get value

public class descriptionSteDefs{
    private Map<String, DataClass> DataClassList;

    @When("^When I have step with data$")
    public void description_data(List<DataClass> DataClassList) throws Throwable {
        DataClassList = new HashMap<String, DataClass>();

        for (DataClass DataClassValue: DataClassList) {
            String key = DataClass.getDescription;
            DataClassList .put(key, DataClassValue);
        }
    }
Community
  • 1
  • 1
N..
  • 906
  • 7
  • 23