Sha256: d619135f3863cc36f30636461deb7bfd3a6ce3817dbb56c14f758ecc2b7b8219

Contents?: true

Size: 1.88 KB

Versions: 1

Compression:

Stored size: 1.88 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
  #  if /java/ =~ RUBY_PLATFORM
  #    skip "custom to_msgpack fallback is not supported yet in JRuby implementation"
  #  end
  #  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
  #  if /java/ =~ RUBY_PLATFORM
  #    skip "custom to_msgpack fallback with io is not supported yet in JRuby implementation"
  #  end
  #  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

1 entries across 1 versions & 1 rubygems

Version Path
msgpack-0.5.11-java spec/pack_spec.rb