summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClaire McQuin <claire@getchef.com>2014-08-18 12:53:28 -0700
committerClaire McQuin <claire@getchef.com>2014-08-22 11:59:32 -0700
commit7142a176f73996af5aa3efd22c21ab902b1df661 (patch)
treeae6b0c09b46e54ea56c15a743b3ff80fd10ffb31
parenteb25d219ed0ec675eca483d9f6f18d73606568be (diff)
downloadchef-7142a176f73996af5aa3efd22c21ab902b1df661.tar.gz
Update to RSpec 3 syntax.
-rw-r--r--spec/unit/dsl/data_query_spec.rb64
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
-