diff options
Diffstat (limited to 'spec/ruby/library/openstruct/method_missing_spec.rb')
| -rw-r--r-- | spec/ruby/library/openstruct/method_missing_spec.rb | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/spec/ruby/library/openstruct/method_missing_spec.rb b/spec/ruby/library/openstruct/method_missing_spec.rb new file mode 100644 index 0000000000..89f83d07b3 --- /dev/null +++ b/spec/ruby/library/openstruct/method_missing_spec.rb @@ -0,0 +1,24 @@ +require_relative '../../spec_helper' +require "ostruct" + +describe "OpenStruct#method_missing when called with a method name ending in '='" do + before :each do + @os = OpenStruct.new + end + + it "raises an ArgumentError when not passed any additional arguments" do + -> { @os.send(:test=) }.should raise_error(ArgumentError) + end +end + +describe "OpenStruct#method_missing when passed additional arguments" do + it "raises a NoMethodError when the key does not exist" do + os = OpenStruct.new + -> { os.test(1, 2, 3) }.should raise_error(NoMethodError) + end + + it "raises an ArgumentError when the key exists" do + os = OpenStruct.new(test: 20) + -> { os.test(1, 2, 3) }.should raise_error(ArgumentError) + end +end |
