diff options
author | Claire McQuin <claire@getchef.com> | 2014-08-18 12:53:28 -0700 |
---|---|---|
committer | Claire McQuin <claire@getchef.com> | 2014-08-22 11:59:32 -0700 |
commit | 7142a176f73996af5aa3efd22c21ab902b1df661 (patch) | |
tree | ae6b0c09b46e54ea56c15a743b3ff80fd10ffb31 | |
parent | eb25d219ed0ec675eca483d9f6f18d73606568be (diff) | |
download | chef-7142a176f73996af5aa3efd22c21ab902b1df661.tar.gz |
Update to RSpec 3 syntax.
-rw-r--r-- | spec/unit/dsl/data_query_spec.rb | 64 |
1 files changed, 41 insertions, 23 deletions
diff --git a/spec/unit/dsl/data_query_spec.rb b/spec/unit/dsl/data_query_spec.rb index e31c0725d6..d305c86d89 100644 --- a/spec/unit/dsl/data_query_spec.rb +++ b/spec/unit/dsl/data_query_spec.rb @@ -24,43 +24,61 @@ class DataQueryDSLTester end describe Chef::DSL::DataQuery do - before(:each) do - @language = DataQueryDSLTester.new - @node = Hash.new - @language.stub(:node).and_return(@node) + let(:node) { Hash.new } + + let(:language) do + language = DataQueryDSLTester.new + language.stub(:node).and_return(@node) + language end - describe "when loading data bags and items" do + describe "::data_bag" do it "lists the items in a data bag" do - Chef::DataBag.should_receive(:load).with("bag_name").and_return("item_1" => "http://url_for/item_1", "item_2" => "http://url_for/item_2") - @language.data_bag("bag_name").sort.should == %w[item_1 item_2] + allow(Chef::DataBag).to receive(:load) + .with("bag_name") + .and_return("item_1" => "http://url_for/item_1", "item_2" => "http://url_for/item_2") + expect( language.data_bag("bag_name").sort ).to eql %w(item_1 item_2) end + end - it "validates the name of the data bag you're trying to load" do - lambda {@language.data_bag("!# %^&& ")}.should raise_error(Chef::Exceptions::InvalidDataBagName) + shared_examples_for "a data bag item" do + it "validates the name of the data bag you're trying to load an item from" do + expect{ language.send(method_name, " %%^& ", "item_name") }.to raise_error(Chef::Exceptions::InvalidDataBagName) end - it "fetches a data bag item" do - @item = Chef::DataBagItem.new - @item.data_bag("bag_name") - @item.raw_data = {"id" => "item_name", "FUU" => "FUU"} - Chef::DataBagItem.should_receive(:load).with("bag_name", "item_name").and_return(@item) - @language.data_bag_item("bag_name", "item_name").should == @item + it "validates the id of the data bag item you're trying to load" do + expect{ language.send(method_name, "bag_name", " 987 (*&()") }.to raise_error(Chef::Exceptions::InvalidDataBagItemID) end - it "validates the name of the data bag you're trying to load an item from" do - lambda {@language.data_bag_item(" %%^& ", "item_name")}.should raise_error(Chef::Exceptions::InvalidDataBagName) + it "validates that the id of the data bag item is not nil" do + expect{ language.send(method_name, "bag_name", nil) }.to raise_error(Chef::Exceptions::InvalidDataBagItemID) end + end - it "validates the id of the data bag item you're trying to load" do - lambda {@language.data_bag_item("bag_name", " 987 (*&()")}.should raise_error(Chef::Exceptions::InvalidDataBagItemID) + describe "::data_bag_item" do + let(:bag_name) { "bag_name" } + + let(:item_name) { "item_name" } + + let(:raw_data) {{ + "id" => item_name, + "FUU" => "FUU" + }} + + let(:item) do + item = Chef::DataBagItem.new + item.data_bag(bag_name) + item.raw_data = raw_data + item end - it "validates that the id of the data bag item is not nil" do - lambda {@language.data_bag_item("bag_name", nil)}.should raise_error(Chef::Exceptions::InvalidDataBagItemID) + it "fetches a data bag item" do + allow( Chef::DataBagItem ).to receive(:load).with(bag_name, item_name).and_return(item) + expect( language.data_bag_item(bag_name, item_name) ).to eql item end + include_examples "a data bag item" do + let(:method_name) { :data_bag_item } + end end - end - |