spec/base_spec.rb in bindata-0.9.1 vs spec/base_spec.rb in bindata-0.9.2
- old
+ new
@@ -3,17 +3,17 @@
require File.expand_path(File.dirname(__FILE__)) + '/spec_common'
require 'bindata/base'
class BaseStub < BinData::Base
def clear; end
+ def clear?; end
def single_value?; end
- def field_names; end
- def snapshot; end
def done_read; end
def _do_read(io) end
def _do_write(io) end
def _do_num_bytes; end
+ def _snapshot; end
end
describe BinData::Base, "with mandatory parameters" do
before(:all) do
eval <<-END
@@ -218,24 +218,25 @@
obj = TenByteAdjustingOffsetBase.new(:adjust_offset => -4)
lambda { obj.read(io) }.should raise_error(BinData::ValidityError)
end
end
-describe BinData::Base, "with :readwrite => false" do
+describe BinData::Base, "with :onlyif => false" do
before(:all) do
eval <<-END
- class NoIOBase < BaseStub
+ class OnlyIfBase < BaseStub
attr_accessor :mock
def _do_read(io) mock._do_read(io); end
def _do_write(io) mock._do_write(io); end
def _do_num_bytes; mock._do_num_bytes; end
+ def _snapshot; mock._snapshot; end
end
END
end
before(:each) do
- @obj = NoIOBase.new :readwrite => false
+ @obj = OnlyIfBase.new :onlyif => false
@obj.mock = mock('mock')
end
it "should not read" do
io = StringIO.new("12345678901234567890")
@@ -251,53 +252,55 @@
it "should have zero num_bytes" do
@obj.mock.should_not_receive(:_do_num_bytes)
@obj.num_bytes.should be_zero
end
+
+ it "should have nil snapshot" do
+ @obj.mock.should_not_receive(:_snapshot)
+ @obj.snapshot.should be_nil
+ end
end
-describe BinData::Base, "with :onlyif" do
+describe BinData::Base, "with :readwrite" do
before(:all) do
eval <<-END
- class OnlyIfBase < BinData::Base
+ class NoIOBase < BinData::Base
public :has_param?, :param
end
END
end
- it "should alias to :readwrite" do
- obj = OnlyIfBase.new(:onlyif => "a")
- obj.should_not have_param(:onlyif)
- obj.should have_param(:readwrite)
- obj.param(:readwrite).should == "a"
+ it "should alias to :onlyif" do
+ obj = NoIOBase.new(:readwrite => "a")
+ obj.should_not have_param(:readwrite)
+ obj.should have_param(:onlyif)
+ obj.param(:onlyif).should == "a"
end
end
describe BinData::Base, "when subclassing" do
before(:all) do
eval <<-END
class SubClassOfBase < BinData::Base
- public :_do_read, :_do_write, :_do_num_bytes
+ public :_do_read, :_do_write, :_do_num_bytes, :_snapshot
end
END
end
before(:each) do
@obj = SubClassOfBase.new
end
it "should raise errors on unimplemented methods" do
- lambda {
- SubClassOfBase.all_possible_field_names(nil)
- }.should raise_error(NotImplementedError)
lambda { @obj.clear }.should raise_error(NotImplementedError)
+ lambda { @obj.clear? }.should raise_error(NotImplementedError)
lambda { @obj.single_value? }.should raise_error(NotImplementedError)
- lambda { @obj.field_names }.should raise_error(NotImplementedError)
- lambda { @obj.snapshot }.should raise_error(NotImplementedError)
lambda { @obj.done_read }.should raise_error(NotImplementedError)
lambda { @obj._do_read(nil) }.should raise_error(NotImplementedError)
lambda { @obj._do_write(nil) }.should raise_error(NotImplementedError)
lambda { @obj._do_num_bytes }.should raise_error(NotImplementedError)
+ lambda { @obj._snapshot }.should raise_error(NotImplementedError)
end
end
describe BinData::Base, "when subclassing as a single value" do
before(:all) do