(MODULES-3958) use rspec-mock and add coverage

This commit is contained in:
tphoney
2019-02-14 13:50:04 +00:00
parent 7bede1a384
commit 7293c4991b
10 changed files with 72 additions and 35 deletions

View File

@@ -18,37 +18,37 @@ describe 'java_version' do
context 'when java present, returns java version' do
context 'on OpenBSD', with_env: true do
before(:each) do
Facter.fact(:operatingsystem).stubs(:value).returns('OpenBSD')
allow(Facter.fact(:operatingsystem)).to receive(:value).and_return('OpenBSD')
end
let(:facts) { { operatingsystem: 'OpenBSD' } }
it do
Facter::Util::Resolution.expects(:which).with('java').returns('/usr/local/jdk-1.7.0/jre/bin/java')
Facter::Util::Resolution.expects(:exec).with('java -Xmx12m -version 2>&1').returns(openjdk_7_output)
expect(Facter::Util::Resolution).to receive(:which).with('java').and_return('/usr/local/jdk-1.7.0/jre/bin/java')
expect(Facter::Util::Resolution).to receive(:exec).with('java -Xmx12m -version 2>&1').and_return(openjdk_7_output)
expect(Facter.value(:java_version)).to eq('1.7.0_71')
end
end
context 'when on Darwin' do
before(:each) do
Facter.fact(:operatingsystem).stubs(:value).returns('Darwin')
allow(Facter.fact(:operatingsystem)).to receive(:value).and_return('Darwin')
end
let(:facts) { { operatingsystem: 'Darwin' } }
it do
Facter::Util::Resolution.expects(:exec).with('/usr/libexec/java_home --failfast 2>&1').returns('/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home')
Facter::Util::Resolution.expects(:exec).with('java -Xmx12m -version 2>&1').returns(jdk_7_hotspot_output)
expect(Facter::Util::Resolution).to receive(:exec).with('/usr/libexec/java_home --failfast 2>&1').and_return('/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home')
expect(Facter::Util::Resolution).to receive(:exec).with('java -Xmx12m -version 2>&1').and_return(jdk_7_hotspot_output)
expect(Facter.value(:java_version)).to eql '1.7.0_71'
end
end
context 'when on other systems' do
before(:each) do
Facter.fact(:operatingsystem).stubs(:value).returns('MyOS')
allow(Facter.fact(:operatingsystem)).to receive(:value).and_return('MyOS')
end
let(:facts) { { operatingsystem: 'MyOS' } }
it do
Facter::Util::Resolution.expects(:which).with('java').returns('/path/to/java')
Facter::Util::Resolution.expects(:exec).with('java -Xmx12m -version 2>&1').returns(jdk_7_hotspot_output)
expect(Facter::Util::Resolution).to receive(:which).with('java').and_return('/path/to/java')
expect(Facter::Util::Resolution).to receive(:exec).with('java -Xmx12m -version 2>&1').and_return(jdk_7_hotspot_output)
expect(Facter.value(:java_version)).to eq('1.7.0_71')
end
end
@@ -57,34 +57,34 @@ describe 'java_version' do
context 'when java not present, returns nil' do
context 'on OpenBSD', with_env: true do
before(:each) do
Facter.fact(:operatingsystem).stubs(:value).returns('OpenBSD')
allow(Facter.fact(:operatingsystem)).to receive(:value).and_return('OpenBSD')
end
let(:facts) { { operatingsystem: 'OpenBSD' } }
it do
Facter::Util::Resolution.stubs(:exec)
allow(Facter::Util::Resolution).to receive(:exec) # Catch all other calls
expect(Facter.value(:java_version)).to be_nil
end
end
context 'when on Darwin' do
before(:each) do
Facter.fact(:operatingsystem).stubs(:value).returns('Darwin')
allow(Facter.fact(:operatingsystem)).to receive(:value).and_return('Darwin')
end
let(:facts) { { operatingsystem: 'Darwin' } }
it do
Facter::Util::Resolution.expects(:exec).at_least(1).with('/usr/libexec/java_home --failfast 2>&1').returns('Unable to find any JVMs matching version "(null)".')
expect(Facter::Util::Resolution).to receive(:exec).with('/usr/libexec/java_home --failfast 2>&1').at_least(1).and_return('Unable to find any JVMs matching version "(null)".')
expect(Facter.value(:java_version)).to be_nil
end
end
context 'when on other systems' do
before(:each) do
Facter.fact(:operatingsystem).stubs(:value).returns('MyOS')
allow(Facter.fact(:operatingsystem)).to receive(:value).and_return('MyOS')
end
let(:facts) { { operatingsystem: 'MyOS' } }
it do
Facter::Util::Resolution.expects(:which).at_least(1).with('java').returns(false)
expect(Facter::Util::Resolution).to receive(:which).at_least(1).with('java').and_return(false)
expect(Facter.value(:java_version)).to be_nil
end
end