@@ -14,25 +14,42 @@ class GemInstallerSpec extends FlatSpec with MustMatchers with BeforeAndAfterEac
14
14
private val jRubyHome = new File (System .getProperty(" user.dir" ), " target" )
15
15
private val gemDir = new File (jRubyHome, " gems" )
16
16
private val jRubyJar = new File (System .getProperty(" user.home" )) / " .ivy2" / " cache" / " org.jruby" / " jruby-complete" / " jars" / " jruby-complete-1.6.1.jar"
17
- private val cucumberVersion = " 1.0.0"
17
+
18
+ private val gemName = " json"
19
+ private val gemVersion = " 1.5.3"
18
20
19
21
override def beforeEach () {
20
- if ( gemDir.exists ) deleteAllFiles (gemDir)
21
- else gemDir.mkdirs( )
22
+ IO .delete (gemDir)
23
+ IO .createDirectory(gemDir )
22
24
}
23
25
26
+ " A gem installer" should " install the test gem" in {
27
+ installTestGem()
28
+ gemDirectory.exists() must be(true )
29
+ }
24
30
25
- " A gem installer" should " install the cucumber gem" in {
26
- val installer = new GemInstaller (jRubyHome, gemDir,
27
- List (jRubyJar),
28
- StdoutOutput )
29
- installer.installGem(Gem (" cucumber" , Some (cucumberVersion), Some (" http://rubygems.org/" )))
31
+ it should " not install the test gem if it is already present" in {
32
+ installTestGem()
33
+ val timestamp = gemFile.lastModified()
34
+ installTestGem()
35
+ gemFile.lastModified() must be(timestamp)
36
+ }
30
37
31
- new File (gemDir, " gems/cucumber-" + cucumberVersion).exists() must be(true )
38
+ it should " force install the test gem even if it is already present" in {
39
+ installTestGem()
40
+ val timestamp = gemFile.lastModified()
41
+ installTestGem(true )
42
+ gemFile.lastModified() must not be(timestamp)
32
43
}
33
44
34
- private def deleteAllFiles (dir : File ): Unit = dir.listFiles.foreach { f =>
35
- if ( f.isDirectory ) deleteAllFiles(f)
36
- f.delete()
45
+ private def gemDirectory = gemDir / " gems" / " %s-%s-java" .format(gemName, gemVersion)
46
+ private def gemFile = gemDirectory / " lib" / " json.rb"
47
+
48
+ private def installTestGem (force : Boolean = false ) {
49
+ val installer = new GemInstaller (jRubyHome, gemDir,
50
+ List (jRubyJar),
51
+ StdoutOutput )
52
+ val gem = Gem (gemName, Some (gemVersion), Some (" http://rubygems.org/" ), Some (" java" ))
53
+ installer.installGem(gem, force)
37
54
}
38
55
}
0 commit comments