spec/base_spec.rb in bindata-0.10.0 vs spec/base_spec.rb in bindata-0.11.0

- old
+ new

@@ -1,8 +1,8 @@ #!/usr/bin/env ruby -require File.expand_path(File.dirname(__FILE__)) + '/spec_common' +require File.expand_path(File.join(File.dirname(__FILE__), "spec_common")) require 'bindata/base' class BaseStub < BinData::Base # Override to avoid NotImplemented errors def clear; end @@ -54,10 +54,32 @@ lambda { @obj._do_num_bytes(nil) }.should raise_error(NotImplementedError) lambda { @obj._snapshot }.should raise_error(NotImplementedError) end end +describe BinData::Base, "with parameters" do + it "should raise error if parameter has nil value" do + lambda { BaseStub.new(:a => nil) }.should raise_error(ArgumentError) + end + + it "should raise error if parameter name is invalid" do + lambda { + eval <<-END + class InvalidParameterNameBase < BinData::Base + optional_parameter :eval # i.e. Kernel#eval + end + END + }.should raise_error(NameError) + end + + it "should convert keys to symbols" do + obj = BaseStub.new('a' => 3) + obj.should have_parameter(:a) + obj.get_parameter(:a).should == 3 + end +end + describe BinData::Base, "with mandatory parameters" do before(:all) do eval <<-END class MandatoryBase < BaseStub mandatory_parameter :p1 @@ -137,10 +159,10 @@ end END end it "should identify internally accepted parameters" do - accepted = WithParamBase.accepted_internal_parameters + accepted = WithParamBase.accepted_parameters.all accepted.should include(:p1) accepted.should include(:p2) accepted.should include(:p3) accepted.should_not include(:xx) end