Sha256: 434452ee6d283f0bc6bc9d8616be009da03fa292f4811fd9df308e766027d3e9

Contents?: true

Size: 1.29 KB

Versions: 126

Compression:

Stored size: 1.29 KB

Contents

# encoding: ascii-8bit
require 'spec_helper'

describe Unpacker do
  let :unpacker do
    Unpacker.new
  end

  let :packer do
    Packer.new
  end

  it 'skip_nil succeeds' do
    unpacker.feed("\xc0")
    unpacker.skip_nil.should == true
  end

  it 'skip_nil fails' do
    unpacker.feed("\x90")
    unpacker.skip_nil.should == false
  end

  it 'skip skips objects' do
    packer.write(1)
    packer.write(2)
    packer.write(3)
    packer.write(4)
    packer.write(5)

    unpacker = Unpacker.new
    unpacker.feed(packer.to_s)

    unpacker.read.should == 1
    unpacker.skip
    unpacker.read.should == 3
    unpacker.skip
    unpacker.read.should == 5
  end

  it 'skip raises EOFError' do
    lambda {
      unpacker.skip
    }.should raise_error(EOFError)
  end

  it 'skip_nil raises EOFError' do
    lambda {
      unpacker.skip_nil
    }.should raise_error(EOFError)
  end

  it 'skip raises level stack too deep error' do
    512.times { packer.write_array_header(1) }
    packer.write(nil)

    unpacker = Unpacker.new
    unpacker.feed(packer.to_s)
    lambda {
      unpacker.skip
    }.should raise_error(MessagePack::StackError)
  end

  it 'skip raises invalid byte error' do
    unpacker.feed("\xc1")
    lambda {
      unpacker.skip
    }.should raise_error(MessagePack::MalformedFormatError)
  end
end

Version data entries

126 entries across 126 versions & 3 rubygems

Version Path
msgpack-1.6.0 spec/cruby/unpacker_spec.rb
msgpack-1.5.6 spec/cruby/unpacker_spec.rb
msgpack-1.5.5 spec/cruby/unpacker_spec.rb
msgpack-1.5.4 spec/cruby/unpacker_spec.rb
msgpack-1.5.3 spec/cruby/unpacker_spec.rb
msgpack-1.5.2 spec/cruby/unpacker_spec.rb
msgpack-1.5.1 spec/cruby/unpacker_spec.rb
msgpack-1.5.0 spec/cruby/unpacker_spec.rb
msgpack-1.4.5 spec/cruby/unpacker_spec.rb
msgpack-1.4.4 spec/cruby/unpacker_spec.rb
msgpack-1.4.4.pre1-java spec/cruby/unpacker_spec.rb
msgpack-1.4.3 spec/cruby/unpacker_spec.rb
msgpack-1.4.3-java spec/cruby/unpacker_spec.rb
msgpack-1.4.2-java spec/cruby/unpacker_spec.rb
msgpack-1.4.2 spec/cruby/unpacker_spec.rb
msgpack-1.4.1-java spec/cruby/unpacker_spec.rb
msgpack-1.4.0-java spec/cruby/unpacker_spec.rb
msgpack-1.4.0.pre1 spec/cruby/unpacker_spec.rb
msgpack-1.3.3-x64-mingw32 spec/cruby/unpacker_spec.rb
msgpack-1.3.3-x86-mingw32 spec/cruby/unpacker_spec.rb