package service import scala.slick.session.Database import util.ControlUtil._ import java.sql.DriverManager import org.apache.commons.io.FileUtils import scala.util.Random import java.io.File trait ServiceSpecBase { def withTestDB[A](action: => A): A = { util.FileUtil.withTmpDir(new File(FileUtils.getTempDirectory(), Random.alphanumeric.take(10).mkString)){ dir => val (url, user, pass) = (s"jdbc:h2:${dir}", "sa", "sa") org.h2.Driver.load() using(DriverManager.getConnection(url, user, pass)){ conn => servlet.AutoUpdate.versions.reverse.foreach(_.update(conn)) } Database.forURL(url, user, pass).withSession { action } } } }