From 378dcc7802eac6a47a00ee9b02ebc08a5937554b Mon Sep 17 00:00:00 2001 From: Peter Souter Date: Fri, 5 Dec 2014 17:33:52 +0000 Subject: [PATCH] (MODULES-1570) TDD Style - Add specs first Facter unit tests to check resolution of Java version --- spec/unit/facter/java_patch_level_spec.rb | 31 +++++++++++++++++++++++ spec/unit/facter/java_version_spec.rb | 29 +++++++++++++++++++++ 2 files changed, 60 insertions(+) create mode 100644 spec/unit/facter/java_patch_level_spec.rb create mode 100644 spec/unit/facter/java_version_spec.rb diff --git a/spec/unit/facter/java_patch_level_spec.rb b/spec/unit/facter/java_patch_level_spec.rb new file mode 100644 index 0000000..b9892c6 --- /dev/null +++ b/spec/unit/facter/java_patch_level_spec.rb @@ -0,0 +1,31 @@ +require "spec_helper" + +describe Facter::Util::Fact do + before { + Facter.clear + } + + describe "java_patch_level" do + context "if java is installed" do + context 'returns java patch version extracted from java_version fact' do + before :each do + Facter.fact(:java_version).stubs(:value).returns('1.7.0_71') + end + it do + Facter.fact(:java_patch_level).value.should == "71" + end + end + end + + context "if java is installed" do + context 'returns java patch version extracted from java_version fact' do + before :each do + Facter.fact(:java_version).stubs(:value).returns(nil) + end + it do + Facter.fact(:java_patch_level).value.should == "JAVA_NOT_INSTALLED" + end + end + end + end +end \ No newline at end of file diff --git a/spec/unit/facter/java_version_spec.rb b/spec/unit/facter/java_version_spec.rb new file mode 100644 index 0000000..a0974ac --- /dev/null +++ b/spec/unit/facter/java_version_spec.rb @@ -0,0 +1,29 @@ +require "spec_helper" + +describe Facter::Util::Fact do + before { + Facter.clear + } + + describe "java_version" do + context 'returns java version when java present' do + it do + java_version_output = <<-EOS +java version "1.7.0_71" +Java(TM) SE Runtime Environment (build 1.7.0_71-b14) +Java HotSpot(TM) 64-Bit Server VM (build 24.71-b01, mixed mode) + EOS + Facter::Util::Resolution.expects(:exec).with("java -version 2>&1").returns(java_version_output) + Facter.fact(:java_version).value.should == "1.7.0_71" + end + end + + context 'returns nil when java not present' do + it do + java_version_output = "bash: java: command not found" + Facter::Util::Resolution.expects(:exec).with("java -version 2>&1").returns(java_version_output) + Facter.fact(:java_version).value.should be_nil + end + end + end +end \ No newline at end of file