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