test/tc_bdecode.rb in bencode-0.3.2 vs test/tc_bdecode.rb in bencode-0.4.0

- old
+ new

@@ -2,35 +2,48 @@ require 'test/unit' require "#{File.dirname(__FILE__)}/../lib/bencode" class BdecodeTest < Test::Unit::TestCase def test_string + assert_equal "", "0:".bdecode assert_equal "foo", "3:foo".bdecode + assert_equal "foo bar", "7:foo bar".bdecode end def test_integer + assert_equal 0, "i0e".bdecode assert_equal 42, "i42e".bdecode + assert_equal -7, "i-7e".bdecode + end + + def test_invalid_integer assert_raise BdecodeError do "i01e".bdecode end assert_raise BdecodeError do "i-01e".bdecode end end def test_array + assert_equal [], "le".bdecode + assert_equal ["foo"], "l3:fooe".bdecode assert_equal [1, 2, 3], "li1ei2ei3ee".bdecode end def test_hash + assert_equal Hash.new, "de".bdecode + hsh = {"a" => "monkey", "h" => "elephant", "z" => "zebra"} assert_equal hsh, "d1:a6:monkey1:h8:elephant1:z5:zebrae".bdecode end def test_invalid assert_raises BdecodeError do "foobar".bdecode "i1ei2e".bdecode + "4:foo".bdecode + "2:bar".bdecode end end def test_valid assert "3:foo".bencoded?