Sha256: c6350285e7d13f585abf2b3f8872988fef079f269f70a17aa74d9a5b740055f3

Contents?: true

Size: 1.4 KB

Versions: 20

Compression:

Stored size: 1.4 KB

Contents

require 'rspec'
require 'cxxproject/toolchain/provider'

describe Cxxproject::Toolchain::Provider do

  it 'should merge without overwrite' do
    cpp = { :DEFINE_FLAG => "-D", :COMMAND => "clang++" }
    c = { :COMMAND => "clang" }
    expected = { :DEFINE_FLAG => "-D", :COMMAND => "clang" }
    Cxxproject::Toolchain::Provider.merge(c, cpp, false).should == expected
  end

  it 'should merge two simple hashes' do
    hashA = { :a => 1, :b => 2 }
    hashB = { :a => 3, :c => 2 }
    merged = Cxxproject::Toolchain::Provider.merge(hashA, hashB)
    merged.should == { :a => 3, :b => 2, :c => 2 }
  end

  it 'should merge nested hashes' do
    hashA = { :n => { :a => 1, :b => 2 }}
    hashB = { :n => { :a => 3, :c => 2 }}
    merged = Cxxproject::Toolchain::Provider.merge(hashA, hashB)
    merged.should == { :n => { :a => 3, :b => 2, :c => 2 }}
  end

  it 'should merge multiple level nested hashes' do
    hashA = {:COMPILER => {
                :CPP => {:COMMAND => "",:DEFINE_FLAG => "",:SOURCE_FILE_ENDINGS => [".cxx", ".cpp", ".c++", ".cc", ".C"]}}}
    hashB = {:COMPILER =>
              {:CPP => { :COMMAND => "clang++", :SOURCE_FILE_ENDINGS => [".cxx", ".cpp"]}}}
    merged = Cxxproject::Toolchain::Provider.merge(hashA, hashB)
    expected = {:COMPILER =>
              {:CPP => { :COMMAND => "clang++", :DEFINE_FLAG => "", :SOURCE_FILE_ENDINGS => [".cxx", ".cpp"]}}}
    merged.should == expected
  end

end

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
cxxproject-0.6.29 spec/provider_spec.rb
cxxproject-0.6.28 spec/provider_spec.rb
cxxproject-0.6.27 spec/provider_spec.rb
cxxproject-0.6.26 spec/provider_spec.rb
cxxproject-0.6.25 spec/provider_spec.rb
cxxproject-0.6.24 spec/provider_spec.rb
cxxproject-0.6.23 spec/provider_spec.rb
cxxproject-0.6.21 spec/provider_spec.rb
cxxproject-0.6.18 spec/provider_spec.rb
cxxproject-0.6.17 spec/provider_spec.rb
cxxproject-0.6.14 spec/provider_spec.rb
cxxproject-0.6.12 spec/provider_spec.rb
cxxproject-0.6.13 spec/provider_spec.rb
cxxproject-0.6.11 spec/provider_spec.rb
cxxproject-0.6.10 spec/provider_spec.rb
cxxproject-0.6.9 spec/provider_spec.rb
cxxproject-0.6.6 spec/provider_spec.rb
cxxproject-0.6.5 spec/provider_spec.rb
cxxproject-0.6.4 spec/provider_spec.rb
cxxproject-0.6.2 spec/provider_spec.rb