@@ -72,50 +72,65 @@ def safely_load_service_type
72
72
allow ( @provider . class ) . to receive ( :supports_parameter? ) . and_return ( true )
73
73
end
74
74
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
79
79
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
84
86
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
89
93
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
94
100
end
95
101
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
98
111
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
102
116
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
105
121
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
111
127
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 )
114
130
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
119
134
end
120
135
end
121
136
0 commit comments