diff options
author | varac <varacanero@zeromail.org> | 2017-01-13 12:41:58 +0100 |
---|---|---|
committer | varac <varacanero@zeromail.org> | 2017-01-13 12:41:58 +0100 |
commit | 066c08f8362d53f0f30897cb8710d11260c726ea (patch) | |
tree | a6369eecd88bb731fe413d0bbc8af73d74d1f447 /spec/functions/concat_spec.rb | |
parent | 71123634744b9fe2ec7d6a3e38e9789fd84801e3 (diff) | |
parent | b65dd1f45d10e10e45455358aeabb29167990e2c (diff) |
Merge remote-tracking branch 'origin/master' into leap_master
Diffstat (limited to 'spec/functions/concat_spec.rb')
-rwxr-xr-x | spec/functions/concat_spec.rb | 63 |
1 files changed, 19 insertions, 44 deletions
diff --git a/spec/functions/concat_spec.rb b/spec/functions/concat_spec.rb index 49fa6bb..eb76233 100755 --- a/spec/functions/concat_spec.rb +++ b/spec/functions/concat_spec.rb @@ -1,50 +1,25 @@ -#! /usr/bin/env ruby -S rspec require 'spec_helper' -describe "the concat function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - it "should raise a ParseError if the client does not provide at least two arguments" do - expect { scope.function_concat([]) }.to(raise_error(Puppet::ParseError)) - expect { scope.function_concat([[1]]) }.to(raise_error(Puppet::ParseError)) - end - - it "should raise a ParseError if the first parameter is not an array" do - expect { scope.function_concat([1, []])}.to(raise_error(Puppet::ParseError)) - end - - it "should not raise a ParseError if the client provides more than two arguments" do - expect { scope.function_concat([[1],[2],[3]]) }.not_to raise_error - end - - it "should be able to concat an array" do - result = scope.function_concat([['1','2','3'],['4','5','6']]) - expect(result).to(eq(['1','2','3','4','5','6'])) - end - - it "should be able to concat a primitive to an array" do - result = scope.function_concat([['1','2','3'],'4']) - expect(result).to(eq(['1','2','3','4'])) - end - - it "should not accidentally flatten nested arrays" do - result = scope.function_concat([['1','2','3'],[['4','5'],'6']]) - expect(result).to(eq(['1','2','3',['4','5'],'6'])) - end +describe 'concat' do + it { is_expected.not_to eq(nil) } + it { is_expected.to run.with_params().and_raise_error(Puppet::ParseError) } + it { is_expected.to run.with_params([1]).and_raise_error(Puppet::ParseError) } + it { is_expected.to run.with_params(1, [2]).and_raise_error(Puppet::ParseError) } + it { is_expected.to run.with_params([1], [2], [3]).and_return([1, 2, 3]) } + it { is_expected.to run.with_params(['1','2','3'],['4','5','6']).and_return(['1','2','3','4','5','6']) } + it { is_expected.to run.with_params(['1','2','3'],'4').and_return(['1','2','3','4']) } + it { is_expected.to run.with_params(['1','2','3'],[['4','5'],'6']).and_return(['1','2','3',['4','5'],'6']) } + it { is_expected.to run.with_params(['1','2'],['3','4'],['5','6']).and_return(['1','2','3','4','5','6']) } + it { is_expected.to run.with_params(['1','2'],'3','4',['5','6']).and_return(['1','2','3','4','5','6']) } + it { is_expected.to run.with_params([{"a" => "b"}], {"c" => "d", "e" => "f"}).and_return([{"a" => "b"}, {"c" => "d", "e" => "f"}]) } it "should leave the original array intact" do - array_original = ['1','2','3'] - result = scope.function_concat([array_original,['4','5','6']]) - array_original.should(eq(['1','2','3'])) - end - - it "should be able to concat multiple arrays" do - result = scope.function_concat([['1','2','3'],['4','5','6'],['7','8','9']]) - expect(result).to(eq(['1','2','3','4','5','6','7','8','9'])) - end - - it "should be able to concat mix of primitives and arrays to a final array" do - result = scope.function_concat([['1','2','3'],'4',['5','6','7']]) - expect(result).to(eq(['1','2','3','4','5','6','7'])) + argument1 = ['1','2','3'] + original1 = argument1.dup + argument2 = ['4','5','6'] + original2 = argument2.dup + result = subject.call([argument1,argument2]) + expect(argument1).to eq(original1) + expect(argument2).to eq(original2) end end |