package sk.fiit.jim.agent;
import java.io.File;
import org.junit.Before;
import sk.fiit.jim.agent.models.AgentModel;
import sk.fiit.jim.agent.models.EnvironmentModel;
import sk.fiit.jim.agent.models.WorldModel;
import sk.fiit.jim.agent.models.EnvironmentModel.PlayMode;
import sk.fiit.jim.agent.moves.LowSkill;
import sk.fiit.jim.agent.moves.LowSkills;
import sk.fiit.jim.agent.moves.Phase;
import sk.fiit.jim.init.Script;
import sk.fiit.jim.init.ScriptBoot;
import sk.fiit.jim.init.SkillsFromXmlLoader;
/**
* IntegrationTest.java
*
*@Title Jim
*@author $Author: marosurbanec $
*/
public class IntegrationTest{
static class StringHolder{
public String value = null;
}
protected AgentModel agent;
protected WorldModel world;
@Before
public void setup(){
agent = new AgentModel();
world = new WorldModel(agent);
AgentModel.setTestingInstance(agent);
WorldModel.setTestingInstance(world);
ScriptBoot.boot();
new SkillsFromXmlLoader(new File("./test_moves"));
EnvironmentModel.PLAY_MODE = PlayMode.PLAY_ON;
}
protected void createEmptyLowSkill(String name){
LowSkills.addSkill(new LowSkill(name, Phase.EMPTY_PHASE.name));
}
protected String currentLowSkill(){
StringHolder holder = new StringHolder();
Script script = Script.createScript("$holder.value = Plan.instance.current_high_skill.current_low_skill");
script.registerBean("holder", holder);
script.execute();
return holder.value;
}
protected String currentHighSkill(){
StringHolder holder = new StringHolder();
Script script = Script.createScript("$holder.value = Plan.instance.current_high_skill.class.name");
script.registerBean("holder", holder);
script.execute();
return holder.value;
}
}