@@ -2,6 +2,10 @@ package sdkman.specs
22
33import sdkman.support.SdkmanEnvSpecification
44
5+ import java.nio.file.Paths
6+
7+ import static java.nio.file.Files.createSymbolicLink
8+
59class EnvCommandSpec extends SdkmanEnvSpecification {
610 static final String CANDIDATES_API = " http://localhost:8080/2"
711
@@ -11,7 +15,44 @@ class EnvCommandSpec extends SdkmanEnvSpecification {
1115 def " should generate an .sdkmanrc when called with 'init'" () {
1216 given :
1317 curlStub. primeWith(BROADCAST_API_LATEST_ID_ENDPOINT , " echo dbfb025be9f97fda2052b5febcca0155" )
14- .primeWith(CANDIDATES_DEFAULT_JAVA , " echo 11.0.6.hs-adpt" )
18+ .primeWith(CANDIDATES_DEFAULT_JAVA , " echo 11.0.6.hs-adpt" )
19+
20+ setupCandidates(candidatesDirectory)
21+
22+ bash = sdkmanBashEnvBuilder
23+ .withOfflineMode(true )
24+ .withVersionCache(" x.y.z" )
25+ .build()
26+
27+ bash. start()
28+ bash. execute(" source $bootstrapScript " )
29+
30+ when :
31+ bash. execute(" sdk env init" )
32+
33+ then :
34+ new File (bash. workDir, ' .sdkmanrc' ). text == expected
35+
36+ where :
37+ setupCandidates << [
38+ { directory ->
39+ new FileTreeBuilder (directory). with {
40+ " java" {
41+ " 8.0.252.hs" {
42+ " bin" {}
43+ }
44+ }
45+ }
46+
47+ createSymbolicLink(Paths . get(" $directory /java/current" ), Paths . get(" $directory /java/8.0.252.hs" ))
48+ },
49+ {}
50+ ]
51+ expected << [" java=8.0.252.hs\n " , " java=11.0.6.hs-adpt\n " ]
52+ }
53+
54+ def " should generate an .sdkmanrc with the default Java version when called with 'init'" () {
55+ given :
1556
1657 bash = sdkmanBashEnvBuilder
1758 .withVersionCache(" x.y.z" )
@@ -47,7 +88,7 @@ class EnvCommandSpec extends SdkmanEnvSpecification {
4788
4889 bash. start()
4990 bash. execute(" source $bootstrapScript " )
50-
91+
5192 when :
5293 bash. execute(" sdk env" )
5394
0 commit comments