Sha256: 92ddee676a5b0782cc32e56aeb01c9fd1de979731520676788cdaf6af827f971

Contents?: true

Size: 1.61 KB

Versions: 130

Compression:

Stored size: 1.61 KB

Contents

# encoding: ascii-8bit
require 'spec_helper'

require 'stringio'
if defined?(Encoding)
  Encoding.default_external = 'ASCII-8BIT'
end

describe MessagePack do
  it 'to_msgpack returns String' do
    nil.to_msgpack.class.should == String
    true.to_msgpack.class.should == String
    false.to_msgpack.class.should == String
    1.to_msgpack.class.should == String
    1.0.to_msgpack.class.should == String
    "".to_msgpack.class.should == String
    Hash.new.to_msgpack.class.should == String
    Array.new.to_msgpack.class.should == String
  end

  class CustomPack01
    def to_msgpack(pk=nil)
      return MessagePack.pack(self, pk) unless pk.class == MessagePack::Packer
      pk.write_array_header(2)
      pk.write(1)
      pk.write(2)
      return pk
    end
  end

  class CustomPack02
    def to_msgpack(pk=nil)
      [1,2].to_msgpack(pk)
    end
  end

  it 'calls custom to_msgpack method' do
    MessagePack.pack(CustomPack01.new).should == [1,2].to_msgpack
    MessagePack.pack(CustomPack02.new).should == [1,2].to_msgpack
    CustomPack01.new.to_msgpack.should == [1,2].to_msgpack
    CustomPack02.new.to_msgpack.should == [1,2].to_msgpack
  end

  it 'calls custom to_msgpack method with io' do
    s01 = StringIO.new
    MessagePack.pack(CustomPack01.new, s01)
    s01.string.should == [1,2].to_msgpack

    s02 = StringIO.new
    MessagePack.pack(CustomPack02.new, s02)
    s02.string.should == [1,2].to_msgpack

    s03 = StringIO.new
    CustomPack01.new.to_msgpack(s03)
    s03.string.should == [1,2].to_msgpack

    s04 = StringIO.new
    CustomPack02.new.to_msgpack(s04)
    s04.string.should == [1,2].to_msgpack
  end
end

Version data entries

130 entries across 130 versions & 3 rubygems

Version Path
msgpack-0.7.1-java spec/pack_spec.rb
msgpack-0.7.1 spec/pack_spec.rb
msgpack-0.7.0-x64-mingw32 spec/pack_spec.rb
msgpack-0.7.0-x86-mingw32 spec/pack_spec.rb
msgpack-0.7.0-java spec/pack_spec.rb
msgpack-0.7.0 spec/pack_spec.rb
msgpack-0.7.0dev1-java spec/pack_spec.rb
msgpack-0.7.0dev1-x64-mingw32 spec/pack_spec.rb
msgpack-0.7.0dev1-x86-mingw32 spec/pack_spec.rb
msgpack-0.7.0dev1 spec/pack_spec.rb