From a71c8a7d59c004f0fca8d1d45e13e1e6acff53bd Mon Sep 17 00:00:00 2001 From: Csaba Apagyi Date: Mon, 29 May 2017 10:22:17 +0200 Subject: [PATCH] Add test case for EventMachine style chunked input --- spec/json/streamer/json_streamer_spec.rb | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/spec/json/streamer/json_streamer_spec.rb b/spec/json/streamer/json_streamer_spec.rb index b35f65d..390c1dc 100644 --- a/spec/json/streamer/json_streamer_spec.rb +++ b/spec/json/streamer/json_streamer_spec.rb @@ -88,6 +88,30 @@ end end + context '1st level from EventMachine style chunked input' do + it 'should yield objects within JSON object' do + + hash = {'object1':@example_hash, 'object2':@example_hash, 'object3':@example_hash} + streamer = Json::Streamer::JsonStreamer.new + + objects = [] + streamer.get(nesting_level:1) do |object| + objects.push(object) + end + + chunk_size = 10 + json_file_mock = StringIO.new(JSON.generate(hash)) + json_file_mock.each(chunk_size) do |chunk| + streamer.parser << chunk + end + + expect(objects.length).to eq(hash.length) + objects.each do |element| + expect(element).to eq(@example_hash) + end + end + end + context 'JSONs with various nesting level and number of objects per level' do it 'should yield all objects on desired level (checking number of yielded objects)' do