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
+