spec/dslh_spec.rb in dslh-0.2.4 vs spec/dslh_spec.rb in dslh-0.2.5

- old
+ new

@@ -521,9 +521,145 @@ end end EOS end + it 'does not allow duplicate key' do + expect { + Dslh.eval do + key1 'value' + key2 100 + + key2 do + key31 "value31" do + key311 100 + key312 '200' + end + + key32 do + key321 "value321" do + key3211 'XXX' + key3212 :XXX + end + key322 300 + end + end + end + }.to raise_error('duplicate key :key2') + + expect { + Dslh.eval do + key1 'value' + key2 100 + + key3 do + key31 "value31" do + key311 100 + key312 '200' + end + + key31 do + key321 "value321" do + key3211 'XXX' + key3212 :XXX + end + key322 300 + end + end + end + }.to raise_error('duplicate key :key31') + + expect { + Dslh.eval do + key1 'value' + key2 100 + + key3 do + key31 "value31" do + key311 100 + key311 '200' + end + + key32 do + key321 "value321" do + key3211 'XXX' + key3212 :XXX + end + key322 300 + end + end + end + }.to raise_error('duplicate key :key311') + end + + it 'allow duplicate key' do + expect { + Dslh.eval(:allow_duplicate => true) do + key1 'value' + key2 100 + + key2 do + key31 "value31" do + key311 100 + key312 '200' + end + + key32 do + key321 "value321" do + key3211 'XXX' + key3212 :XXX + end + key322 300 + end + end + end + }.to_not raise_error + + expect { + Dslh.eval(:allow_duplicate => true) do + key1 'value' + key2 100 + + key3 do + key31 "value31" do + key311 100 + key312 '200' + end + + key31 do + key321 "value321" do + key3211 'XXX' + key3212 :XXX + end + key322 300 + end + end + end + }.to_not raise_error + + expect { + Dslh.eval(:allow_duplicate => true) do + key1 'value' + key2 100 + + key3 do + key31 "value31" do + key311 100 + key311 '200' + end + + key32 do + key321 "value321" do + key3211 'XXX' + key3212 :XXX + end + key322 300 + end + end + end + }.to_not raise_error + end + it 'should convert hash to dsl with value_conv' do h = {"glossary"=> {"title"=>"example glossary", "GlossDiv"=> {"title"=>"S",