package eu.swiec.bearballin.runtime.steps.sikuli.soldier;
import eu.swiec.bearballin.model.ITestData;
import eu.swiec.bearballin.model.exceptions.StepExecutionException;
import eu.swiec.bearballin.model.steps.SikuliStep;
import org.jbehave.core.annotations.When;
import java.util.ArrayList;
import java.util.List;
/**
* Created by IntelliJ IDEA.
* User: uhc
* Date: 23.09.12
* Time: 13:45
* To change this template use File | Settings | File Templates.
*/
public class AssignBodyLabelsStep extends SikuliStep {
private class BodyLabel {
public final String pictureFrom;
public final String pictureTo;
public BodyLabel(String pictrureDragFrom, String pictureDragTo) {
this.pictureFrom = pictrureDragFrom;
this.pictureTo = pictureDragTo;
}
}
private final List<BodyLabel> bodyPartsList;
public AssignBodyLabelsStep(String stepId) {
this(stepId, null);
}
public AssignBodyLabelsStep(String stepId, ITestData testData) {
super(stepId, testData);
bodyPartsList = new ArrayList<BodyLabel>(8);
bodyPartsList.add(new BodyLabel("LeftFootLabel.png", "LeftFootPoster.png"));
bodyPartsList.add(new BodyLabel("RightFootLabel.png", "RightFootPoster.png"));
bodyPartsList.add(new BodyLabel("LeftHandLabel.png", "LeftHandPoster.png"));
bodyPartsList.add(new BodyLabel("RightHandLabel.png", "RightHandPoster.png"));
bodyPartsList.add(new BodyLabel("StomachLabel.png", "StomachPoster.png"));
bodyPartsList.add(new BodyLabel("HeadLabel.png", "HeadPoster.png"));
}
@Override
public boolean checkAccesibility() {
return driver.exists("DragDropMessage.png");
}
@When("I will assign $partNum body labels correctly")
public void whenAssignBodyParts(String partNum) {
if (checkAccesibility()) {
defaultAction(null);
Integer i = 0;
for (BodyLabel label : bodyPartsList) {
if (i.toString().equals(partNum)) break;
i++;
driver.tryDragDrop(label.pictureFrom, label.pictureTo);
}
}
}
@Override
public String defaultAction(ITestData testDataCollector) throws StepExecutionException {
driver.tryClick("DragDropMessage.png");
return "";
}
}