test/encoding/sax_encoder_test.rb in wankel-0.3.0 vs test/encoding/sax_encoder_test.rb in wankel-0.3.1

- old
+ new

@@ -1,9 +1,19 @@ +require 'test_helper' require 'stringio' class Wankel::SaxEncoderTest < Minitest::Test + def setup + @output = StringIO.new + @encoder = Wankel::SaxEncoder.new(@output) + end + + def assert_output(value) + assert_equal(value, @output.string) + end + test 'default inherited from Wankel' do encoder = Wankel::SaxEncoder.new(StringIO.new) assert_equal(Wankel::DEFAULTS, encoder.instance_variable_get("@options")) end @@ -11,79 +21,129 @@ encoder = Wankel::SaxEncoder.new(StringIO.new, :hello => true, :metoo => false) assert_equal(Wankel::DEFAULTS.merge({:hello => true, :metoo => false}), encoder.instance_variable_get("@options")) end test "number" do - output = StringIO.new - encoder = Wankel::SaxEncoder.new(output) - encoder.number(1234) - encoder.complete - assert_equal("1234", output.string) + @encoder.number(1234) + @encoder.complete + + assert_output("1234") end test "string" do - output = StringIO.new - encoder = Wankel::SaxEncoder.new(output) - encoder.string("hello world") - encoder.complete - assert_equal('"hello world"', output.string) + @encoder.string("hello world") + @encoder.complete + + assert_output('"hello world"') end test "null" do - output = StringIO.new - encoder = Wankel::SaxEncoder.new(output) - encoder.null - encoder.complete - assert_equal("null", output.string) + @encoder.null + @encoder.complete + + assert_output("null") end test "boolean(false)" do - output = StringIO.new - encoder = Wankel::SaxEncoder.new(output) - encoder.boolean(false) - encoder.complete - assert_equal("false", output.string) + @encoder.boolean(false) + @encoder.complete + + assert_output("false") end test "boolean(true)" do - output = StringIO.new - encoder = Wankel::SaxEncoder.new(output) - encoder.boolean(true) - encoder.complete - assert_equal("true", output.string) + @encoder.boolean(true) + @encoder.complete + + assert_output("true") end test "map_open" do - output = StringIO.new - encoder = Wankel::SaxEncoder.new(output) - encoder.map_open - encoder.complete - assert_equal("{", output.string) + @encoder.map_open + @encoder.complete + + assert_output("{") end test "map_close" do - output = StringIO.new - encoder = Wankel::SaxEncoder.new(output) - encoder.map_open - encoder.map_close - encoder.complete - assert_equal("{}", output.string) + @encoder.map_open + @encoder.map_close + @encoder.complete + + assert_output("{}") end test "array_open" do - output = StringIO.new - encoder = Wankel::SaxEncoder.new(output) - encoder.array_open - encoder.complete - assert_equal("[", output.string) + @encoder.array_open + @encoder.complete + + assert_output("[") end test "array_close" do - output = StringIO.new - encoder = Wankel::SaxEncoder.new(output) - encoder.array_open - encoder.array_close - encoder.complete - assert_equal("[]", output.string) + @encoder.array_open + @encoder.array_close + @encoder.complete + + assert_output("[]") end -end \ No newline at end of file + test "value(NUMBER)" do + @encoder.value(123) + @encoder.complete + + assert_output("123") + end + + test "value(STRING)" do + @encoder.value("hello") + @encoder.complete + + assert_output("\"hello\"") + end + + test "value(NIL)" do + @encoder.value(nil) + @encoder.complete + + assert_output("null") + end + + test "value(BOOLEAN)" do + @encoder.value(true) + @encoder.complete + + assert_output("true") + + @output.rewind + @encoder.value(false) + @encoder.complete + + assert_output("true") + end + + test "value(ARRAY)" do + @encoder.value([]) + @encoder.complete + + assert_output("[]") + end + + test "value(ARRAY_WITH_VALUES)" do + @encoder.value([1, "hello", nil, false, true, 45.21, {:key => 'val'}]) + @encoder.complete + + assert_output("[1,\"hello\",null,false,true,45.21,{\"key\":\"val\"}]") + end + + test "value(HASH)" do + @encoder.value(:one => 'one', :two => 2, :three => true, :four => nil, 5 => [45.21]) + @encoder.complete + + assert_output('{"one":"one","two":2,"three":true,"four":null,"5":[45.21]}') + end + +end +__END__ +test "map_open" do +test "map_close" do +