Update mcollective.init according to OSCI-855
[packages/precise/mcollective.git] / spec / unit / ddl / discoveryddl_spec.rb
1 #!/usr/bin/env rspec
2
3 require 'spec_helper'
4
5 module MCollective
6   module DDL
7     describe DiscoveryDDL do
8       before :each do
9         Cache.delete!(:ddl) rescue nil
10         @ddl = DDL.new("rspec", :discovery, false)
11         @ddl.metadata(:name => "name", :description => "description", :author => "author", :license => "license", :version => "version", :url => "url", :timeout => "timeout")
12       end
13
14       describe "#discovery_interface" do
15         it "should return correct data" do
16           @ddl.instance_variable_set("@plugintype", :discovery)
17           @ddl.discovery do
18             @ddl.capabilities :identity
19           end
20
21           @ddl.discovery_interface.should == {:capabilities => [:identity]}
22         end
23       end
24
25       describe "#capabilities" do
26         it "should support non arrays" do
27           @ddl.instance_variable_set("@plugintype", :discovery)
28           @ddl.discovery do
29             @ddl.capabilities :identity
30           end
31           @ddl.discovery_interface.should == {:capabilities => [:identity]}
32         end
33
34         it "should not accept empty capability lists" do
35           @ddl.instance_variable_set("@plugintype", :discovery)
36           @ddl.discovery do
37             expect { @ddl.capabilities [] }.to raise_error("Discovery plugin capabilities can't be empty")
38           end
39         end
40
41         it "should only accept known capabilities" do
42           @ddl.instance_variable_set("@plugintype", :discovery)
43           @ddl.discovery do
44             expect { @ddl.capabilities :rspec }.to raise_error(/rspec is not a valid capability/)
45           end
46         end
47
48         it "should correctly store the capabilities" do
49           @ddl.instance_variable_set("@plugintype", :discovery)
50           @ddl.discovery do
51             @ddl.capabilities [:identity, :classes]
52           end
53           @ddl.discovery_interface.should == {:capabilities => [:identity, :classes]}
54         end
55       end
56     end
57   end
58 end