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