X-Git-Url: https://review.fuel-infra.org/gitweb?a=blobdiff_plain;f=spec%2Funit%2Fddl%2Fdiscoveryddl_spec.rb;fp=spec%2Funit%2Fddl%2Fdiscoveryddl_spec.rb;h=8f54ba0af8757f7f6ea003109622e85ae423ca37;hb=b87d2f4e68281062df1913440ca5753ae63314a9;hp=0000000000000000000000000000000000000000;hpb=ab0ea530b8ac956091f17b104ab2311336cfc250;p=packages%2Fprecise%2Fmcollective.git diff --git a/spec/unit/ddl/discoveryddl_spec.rb b/spec/unit/ddl/discoveryddl_spec.rb new file mode 100644 index 0000000..8f54ba0 --- /dev/null +++ b/spec/unit/ddl/discoveryddl_spec.rb @@ -0,0 +1,58 @@ +#!/usr/bin/env rspec + +require 'spec_helper' + +module MCollective + module DDL + describe DiscoveryDDL do + before :each do + Cache.delete!(:ddl) rescue nil + @ddl = DDL.new("rspec", :discovery, false) + @ddl.metadata(:name => "name", :description => "description", :author => "author", :license => "license", :version => "version", :url => "url", :timeout => "timeout") + end + + describe "#discovery_interface" do + it "should return correct data" do + @ddl.instance_variable_set("@plugintype", :discovery) + @ddl.discovery do + @ddl.capabilities :identity + end + + @ddl.discovery_interface.should == {:capabilities => [:identity]} + end + end + + describe "#capabilities" do + it "should support non arrays" do + @ddl.instance_variable_set("@plugintype", :discovery) + @ddl.discovery do + @ddl.capabilities :identity + end + @ddl.discovery_interface.should == {:capabilities => [:identity]} + end + + it "should not accept empty capability lists" do + @ddl.instance_variable_set("@plugintype", :discovery) + @ddl.discovery do + expect { @ddl.capabilities [] }.to raise_error("Discovery plugin capabilities can't be empty") + end + end + + it "should only accept known capabilities" do + @ddl.instance_variable_set("@plugintype", :discovery) + @ddl.discovery do + expect { @ddl.capabilities :rspec }.to raise_error(/rspec is not a valid capability/) + end + end + + it "should correctly store the capabilities" do + @ddl.instance_variable_set("@plugintype", :discovery) + @ddl.discovery do + @ddl.capabilities [:identity, :classes] + end + @ddl.discovery_interface.should == {:capabilities => [:identity, :classes]} + end + end + end + end +end