|
10 | 10 | end |
11 | 11 | end |
12 | 12 |
|
| 13 | + it_behaves_like 'has options', lambda{ MultiJson.adapter } |
| 14 | + |
13 | 15 | describe '.dump' do |
| 16 | + describe '#dump_options' do |
| 17 | + before{ MultiJson.dump_options = MultiJson.adapter.dump_options = {} } |
| 18 | + |
| 19 | + after do |
| 20 | + MultiJson.adapter.instance.should_receive(:dump).with(1, :foo=>'bar', :fizz=>'buzz') |
| 21 | + MultiJson.dump(1, :fizz => 'buzz') |
| 22 | + MultiJson.dump_options = MultiJson.adapter.dump_options = nil |
| 23 | + end |
| 24 | + |
| 25 | + it 'respects global dump options' do |
| 26 | + MultiJson.dump_options = {:foo => 'bar'} |
| 27 | + end |
| 28 | + |
| 29 | + it 'respects per-adapter dump options' do |
| 30 | + MultiJson.adapter.dump_options = {:foo => 'bar'} |
| 31 | + end |
| 32 | + |
| 33 | + it 'overrides global options with adapter-specific' do |
| 34 | + MultiJson.dump_options = {:foo => 'foo'} |
| 35 | + MultiJson.adapter.dump_options = {:foo => 'bar'} |
| 36 | + end |
| 37 | + end |
| 38 | + |
14 | 39 | it 'writes decodable JSON' do |
15 | 40 | [ |
16 | 41 | {'abc' => 'def'}, |
@@ -96,6 +121,29 @@ def to_json(*) |
96 | 121 | end |
97 | 122 |
|
98 | 123 | describe '.load' do |
| 124 | + describe '#load_options' do |
| 125 | + before{ MultiJson.load_options = MultiJson.adapter.load_options = {} } |
| 126 | + |
| 127 | + after do |
| 128 | + MultiJson.adapter.instance.should_receive(:load).with('1', :foo => 'bar', :fizz => 'buzz') |
| 129 | + MultiJson.load('1', :fizz => 'buzz') |
| 130 | + MultiJson.load_options = MultiJson.adapter.load_options = nil |
| 131 | + end |
| 132 | + |
| 133 | + it 'respects global load options' do |
| 134 | + MultiJson.load_options = {:foo => 'bar'} |
| 135 | + end |
| 136 | + |
| 137 | + it 'respects per-adapter load options' do |
| 138 | + MultiJson.adapter.load_options = {:foo => 'bar'} |
| 139 | + end |
| 140 | + |
| 141 | + it 'overrides global options with adapter-specific' do |
| 142 | + MultiJson.load_options = {:foo => 'foo'} |
| 143 | + MultiJson.adapter.load_options = {:foo => 'bar'} |
| 144 | + end |
| 145 | + end |
| 146 | + |
99 | 147 | it 'properly loads valid JSON' do |
100 | 148 | expect(MultiJson.load('{"abc":"def"}')).to eq({'abc' => 'def'}) |
101 | 149 | end |
|
0 commit comments