2019-04-19 15:38:03 +09:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2017-02-21 02:50:52 +01:00
|
|
|
require "requirements/java_requirement"
|
|
|
|
require "fileutils"
|
|
|
|
|
|
|
|
describe JavaRequirement do
|
|
|
|
subject { described_class.new(%w[1.8]) }
|
2018-03-25 13:30:37 +01:00
|
|
|
|
2017-02-28 14:50:46 +01:00
|
|
|
let(:java_home) { mktmpdir }
|
2017-02-21 02:50:52 +01:00
|
|
|
|
2018-03-25 13:30:37 +01:00
|
|
|
before do
|
2017-02-28 14:50:46 +01:00
|
|
|
FileUtils.mkdir java_home/"bin"
|
|
|
|
FileUtils.touch java_home/"bin/java"
|
|
|
|
allow(subject).to receive(:preferred_java).and_return(java_home/"bin/java")
|
2017-02-21 02:50:52 +01:00
|
|
|
end
|
|
|
|
|
|
|
|
specify "Apple Java environment" do
|
2019-03-28 19:16:56 +00:00
|
|
|
expect(subject).to be_satisfied
|
|
|
|
|
2017-02-21 02:50:52 +01:00
|
|
|
expect(ENV).to receive(:prepend_path)
|
|
|
|
expect(ENV).to receive(:append_to_cflags)
|
|
|
|
|
|
|
|
subject.modify_build_environment
|
2017-02-28 14:50:46 +01:00
|
|
|
expect(ENV["JAVA_HOME"]).to eq(java_home.to_s)
|
2017-02-21 02:50:52 +01:00
|
|
|
end
|
|
|
|
|
|
|
|
specify "Oracle Java environment" do
|
2019-03-28 19:16:56 +00:00
|
|
|
expect(subject).to be_satisfied
|
|
|
|
|
2017-02-28 14:50:46 +01:00
|
|
|
FileUtils.mkdir java_home/"include"
|
2017-02-21 02:50:52 +01:00
|
|
|
expect(ENV).to receive(:prepend_path)
|
|
|
|
expect(ENV).to receive(:append_to_cflags).twice
|
|
|
|
|
|
|
|
subject.modify_build_environment
|
2017-02-28 14:50:46 +01:00
|
|
|
expect(ENV["JAVA_HOME"]).to eq(java_home.to_s)
|
2017-02-21 02:50:52 +01:00
|
|
|
end
|
|
|
|
end
|