summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorLamont Granquist <lamont@scriptkiddie.org>2014-11-22 15:20:17 -0800
committerLamont Granquist <lamont@scriptkiddie.org>2014-11-22 15:20:17 -0800
commitfd2e17e64d6eded4b96fe09bfe376c401f720682 (patch)
tree58ce17c6106e2b547e7106bd0099733d6d8c1b07 /spec
parent9ad03a7b89c9fad16f677879da9d91275e997cfb (diff)
downloadffi-yajl-fd2e17e64d6eded4b96fe09bfe376c401f720682.tar.gz
support calling #to_s on all types for keys
compatibility with JSON gem and yajl-ruby closes #14
Diffstat (limited to 'spec')
-rw-r--r--spec/ffi_yajl/encoder_spec.rb25
1 files changed, 25 insertions, 0 deletions
diff --git a/spec/ffi_yajl/encoder_spec.rb b/spec/ffi_yajl/encoder_spec.rb
index 02bc020..41587e2 100644
--- a/spec/ffi_yajl/encoder_spec.rb
+++ b/spec/ffi_yajl/encoder_spec.rb
@@ -7,6 +7,31 @@ describe "FFI_Yajl::Encoder" do
let(:encoder) { FFI_Yajl::Encoder.new }
+ it "encodes hashes in keys as strings" do
+ ruby = { {'a' => 'b'} => 2 }
+ expect(encoder.encode(ruby)).to eq('{"{\"a\"=>\"b\"}":2}')
+ end
+
+ it "encodes arrays in keys as strings" do
+ ruby = { [0,1] => 2 }
+ expect(encoder.encode(ruby)).to eq('{"[0, 1]":2}')
+ end
+
+ it "encodes nil in keys as strings" do
+ ruby = { nil => 2 }
+ expect(encoder.encode(ruby)).to eq('{"":2}')
+ end
+
+ it "encodes true in keys as strings" do
+ ruby = { true => 2 }
+ expect(encoder.encode(ruby)).to eq('{"true":2}')
+ end
+
+ it "encodes false in keys as strings" do
+ ruby = { false => 2 }
+ expect(encoder.encode(ruby)).to eq('{"false":2}')
+ end
+
it "encodes fixnums in keys as strings" do
ruby = { 1 => 2 }
expect(encoder.encode(ruby)).to eq('{"1":2}')