| 
									
										
										
										
											2019-04-19 15:38:03 +09:00
										 |  |  | # frozen_string_literal: true | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-06-23 06:26:23 +05:30
										 |  |  | require "language/java" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | describe Language::Java do | 
					
						
							| 
									
										
										
										
											2021-01-25 09:18:10 +00:00
										 |  |  |   let(:f) do | 
					
						
							|  |  |  |     formula("openjdk") do | 
					
						
							|  |  |  |       url "openjdk" | 
					
						
							|  |  |  |       version "15.0.1" | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-02-02 14:47:53 +00:00
										 |  |  |   let(:expected_home) do | 
					
						
							|  |  |  |     if OS.mac? | 
					
						
							|  |  |  |       f.opt_libexec/"openjdk.jdk/Contents/Home" | 
					
						
							|  |  |  |     else | 
					
						
							|  |  |  |       f.opt_libexec | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-01-25 09:18:10 +00:00
										 |  |  |   before do | 
					
						
							|  |  |  |     allow(Formula).to receive(:[]).and_return(f) | 
					
						
							| 
									
										
										
										
											2023-12-14 02:52:30 +00:00
										 |  |  |     allow(f).to receive_messages(any_version_installed?: true, any_installed_version: f.version) | 
					
						
							| 
									
										
										
										
											2021-01-25 09:18:10 +00:00
										 |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-11-27 11:52:30 -08:00
										 |  |  |   describe "::java_home" do | 
					
						
							| 
									
										
										
										
											2021-02-02 14:47:53 +00:00
										 |  |  |     it "returns valid JAVA_HOME if version is specified" do | 
					
						
							| 
									
										
										
										
											2021-01-25 09:18:10 +00:00
										 |  |  |       java_home = described_class.java_home("1.8+") | 
					
						
							| 
									
										
										
										
											2021-02-02 14:47:53 +00:00
										 |  |  |       expect(java_home).to eql(expected_home) | 
					
						
							| 
									
										
										
										
											2018-11-27 11:52:30 -08:00
										 |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-02-02 14:47:53 +00:00
										 |  |  |     it "returns valid JAVA_HOME if version is not specified" do | 
					
						
							| 
									
										
										
										
											2018-11-27 11:52:30 -08:00
										 |  |  |       java_home = described_class.java_home | 
					
						
							| 
									
										
										
										
											2021-02-02 14:47:53 +00:00
										 |  |  |       expect(java_home).to eql(expected_home) | 
					
						
							| 
									
										
										
										
											2018-11-27 11:52:30 -08:00
										 |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-06-25 06:27:53 +05:30
										 |  |  |   describe "::java_home_env" do | 
					
						
							| 
									
										
										
										
											2021-01-25 09:18:10 +00:00
										 |  |  |     it "returns java_home path if version specified" do | 
					
						
							|  |  |  |       java_home_env = described_class.java_home_env("1.8+") | 
					
						
							| 
									
										
										
										
											2021-02-02 14:47:53 +00:00
										 |  |  |       expect(java_home_env[:JAVA_HOME]).to eql(expected_home.to_s) | 
					
						
							| 
									
										
										
										
											2017-06-23 06:26:23 +05:30
										 |  |  |     end | 
					
						
							| 
									
										
										
										
											2017-06-24 02:18:52 +05:30
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-01-25 09:18:10 +00:00
										 |  |  |     it "returns java_home path if version is not specified" do | 
					
						
							|  |  |  |       java_home_env = described_class.java_home_env | 
					
						
							| 
									
										
										
										
											2021-02-02 14:47:53 +00:00
										 |  |  |       expect(java_home_env[:JAVA_HOME]).to eql(expected_home.to_s) | 
					
						
							| 
									
										
										
										
											2017-06-23 06:26:23 +05:30
										 |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-06-25 06:27:53 +05:30
										 |  |  |   describe "::overridable_java_home_env" do | 
					
						
							| 
									
										
										
										
											2021-01-25 09:18:10 +00:00
										 |  |  |     it "returns java_home path if version specified" do | 
					
						
							|  |  |  |       overridable_java_home_env = described_class.overridable_java_home_env("1.8+") | 
					
						
							| 
									
										
										
										
											2021-02-02 14:47:53 +00:00
										 |  |  |       expect(overridable_java_home_env[:JAVA_HOME]).to eql("${JAVA_HOME:-#{expected_home}}") | 
					
						
							| 
									
										
										
										
											2017-06-23 06:26:23 +05:30
										 |  |  |     end | 
					
						
							| 
									
										
										
										
											2017-06-24 02:18:52 +05:30
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-01-25 09:18:10 +00:00
										 |  |  |     it "returns java_home path if version is not specified" do | 
					
						
							|  |  |  |       overridable_java_home_env = described_class.overridable_java_home_env | 
					
						
							| 
									
										
										
										
											2021-02-02 14:47:53 +00:00
										 |  |  |       expect(overridable_java_home_env[:JAVA_HOME]).to eql("${JAVA_HOME:-#{expected_home}}") | 
					
						
							| 
									
										
										
										
											2017-06-23 06:26:23 +05:30
										 |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | end |