Sha256: 8f32c7a44ec430604fab268ea7d9388039546b48f4c21988c14df8b3371fca2b

Contents?: true

Size: 1.23 KB

Versions: 2

Compression:

Stored size: 1.23 KB

Contents

require "minitest/spec"
require "minitest/autorun"
require "fossyl"

describe Fossyl do
  it "encodes strings" do
    Fossyl.dump("Fossyl").must_equal("6:Fossyl")
  end

  it "encodes integers" do
    Fossyl.dump(12).must_equal("i12e")
    Fossyl.dump(-12).must_equal("i-12e")
    Fossyl.dump(0).must_equal("i0e")
    Fossyl.dump(-0).must_equal("i0e")
  end

  it "encodes lists" do
    Fossyl.dump([1, "Fossyl", -12]).must_equal("li1e6:Fossyli-12ee")
  end

  it "encodes dictionaries" do
    Fossyl.dump(string: "Fossyl", integer: -12, list: [0, 12]).must_equal("d7:integeri-12e4:listli0ei12ee6:string6:Fossyle")
  end

  it "decodes strings" do
    Fossyl.load("6:Fossyl").must_equal("Fossyl")
  end

  it "decodes integers" do
    Fossyl.load("i12e").must_equal(12)
    Fossyl.load("i-12e").must_equal(-12)
    Fossyl.load("i0e").must_equal(0)
  end

  it "decodes lists" do
    Fossyl.load("li1e6:Fossyli-12ee").must_equal([1, "Fossyl", -12])
  end

  it "decodes dictionaries" do
    Fossyl.load("d7:integeri-12e4:listli0ei12ee6:string6:Fossyle").must_equal("string" => "Fossyl", "integer" => -12, "list" => [0, 12])
  end

  it "does not decode invalid data" do
    ->{ Fossyl.load("d6:invalidli0e6:stringe") }.must_raise Fossyl::InvalidBencoding
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
fossyl-0.5.1 spec/fossyl_spec.rb
fossyl-0.5.0 spec/fossyl_spec.rb