From b1842523a032e96fd049d871562dc31c62e4d810 Mon Sep 17 00:00:00 2001 From: tyler-ball Date: Tue, 16 Dec 2014 10:15:24 -0800 Subject: Unit and functional tests for spec_formatter --- spec/functional/audit/rspec_formatter_spec.rb | 53 +++++++++++++++++++++++++++ spec/unit/audit/rspec_formatter_spec.rb | 29 +++++++++++++++ 2 files changed, 82 insertions(+) create mode 100644 spec/functional/audit/rspec_formatter_spec.rb create mode 100644 spec/unit/audit/rspec_formatter_spec.rb diff --git a/spec/functional/audit/rspec_formatter_spec.rb b/spec/functional/audit/rspec_formatter_spec.rb new file mode 100644 index 0000000000..43d3c2f6dd --- /dev/null +++ b/spec/functional/audit/rspec_formatter_spec.rb @@ -0,0 +1,53 @@ +# +# Author:: Tyler Ball () +# Author:: Claire McQuin () +# +# Copyright:: Copyright (c) 2014 Chef Software, Inc. +# License:: Apache License, Version 2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +require 'spec_helper' +require 'spec/support/audit_helper' +require 'chef/audit/runner' +require 'rspec/support/spec/in_sub_process' +require 'chef/audit/rspec_formatter' + +describe Chef::Audit::RspecFormatter do + include RSpec::Support::InSubProcess + + let(:events) { double("events").as_null_object } + let(:audits) { {} } + let(:run_context) { instance_double(Chef::RunContext, :events => events, :audits => audits) } + let(:runner) { Chef::Audit::Runner.new(run_context) } + + let(:output) { double("output") } + # aggressively define this so we can mock out the new call later + let!(:formatter) { Chef::Audit::RspecFormatter.new(output) } + + around(:each) do |ex| + Sandboxing.sandboxed { ex.run } + end + + it "should not close the output using our formatter" do + in_sub_process do + expect_any_instance_of(Chef::Audit::RspecFormatter).to receive(:new).and_return(formatter) + expect(formatter).to receive(:close).and_call_original + expect(output).to_not receive(:close) + + runner.run + end + end + +end diff --git a/spec/unit/audit/rspec_formatter_spec.rb b/spec/unit/audit/rspec_formatter_spec.rb new file mode 100644 index 0000000000..471473e387 --- /dev/null +++ b/spec/unit/audit/rspec_formatter_spec.rb @@ -0,0 +1,29 @@ +# +# Author:: Tyler Ball () +# Author:: Claire McQuin () +# +# Copyright:: Copyright (c) 2014 Chef Software, Inc. +# License:: Apache License, Version 2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +require 'spec_helper' +require 'chef/audit/rspec_formatter' + +describe Chef::Audit::RspecFormatter do + let(:formatter) { Chef::Audit::RspecFormatter.new(nil) } + it "should respond to close" do + expect(formatter).to respond_to(:close) + end +end -- cgit v1.2.1