package xsbt.boot import java.io.{File,InputStream} import java.net.URL import java.util.Properties import xsbti._ import org.specs2._ import mutable.Specification import sbt.IO.{createDirectory, touch,withTemporaryDirectory} object ConfigurationParserTest extends Specification { "Configuration Parser" should { "Correctly parse bootOnly" in { repoFileContains("""|[repositories] | local: bootOnly""".stripMargin, Repository.Predefined("local", true)) repoFileContains("""|[repositories] | local""".stripMargin, Repository.Predefined("local", false)) repoFileContains("""|[repositories] | id: http://repo1.maven.org""".stripMargin, Repository.Maven("id", new URL("http://repo1.maven.org"), false)) repoFileContains("""|[repositories] | id: http://repo1.maven.org, bootOnly""".stripMargin, Repository.Maven("id", new URL("http://repo1.maven.org"), true)) repoFileContains("""|[repositories] | id: http://repo1.maven.org, [orgPath]""".stripMargin, Repository.Ivy("id", new URL("http://repo1.maven.org"), "[orgPath]", "[orgPath]", false, false)) repoFileContains("""|[repositories] | id: http://repo1.maven.org, [orgPath], mavenCompatible""".stripMargin, Repository.Ivy("id", new URL("http://repo1.maven.org"), "[orgPath]", "[orgPath]", true, false)) repoFileContains("""|[repositories] | id: http://repo1.maven.org, [orgPath], mavenCompatible, bootOnly""".stripMargin, Repository.Ivy("id", new URL("http://repo1.maven.org"), "[orgPath]", "[orgPath]", true, true)) repoFileContains("""|[repositories] | id: http://repo1.maven.org, [orgPath], bootOnly, mavenCompatible""".stripMargin, Repository.Ivy("id", new URL("http://repo1.maven.org"), "[orgPath]", "[orgPath]", true, true)) repoFileContains("""|[repositories] | id: http://repo1.maven.org, [orgPath], bootOnly""".stripMargin, Repository.Ivy("id", new URL("http://repo1.maven.org"), "[orgPath]", "[orgPath]", false, true)) repoFileContains("""|[repositories] | id: http://repo1.maven.org, [orgPath], [artPath]""".stripMargin, Repository.Ivy("id", new URL("http://repo1.maven.org"), "[orgPath]", "[artPath]", false, false)) repoFileContains("""|[repositories] | id: http://repo1.maven.org, [orgPath], [artPath], bootOnly""".stripMargin, Repository.Ivy("id", new URL("http://repo1.maven.org"), "[orgPath]", "[artPath]", false, true)) repoFileContains("""|[repositories] | id: http://repo1.maven.org, [orgPath], [artPath], bootOnly, mavenCompatible""".stripMargin, Repository.Ivy("id", new URL("http://repo1.maven.org"), "[orgPath]", "[artPath]", true, true)) repoFileContains("""|[repositories] | id: http://repo1.maven.org, [orgPath], [artPath], mavenCompatible, bootOnly""".stripMargin, Repository.Ivy("id", new URL("http://repo1.maven.org"), "[orgPath]", "[artPath]", true, true)) } } def repoFileContains(file: String, repo: Repository.Repository) = loadRepoFile(file) must contain(repo) def loadRepoFile(file: String) = (new ConfigurationParser) readRepositoriesConfig file }