Sha256: 238bfcd89a54c885410305d8b1bfda64c571c18863f64820ecf2b9bccb0bc2d0

Contents?: true

Size: 1.4 KB

Versions: 3

Compression:

Stored size: 1.4 KB

Contents

require 'spec_helper'

module Rambling
  module Trie
    describe ChildrenHashDeferer do
      class ClassWithChildren
        include ChildrenHashDeferer
        attr_accessor :children

        def initialize()
          @children = {}
        end
      end

      let(:deferer) { ClassWithChildren.new }

      describe '#[]' do
        let(:key) { :key }
        let(:value) { 'value' }

        it 'defers to the children hash' do
          deferer.children.should_receive(:[]).with(key).and_return value
          expect(deferer[key]).to eq value
        end
      end

      describe '#[]=' do
        let(:key) { :key }
        let(:value) { 'value' }

        it 'defers to the children hash' do
          deferer.children.should_receive(:[]=).with(key, value)
          deferer[key] = value
        end
      end

      describe '#delete' do
        let(:key) { :key }
        let(:value) { 'value' }

        it 'defers to the children hash' do
          deferer.children.should_receive(:delete).with(key).and_return value
          expect(deferer.delete key).to eq value
        end
      end

      describe '#has_key' do
        let(:key) { :key }

        it 'defers to the children hash' do
          [true, false].each do |value|
            deferer.children.should_receive(:has_key?).with(key).and_return value
            expect(deferer.has_key? key).to eq value
          end
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
rambling-trie-0.5.2 spec/lib/rambling/trie/children_hash_deferer_spec.rb
rambling-trie-0.5.1 spec/lib/rambling/trie/children_hash_deferer_spec.rb
rambling-trie-0.5.0 spec/lib/rambling/trie/children_hash_deferer_spec.rb