package test; import play.Logger; import play.Logger.ALogger; import play.api.libs.Files; import play.test.FakeApplication; import com.avaje.ebean.Ebean; public class IntegrationTestHelper { private static ALogger log = Logger.of(IntegrationTestHelper.class); public EvolutionScript evolutionScript(FakeApplication app) { return evolutionScript(app, "conf/evolutions/integrationTest/data.sql"); } public EvolutionScript evolutionScript(FakeApplication app, String script) { // Reading the evolution file play.api.test.FakeApplication wrappedApplication = app.getWrappedApplication(); String evolutionContent = Files.readFile(wrappedApplication.getFile(script)); // Splitting the String to get Create & Drop DDL String[] splittedEvolutionContent = evolutionContent.split("# --- !Ups"); String[] upsDowns = splittedEvolutionContent[1].split("# --- !Downs"); String ups = upsDowns[0]; String downs = upsDowns[1]; return new EvolutionScript(ups, downs); } public void runUps(EvolutionScript script) { if (script != null && script.ups != null) { Ebean.execute(Ebean.createCallableSql(script.ups)); } } public void runDowns(EvolutionScript script) { if (script != null && script.downs != null) { Ebean.execute(Ebean.createCallableSql(script.downs)); } } public void runUps(FakeApplication app, String script) { runUps(evolutionScript(app, script)); } public void runDowns(FakeApplication app, String script) { runDowns(evolutionScript(app, script)); } public void runUps(FakeApplication app) { runUps(evolutionScript(app)); } public void runDowns(FakeApplication app) { runDowns(evolutionScript(app)); } public void reset(FakeApplication app, String script) { EvolutionScript scr = evolutionScript(app, script); try { runDowns(scr); } catch (Exception e) { log.debug("exception : ", e); } try { runUps(scr); } catch (Exception e) { log.debug("exception : ", e); } } public void reset(FakeApplication app) { EvolutionScript scr = evolutionScript(app); try { runDowns(scr); } catch (Exception e) { log.debug("exception : ", e); } try { runUps(scr); } catch (Exception e) { log.debug("exception : ", e); } } class EvolutionScript { String ups; String downs; public EvolutionScript(String ups, String downs) { this.ups = ups; this.downs = downs; } } }