spec/kitchen/diagnostic_spec.rb in test-kitchen-1.7.0 vs spec/kitchen/diagnostic_spec.rb in test-kitchen-1.7.1.dev

- old
+ new

@@ -1,129 +1,129 @@ -# -*- encoding: utf-8 -*- -# -# Author:: Fletcher Nichol (<fnichol@nichol.ca>) -# -# Copyright (C) 2014, Fletcher Nichol -# -# 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_relative "../spec_helper" - -require "kitchen/diagnostic" - -describe Kitchen::Diagnostic do - - let(:loader) do - stub(:diagnose => { :who => "loader" }) - end - - let(:instances) do - [ - stub( - :name => "i1", - :diagnose => { :stuff => "sup" }, - :diagnose_plugins => { - :driver => { :name => "driva", :a => "b" }, - :provisioner => { :name => "prov", :c => "d" }, - :transport => { :name => "transa", :e => "f" }, - :verifier => { :name => "verve", :g => "h" } - } - ), - stub( - :name => "i2", - :diagnose => { :stuff => "yo" }, - :diagnose_plugins => { - :driver => { :name => "driva", :a => "b" }, - :provisioner => { :name => "presto", :i => "j" }, - :transport => { :name => "tressa", :k => "l" }, - :verifier => { :name => "verve", :g => "h" } - } - ) - ] - end - - it "#read returns a Hash" do - Kitchen::Diagnostic.new.read.must_be_instance_of Hash - end - - it "#read returns the version of Test Kitchen" do - Kitchen::Diagnostic.new.read["kitchen_version"].must_equal Kitchen::VERSION - end - - it "#read returns a timestamp in UTC" do - Time.stubs(:now).returns(Time.at(0)) - - Kitchen::Diagnostic.new.read["timestamp"]. - must_equal "1970-01-01 00:00:00 UTC" - end - - it "#read doesn't return a loader hash if not given one" do - Kitchen::Diagnostic.new.read.key?("loader").must_equal false - end - - it "#read returns the loader's diganose hash if a loader is present" do - Kitchen::Diagnostic.new(:loader => loader). - read["loader"].must_equal("who" => "loader") - end - - it "#read returns an error hash for loader if error hash is passed in" do - Kitchen::Diagnostic.new(:loader => { :error => "damn" }). - read["loader"].must_equal("error" => "damn") - end - - it "#read returns the unique set of plugins' diagnose hash if :plugins is set" do - Kitchen::Diagnostic.new(:instances => instances, :plugins => true). - read["plugins"]. - must_equal( - "driver" => { - "driva" => { "a" => "b" } - }, - "provisioner" => { - "prov" => { "c" => "d" }, - "presto" => { "i" => "j" } - }, - "transport" => { - "transa" => { "e" => "f" }, - "tressa" => { "k" => "l" } - }, - "verifier" => { - "verve" => { "g" => "h" } - } - ) - end - - it "#read returns an empty plugins hash if no instances were given" do - Kitchen::Diagnostic.new(:plugins => true). - read["plugins"].must_equal Hash.new - end - - it "#read returns an empty instances hash if no instances were given" do - Kitchen::Diagnostic.new.read["instances"].must_equal Hash.new - end - - it "#read returns an error hash for plugins if error hash is passed in" do - Kitchen::Diagnostic.new( - :instances => { :error => "shoot" }, :plugins => true - ).read["plugins"].must_equal("error" => "shoot") - end - - it "#read returns the instances' diganose hashes if instances are present" do - Kitchen::Diagnostic.new(:instances => instances). - read["instances"]. - must_equal("i1" => { "stuff" => "sup" }, "i2" => { "stuff" => "yo" }) - end - - it "#read returns an error hash for instances if error hash is passed in" do - Kitchen::Diagnostic.new(:instances => { :error => "shoot" }). - read["instances"].must_equal("error" => "shoot") - end -end +# -*- encoding: utf-8 -*- +# +# Author:: Fletcher Nichol (<fnichol@nichol.ca>) +# +# Copyright (C) 2014, Fletcher Nichol +# +# 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_relative "../spec_helper" + +require "kitchen/diagnostic" + +describe Kitchen::Diagnostic do + + let(:loader) do + stub(:diagnose => { :who => "loader" }) + end + + let(:instances) do + [ + stub( + :name => "i1", + :diagnose => { :stuff => "sup" }, + :diagnose_plugins => { + :driver => { :name => "driva", :a => "b" }, + :provisioner => { :name => "prov", :c => "d" }, + :transport => { :name => "transa", :e => "f" }, + :verifier => { :name => "verve", :g => "h" } + } + ), + stub( + :name => "i2", + :diagnose => { :stuff => "yo" }, + :diagnose_plugins => { + :driver => { :name => "driva", :a => "b" }, + :provisioner => { :name => "presto", :i => "j" }, + :transport => { :name => "tressa", :k => "l" }, + :verifier => { :name => "verve", :g => "h" } + } + ) + ] + end + + it "#read returns a Hash" do + Kitchen::Diagnostic.new.read.must_be_instance_of Hash + end + + it "#read returns the version of Test Kitchen" do + Kitchen::Diagnostic.new.read["kitchen_version"].must_equal Kitchen::VERSION + end + + it "#read returns a timestamp in UTC" do + Time.stubs(:now).returns(Time.at(0)) + + Kitchen::Diagnostic.new.read["timestamp"]. + must_equal "1970-01-01 00:00:00 UTC" + end + + it "#read doesn't return a loader hash if not given one" do + Kitchen::Diagnostic.new.read.key?("loader").must_equal false + end + + it "#read returns the loader's diganose hash if a loader is present" do + Kitchen::Diagnostic.new(:loader => loader). + read["loader"].must_equal("who" => "loader") + end + + it "#read returns an error hash for loader if error hash is passed in" do + Kitchen::Diagnostic.new(:loader => { :error => "damn" }). + read["loader"].must_equal("error" => "damn") + end + + it "#read returns the unique set of plugins' diagnose hash if :plugins is set" do + Kitchen::Diagnostic.new(:instances => instances, :plugins => true). + read["plugins"]. + must_equal( + "driver" => { + "driva" => { "a" => "b" } + }, + "provisioner" => { + "prov" => { "c" => "d" }, + "presto" => { "i" => "j" } + }, + "transport" => { + "transa" => { "e" => "f" }, + "tressa" => { "k" => "l" } + }, + "verifier" => { + "verve" => { "g" => "h" } + } + ) + end + + it "#read returns an empty plugins hash if no instances were given" do + Kitchen::Diagnostic.new(:plugins => true). + read["plugins"].must_equal Hash.new + end + + it "#read returns an empty instances hash if no instances were given" do + Kitchen::Diagnostic.new.read["instances"].must_equal Hash.new + end + + it "#read returns an error hash for plugins if error hash is passed in" do + Kitchen::Diagnostic.new( + :instances => { :error => "shoot" }, :plugins => true + ).read["plugins"].must_equal("error" => "shoot") + end + + it "#read returns the instances' diganose hashes if instances are present" do + Kitchen::Diagnostic.new(:instances => instances). + read["instances"]. + must_equal("i1" => { "stuff" => "sup" }, "i2" => { "stuff" => "yo" }) + end + + it "#read returns an error hash for instances if error hash is passed in" do + Kitchen::Diagnostic.new(:instances => { :error => "shoot" }). + read["instances"].must_equal("error" => "shoot") + end +end