53 lines
1.8 KiB
Ruby
53 lines
1.8 KiB
Ruby
require "spec_helper"
|
|
|
|
def unlink_and_delete(filename)
|
|
if File.symlink?(filename)
|
|
File.unlink(filename)
|
|
end
|
|
if File.exist?(filename)
|
|
File.delete(filename)
|
|
end
|
|
end
|
|
|
|
describe Facter::Util::Fact do
|
|
|
|
describe "java_default_home" do
|
|
before(:each) {
|
|
Facter.clear
|
|
Facter.fact(:kernel).stubs(:value).returns('Linux')
|
|
}
|
|
|
|
context 'returns java home path when java found in PATH' do
|
|
context "when java is in /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java" do
|
|
it do
|
|
unlink_and_delete('./java_test')
|
|
File.symlink('/usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java', './java_test')
|
|
Facter::Util::Resolution.expects(:which).with("java").returns("./java_test")
|
|
File.expects(:realpath).with('./java_test').returns('/usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java')
|
|
expect(Facter.value(:java_default_home)).to eql '/usr/lib/jvm/java-7-openjdk-amd64'
|
|
unlink_and_delete('./java_test')
|
|
end
|
|
end
|
|
|
|
context "when java is in /usr/lib/jvm/oracle-java8-jre-amd64/bin/java" do
|
|
it do
|
|
unlink_and_delete('./java_test')
|
|
File.symlink('/usr/lib/jvm/oracle-java8-jre-amd64/bin/java', './java_test')
|
|
Facter::Util::Resolution.expects(:which).with("java").returns("./java_test")
|
|
File.expects(:realpath).with('./java_test').returns('/usr/lib/jvm/oracle-java8-jre-amd64/bin/java')
|
|
expect(Facter.value(:java_default_home)).to eql '/usr/lib/jvm/oracle-java8-jre-amd64'
|
|
unlink_and_delete('./java_test')
|
|
end
|
|
end
|
|
end
|
|
|
|
context 'returns nil when java not present' do
|
|
it do
|
|
Facter::Util::Resolution.stubs(:exec)
|
|
Facter::Util::Resolution.expects(:which).with("java").at_least(1).returns(false)
|
|
expect(Facter.value(:java_default_home)).to be_nil
|
|
end
|
|
end
|
|
end
|
|
end
|