package org.test4j.spec.inner;
import java.lang.annotation.Annotation;
import org.test4j.tools.commons.StringHelper;
public enum StepType {
Step {
@Override
public Class<? extends Annotation> getAnnotatonClaz() {
return org.test4j.spec.annotations.Step.class;
}
},
Given {
@Override
public Class<? extends Annotation> getAnnotatonClaz() {
return org.test4j.spec.annotations.Given.class;
}
},
When {
@Override
public Class<? extends Annotation> getAnnotatonClaz() {
return org.test4j.spec.annotations.When.class;
}
},
Then {
@Override
public Class<? extends Annotation> getAnnotatonClaz() {
return org.test4j.spec.annotations.Then.class;
}
};
public abstract Class<? extends Annotation> getAnnotatonClaz();
public static StepType getStepType(String type) {
if (StringHelper.isBlankOrNull(type)) {
return Step;
}
if ("given".equalsIgnoreCase(type)) {
return Given;
}
if ("when".equalsIgnoreCase(type)) {
return When;
}
if ("then".equalsIgnoreCase(type)) {
return Then;
}
throw new RuntimeException("the step type can only be following values: Given, When and Then; but actual is "
+ type);
}
}