diff options
Diffstat (limited to 'spec/unit/interface/option_spec.rb')
-rwxr-xr-x | spec/unit/interface/option_spec.rb | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/spec/unit/interface/option_spec.rb b/spec/unit/interface/option_spec.rb index 3bcd121e2..4c24dc940 100755 --- a/spec/unit/interface/option_spec.rb +++ b/spec/unit/interface/option_spec.rb @@ -72,4 +72,28 @@ describe Puppet::Interface::Option do option.to_s.should == "foo-bar" end end + + %w{before after}.each do |side| + describe "#{side} hooks" do + subject { Puppet::Interface::Option.new(face, "--foo") } + let :proc do Proc.new do :from_proc end end + + it { should respond_to "#{side}_action" } + it { should respond_to "#{side}_action=" } + + it "should set the #{side}_action hook" do + subject.send("#{side}_action").should be_nil + subject.send("#{side}_action=", proc) + subject.send("#{side}_action").should be_an_instance_of UnboundMethod + end + + data = [1, "foo", :foo, Object.new, method(:hash), method(:hash).unbind] + data.each do |input| + it "should fail if a #{input.class} is added to the #{side} hooks" do + expect { subject.send("#{side}_action=", input) }. + to raise_error ArgumentError, /not a proc/ + end + end + end + end end |