Sha256: f4573f8d4de6bf65cc29a4d605094fa0360166da5bbf592c6f38a26ab116e155

Contents?: true

Size: 803 Bytes

Versions: 8

Compression:

Stored size: 803 Bytes

Contents

require 'spec_helper'


describe XDR::Opaque, "#read" do
  subject{ XDR::Opaque.new(3) }

  it "decodes values correctly" do
    expect(read("\x00\x00\x00\x00")).to eq("\x00\x00\x00")
    expect(read("\x00\x01\x00\x00")).to eq("\x00\x01\x00")
  end

  def read(str)
    io = StringIO.new(str)
    subject.read(io)
  end
end

describe XDR::Opaque, "#write" do
  subject{ XDR::Opaque.new(3) }

  it "encodes values correctly" do
    expect(write("123")).to eq("123\x00")
    expect(write("124")).to eq("124\x00")
  end

  it "raises a WriteError if the value is not the correct length" do
    expect{ write("1234") }.to raise_error(XDR::WriteError)
    expect{ write("12") }.to raise_error(XDR::WriteError)
  end

  def write(val)
    io = StringIO.new()
    subject.write(val, io)
    io.string
  end
end

Version data entries

8 entries across 8 versions & 2 rubygems

Version Path
payshares-xdr-0.0.2 spec/lib/xdr/opaque_spec.rb
xdr-2.0.0 spec/lib/xdr/opaque_spec.rb
xdr-1.0.0 spec/lib/xdr/opaque_spec.rb
xdr-0.1.0 spec/lib/xdr/opaque_spec.rb
xdr-0.0.4 spec/lib/xdr/opaque_spec.rb
xdr-0.0.3 spec/lib/xdr/opaque_spec.rb
xdr-0.0.2 spec/lib/xdr/opaque_spec.rb
xdr-0.0.1 spec/lib/xdr/opaque_spec.rb