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