#!/usr/bin/env ruby
here = File.dirname(__FILE__)
require "#{here}/test_helper"

begin
require 'json'
rescue LoadError
require 'rubygems'
require 'json'
end

CASES_PATH         = "#{here}/cases.mpac"
CASES_COMPACT_PATH = "#{here}/cases_compact.mpac"
CASES_JSON_PATH    = "#{here}/cases.json"

class MessagePackTestCases < Test::Unit::TestCase
	def feed_file(path)
		pac = MessagePack::Unpacker.new
		pac.feed File.read(path)
		pac
	end

	def test_compare_compact
		pac  = feed_file(CASES_PATH)
		cpac = feed_file(CASES_COMPACT_PATH)

		 objs = [];  pac.each {| obj|  objs <<  obj }
		cobjs = []; cpac.each {|cobj| cobjs << cobj }

		objs.zip(cobjs).each {|obj, cobj|
			assert_equal(obj, cobj)
		}
	end

	def test_compare_json
		pac  = feed_file(CASES_PATH)

		objs = []; pac.each {|obj| objs <<  obj }
		jobjs = JSON.load File.read(CASES_JSON_PATH)

		objs.zip(jobjs) {|obj, jobj|
			assert_equal(obj, jobj)
		}
	end
end