summaryrefslogtreecommitdiff
path: root/crashbox-server/src/test/scala
diff options
context:
space:
mode:
authorJakob Odersky <jakob@odersky.com>2017-03-06 01:32:39 -0800
committerJakob Odersky <jakob@odersky.com>2017-03-06 01:32:39 -0800
commit374ac0ce8c10e9063c263ecf9c708f9ee6772973 (patch)
treea80f53db0a5ee8e3c40e1941b331869a2560164d /crashbox-server/src/test/scala
parentf9cc5e3f8478eb9f19cca093b8019e579f9c87e6 (diff)
downloadcrashbox-ci-374ac0ce8c10e9063c263ecf9c708f9ee6772973.tar.gz
crashbox-ci-374ac0ce8c10e9063c263ecf9c708f9ee6772973.tar.bz2
crashbox-ci-374ac0ce8c10e9063c263ecf9c708f9ee6772973.zip
Basic, single-task builder
Diffstat (limited to 'crashbox-server/src/test/scala')
-rw-r--r--crashbox-server/src/test/scala/io/crashbox/ci/SourceSpec.scala35
-rw-r--r--crashbox-server/src/test/scala/io/crashbox/ci/TestUtil.scala13
2 files changed, 48 insertions, 0 deletions
diff --git a/crashbox-server/src/test/scala/io/crashbox/ci/SourceSpec.scala b/crashbox-server/src/test/scala/io/crashbox/ci/SourceSpec.scala
new file mode 100644
index 0000000..9bef01d
--- /dev/null
+++ b/crashbox-server/src/test/scala/io/crashbox/ci/SourceSpec.scala
@@ -0,0 +1,35 @@
+package io.crashbox.ci
+
+import java.io.File
+import java.nio.file.Files
+import java.net.URL
+import org.eclipse.jgit.api.Git
+import scala.concurrent.duration._
+import scala.concurrent.Await
+import org.scalatest._
+
+class SourceSpec extends FlatSpec with Matchers with Source with Core {
+
+ val Timeout = 10.seconds
+
+ def makeRepo(dir: File): Unit = {
+ Git.init().setDirectory(dir).call()
+ val file1 = new File(dir, "file1")
+ file1.createNewFile()
+ val file2 = new File(dir, "file2")
+ file2.createNewFile()
+ Git.open(dir).add().addFilepattern(".").call()
+ Git.open(dir).commit().setMessage("initial commit").call()
+ }
+
+ "GitFetchers" should "be able to clone a local repository" in {
+ TestUtil.withTempDir{ remote =>
+ makeRepo(remote)
+ TestUtil.withTempDir { local =>
+ val cloned = Await.result(fetchSource(remote.toURI().toURL(), local), Timeout)
+ assert(cloned.listFiles().length == 3)
+ }
+ }
+ }
+
+}
diff --git a/crashbox-server/src/test/scala/io/crashbox/ci/TestUtil.scala b/crashbox-server/src/test/scala/io/crashbox/ci/TestUtil.scala
new file mode 100644
index 0000000..eb177f8
--- /dev/null
+++ b/crashbox-server/src/test/scala/io/crashbox/ci/TestUtil.scala
@@ -0,0 +1,13 @@
+package io.crashbox.ci
+
+import java.io.{ File, OutputStream }
+import java.nio.file.Files
+
+object TestUtil {
+
+ def withTempDir[A](f: File => A): A = {
+ val dir = Files.createTempDirectory("crashbox-test").toFile
+ try f(dir) finally dir.delete()
+ }
+
+}