Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

48 lines (35 sloc) 1.223 kB
# encoding: UTF-8
# Copyright 2012 Twitter, Inc
# http://www.apache.org/licenses/LICENSE-2.0
require 'spec_helper'
include TwitterCldr::Collation
describe TrieWithFallback do
let(:fallback) { Trie.new }
let(:trie) { TrieWithFallback.new(fallback) }
before(:each) { trie.add([1, 2, 3], 'value') }
describe '#get' do
it 'returns result if the key is present' do
dont_allow(fallback).get
trie.get([1, 2, 3]).should == 'value'
end
it 'resorts to the fallback if the key is not present' do
mock(fallback).get([3, 2, 1]) { 'fallback-value' }
trie.get([3, 2, 1]).should == 'fallback-value'
end
end
describe '#find_prefix' do
it 'returns result if the key is present' do
dont_allow(fallback).find_prefix
trie.find_prefix([1, 2, 3, 4]).first(2).should == ['value', 3]
end
it 'resorts to the fallback if the key is not present' do
mock(fallback).find_prefix([3, 2, 1]) { 'fallback-result' }
trie.find_prefix([3, 2, 1]).should == 'fallback-result'
end
end
describe 'marshaling' do
it 'does not dump fallback' do
Marshal.load(Marshal.dump(TrieWithFallback.new(Trie.new))).fallback.should be_nil
end
end
end
Jump to Line
Something went wrong with that request. Please try again.