@@ -72,50 +72,65 @@ def safely_load_service_type
7272 allow ( @provider . class ) . to receive ( :supports_parameter? ) . and_return ( true )
7373 end
7474
75- it "should support :true as a value " do
76- srv = Puppet :: Type . type ( :service ) . new ( :name => "yay" , :enable => :true )
77- expect ( srv . should ( :enable ) ) . to eq ( :true )
78- end
75+ describe "for value without required features " do
76+ before :each do
77+ allow ( @provider ) . to receive ( :satisfies? )
78+ end
7979
80- it "should support :false as a value" do
81- srv = Puppet ::Type . type ( :service ) . new ( :name => "yay" , :enable => :false )
82- expect ( srv . should ( :enable ) ) . to eq ( :false )
83- end
80+ it "should not support :mask as a value" do
81+ expect { Puppet ::Type . type ( :service ) . new ( :name => "yay" , :enable => :mask ) } . to raise_error (
82+ Puppet ::ResourceError ,
83+ /Provider .+ must have features 'maskable' to set 'enable' to 'mask'/
84+ )
85+ end
8486
85- it "should support :mask as a value" do
86- srv = Puppet ::Type . type ( :service ) . new ( :name => "yay" , :enable => :mask )
87- expect ( srv . should ( :enable ) ) . to eq ( :mask )
88- end
87+ it "should not support :manual as a value" do
88+ expect { Puppet ::Type . type ( :service ) . new ( :name => "yay" , :enable => :manual ) } . to raise_error (
89+ Puppet ::ResourceError ,
90+ /Provider .+ must have features 'manual_startable' to set 'enable' to 'manual'/
91+ )
92+ end
8993
90- it "should support :manual as a value on Windows" do
91- allow ( Puppet ::Util ::Platform ) . to receive ( :windows? ) . and_return ( true )
92- srv = Puppet ::Type . type ( :service ) . new ( :name => "yay" , :enable => :manual )
93- expect ( srv . should ( :enable ) ) . to eq ( :manual )
94+ it "should not support :mask as a value" do
95+ expect { Puppet ::Type . type ( :service ) . new ( :name => "yay" , :enable => :delayed ) } . to raise_error (
96+ Puppet ::ResourceError ,
97+ /Provider .+ must have features 'delayed_startable' to set 'enable' to 'delayed'/
98+ )
99+ end
94100 end
95101
96- it "should support :delayed as a value on Windows" do
97- allow ( Puppet ::Util ::Platform ) . to receive ( :windows? ) . and_return ( true )
102+ describe "for value with required features" do
103+ before :each do
104+ allow ( @provider ) . to receive ( :satisfies? ) . and_return ( :true )
105+ end
106+
107+ it "should support :true as a value" do
108+ srv = Puppet ::Type . type ( :service ) . new ( :name => "yay" , :enable => :true )
109+ expect ( srv . should ( :enable ) ) . to eq ( :true )
110+ end
98111
99- srv = Puppet ::Type . type ( :service ) . new ( :name => "yay" , :enable => :delayed )
100- expect ( srv . should ( :enable ) ) . to eq ( :delayed )
101- end
112+ it "should support :false as a value" do
113+ srv = Puppet ::Type . type ( :service ) . new ( :name => "yay" , :enable => :false )
114+ expect ( srv . should ( :enable ) ) . to eq ( :false )
115+ end
102116
103- it "should not support :manual as a value when not on Windows" do
104- allow ( Puppet ::Util ::Platform ) . to receive ( :windows? ) . and_return ( false )
117+ it "should support :mask as a value" do
118+ srv = Puppet ::Type . type ( :service ) . new ( :name => "yay" , :enable => :mask )
119+ expect ( srv . should ( :enable ) ) . to eq ( :mask )
120+ end
105121
106- expect { Puppet :: Type . type ( :service ) . new ( :name => "yay" , :enable => :manual ) } . to raise_error (
107- Puppet ::Error ,
108- /Setting enable to manual is only supported on Microsoft Windows \. /
109- )
110- end
122+ it "should support :manual as a value on Windows" do
123+ allow ( Puppet ::Util :: Platform ) . to receive ( :windows? ) . and_return ( true )
124+ srv = Puppet :: Type . type ( :service ) . new ( :name => "yay" , :enable => :manual )
125+ expect ( srv . should ( :enable ) ) . to eq ( :manual )
126+ end
111127
112- it "should not support :delayed as a value when not on Windows" do
113- allow ( Puppet ::Util ::Platform ) . to receive ( :windows? ) . and_return ( false )
128+ it "should support :delayed as a value on Windows" do
129+ allow ( Puppet ::Util ::Platform ) . to receive ( :windows? ) . and_return ( true )
114130
115- expect { Puppet ::Type . type ( :service ) . new ( :name => "yay" , :enable => :delayed ) } . to raise_error (
116- Puppet ::Error ,
117- /Setting enable to delayed is only supported on Microsoft Windows\. /
118- )
131+ srv = Puppet ::Type . type ( :service ) . new ( :name => "yay" , :enable => :delayed )
132+ expect ( srv . should ( :enable ) ) . to eq ( :delayed )
133+ end
119134 end
120135 end
121136
0 commit comments