diff options
Diffstat (limited to 'spec/unit/pops/evaluator/variables_spec.rb')
-rw-r--r-- | spec/unit/pops/evaluator/variables_spec.rb | 105 |
1 files changed, 0 insertions, 105 deletions
diff --git a/spec/unit/pops/evaluator/variables_spec.rb b/spec/unit/pops/evaluator/variables_spec.rb index fe93842c4..6c1e9f821 100644 --- a/spec/unit/pops/evaluator/variables_spec.rb +++ b/spec/unit/pops/evaluator/variables_spec.rb @@ -49,111 +49,6 @@ describe 'Puppet::Pops::Impl::EvaluatorImpl' do expect { evaluate_l(block(var('a').set(10), var('a').set(20))) }.to raise_error(/Cannot reassign variable a/) end - context "-= operations" do - # Also see collections_ops_spec.rb where delete via - is fully tested, here only the - # the -= operation itself is tested (there are many combinations) - # - it 'deleting from non existing value produces :undef, nil -= ?' do - top_scope_block = var('b').set([1,2,3]) - local_scope_block = block(var('a').minus_set([4]), fqn('a').var) - evaluate_l(top_scope_block, local_scope_block).should == :undef - end - - it 'deletes from a list' do - top_scope_block = var('a').set([1,2,3]) - local_scope_block = block(var('a').minus_set([2]), fqn('a').var()) - evaluate_l(top_scope_block, local_scope_block).should == [1,3] - end - - it 'deletes from a hash' do - top_scope_block = var('a').set({'a'=>1,'b'=>2,'c'=>3}) - local_scope_block = block(var('a').minus_set('b'), fqn('a').var()) - evaluate_l(top_scope_block, local_scope_block).should == {'a'=>1,'c'=>3} - end - end - - context "+= operations" do - # Also see collections_ops_spec.rb where concatenation via + is fully tested - it "appending to non existing value, nil += []" do - top_scope_block = var('b').set([1,2,3]) - local_scope_block = var('a').plus_set([4]) - evaluate_l(top_scope_block, local_scope_block).should == [4] - end - - context "appending to list" do - it "from list, [] += []" do - top_scope_block = var('a').set([1,2,3]) - local_scope_block = block(var('a').plus_set([4]), fqn('a').var()) - evaluate_l(top_scope_block, local_scope_block).should == [1,2,3,4] - end - - it "from hash, [] += {a=>b}" do - top_scope_block = var('a').set([1,2,3]) - local_scope_block = block(var('a').plus_set({'a' => 1, 'b'=>2}), fqn('a').var()) - evaluate_l(top_scope_block, local_scope_block).should satisfy {|result| - # hash in 1.8.7 is not insertion order preserving, hence this hoop - result == [1,2,3,['a',1],['b',2]] || result == [1,2,3,['b',2],['a',1]] - } - end - - it "from single value, [] += x" do - top_scope_block = var('a').set([1,2,3]) - local_scope_block = block(var('a').plus_set(4), fqn('a').var()) - evaluate_l(top_scope_block, local_scope_block).should == [1,2,3,4] - end - - it "from embedded list, [] += [[x]]" do - top_scope_block = var('a').set([1,2,3]) - local_scope_block = block(var('a').plus_set([[4,5]]), fqn('a').var()) - evaluate_l(top_scope_block, local_scope_block).should == [1,2,3,[4,5]] - end - end - - context "appending to hash" do - it "from hash, {a=>b} += {x=>y}" do - top_scope_block = var('a').set({'a' => 1, 'b' => 2}) - local_scope_block = block(var('a').plus_set({'c' => 3}), fqn('a').var()) - evaluate_l(top_scope_block, local_scope_block) do |scope| - # Assert no change to top scope hash - scope['a'].should == {'a' =>1, 'b'=> 2} - end.should == {'a' => 1, 'b' => 2, 'c' => 3} - end - - it "from list, {a=>b} += ['x', y]" do - top_scope_block = var('a').set({'a' => 1, 'b' => 2}) - local_scope_block = block(var('a').plus_set(['c', 3]), fqn('a').var()) - evaluate_l(top_scope_block, local_scope_block) do |scope| - # Assert no change to top scope hash - scope['a'].should == {'a' =>1, 'b'=> 2} - end.should == {'a' => 1, 'b' => 2, 'c' => 3} - end - - it "with overwrite from hash, {a=>b} += {a=>c}" do - top_scope_block = var('a').set({'a' => 1, 'b' => 2}) - local_scope_block = block(var('a').plus_set({'b' => 4, 'c' => 3}),fqn('a').var()) - evaluate_l(top_scope_block, local_scope_block) do |scope| - # Assert no change to top scope hash - scope['a'].should == {'a' =>1, 'b'=> 2} - end.should == {'a' => 1, 'b' => 4, 'c' => 3} - end - - it "with overwrite from list, {a=>b} += ['a', c]" do - top_scope_block = var('a').set({'a' => 1, 'b' => 2}) - local_scope_block = block(var('a').plus_set(['b', 4, 'c', 3]), fqn('a').var()) - evaluate_l(top_scope_block, local_scope_block) do |scope| - # Assert no change to topscope hash - scope['a'].should == {'a' =>1, 'b'=> 2} - end.should == {'a' => 1, 'b' => 4, 'c' => 3} - end - - it "from odd length array - error" do - top_scope_block = var('a').set({'a' => 1, 'b' => 2}) - local_scope_block = var('a').plus_set(['b', 4, 'c']) - expect { evaluate_l(top_scope_block, local_scope_block) }.to raise_error(/Append assignment \+= failed with error: odd number of arguments for Hash/) - end - end - end - context "access to numeric variables" do it "without a match" do evaluate_l(block(literal(2) + literal(2), |