diff --git a/test/unit/mock/files/policyfile.lock.json b/test/unit/mock/files/policyfile.lock.json index 98bd0b73b..23eb98b20 100644 --- a/test/unit/mock/files/policyfile.lock.json +++ b/test/unit/mock/files/policyfile.lock.json @@ -1,12 +1,12 @@ { "name": "demo", "run_list": [ - "apache2", - "omnibus" + "a", + "b" ], - "cookbook_locks": { - "omnibus": { - "version": "2.2.0" + "x": { + "y": { + "z": 123 } } } diff --git a/test/unit/resources/json_test.rb b/test/unit/resources/json_test.rb index e9d8a83d3..d65e12e64 100644 --- a/test/unit/resources/json_test.rb +++ b/test/unit/resources/json_test.rb @@ -6,11 +6,31 @@ require 'helper' require 'inspec/resource' describe 'Inspec::Resources::JSON' do - it 'verify json parsing' do - resource = load_resource('json', 'policyfile.lock.json') - _(resource.params).wont_equal nil - _(resource.send('name')).must_equal 'demo' - _(resource.send('run_list')).must_equal %w{apache2 omnibus} - _(resource.send('cookbook_locks.omnibus.version')).must_equal '2.2.0' + describe 'when loading a valid json' do + let (:resource) { load_resource('json', 'policyfile.lock.json') } + + it 'gets params as a hashmap' do + _(resource.params).must_be_kind_of Hash + end + + it 'retrieves nil if a param is missing' do + _(resource.params['missing']).must_be_nil + end + + it 'retrieves params by name' do + _(resource.send('name')).must_equal 'demo' + end + + it 'retrieves an array by name' do + _(resource.send('run_list')).must_equal %w{a b} + end + + it 'doesnt resolve dot-notation names' do + _(resource.send('x.y.z')).must_be_nil + end + + it 'doesnt resolve symbol-notation names' do + _(resource.send(:'x.y.z')).must_be_nil + end end end