35 lines
		
	
	
		
			984 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			984 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| require "requirements/java_requirement"
 | |
| require "fileutils"
 | |
| 
 | |
| describe JavaRequirement do
 | |
|   subject { described_class.new(%w[1.8]) }
 | |
|   let(:java_home) { Dir.mktmpdir }
 | |
|   let(:java_home_path) { Pathname.new(java_home) }
 | |
| 
 | |
|   before(:each) do
 | |
|     FileUtils.mkdir java_home_path/"bin"
 | |
|     FileUtils.touch java_home_path/"bin/java"
 | |
|     allow(subject).to receive(:preferred_java).and_return(java_home_path/"bin/java")
 | |
|     expect(subject).to be_satisfied
 | |
|   end
 | |
| 
 | |
|   after(:each) { java_home_path.rmtree }
 | |
| 
 | |
|   specify "Apple Java environment" do
 | |
|     expect(ENV).to receive(:prepend_path)
 | |
|     expect(ENV).to receive(:append_to_cflags)
 | |
| 
 | |
|     subject.modify_build_environment
 | |
|     expect(ENV["JAVA_HOME"]).to eq(java_home)
 | |
|   end
 | |
| 
 | |
|   specify "Oracle Java environment" do
 | |
|     FileUtils.mkdir java_home_path/"include"
 | |
|     expect(ENV).to receive(:prepend_path)
 | |
|     expect(ENV).to receive(:append_to_cflags).twice
 | |
| 
 | |
|     subject.modify_build_environment
 | |
|     expect(ENV["JAVA_HOME"]).to eq(java_home)
 | |
|   end
 | |
| end
 | 
