Sha256: 094d4438ee6bbc85585553a6872e6332ab83e28fefac8b9093a5ca3e9186b132

Contents?: true

Size: 1008 Bytes

Versions: 3

Compression:

Stored size: 1008 Bytes

Contents

# encoding: UTF-8

require "spec_helper"

module Bunch
  describe TreeMerge do
    let(:empty)  { FileTree.from_hash({}) }
    let(:tree_1) { FileTree.from_hash("a" => {"b" => "1", "c" => "2"}) }
    let(:tree_2) { FileTree.from_hash("a" => {"d" => "3"}, "e" => "4") }
    let(:tree_3) { FileTree.from_hash("a" => {"b" => "9"}) }

    it "no-ops if one tree is empty" do
      TreeMerge.new(empty, tree_1).result.must_equal tree_1
      TreeMerge.new(tree_1, empty).result.must_equal tree_1
    end

    it "merges two trees with partially-overlapping structures" do
      output = FileTree.from_hash(
        "a" => {"b" => "1", "c" => "2", "d" => "3"}, "e" => "4"
      )
      TreeMerge.new(tree_1, tree_2).result.must_equal output
    end

    it "prioritizes the left tree over the right one" do
      output = FileTree.from_hash("a" => {"b" => "9", "c" => "2"})
      TreeMerge.new(tree_1, tree_3).result.must_equal tree_1
      TreeMerge.new(tree_3, tree_1).result.must_equal output
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
bunch-1.0.0pre3 spec/bunch/tree_merge_spec.rb
bunch-1.0.0pre2 spec/bunch/tree_merge_spec.rb
bunch-1.0.0pre1 spec/bunch/tree_merge_spec.rb