Sha256: b9a770a2c6944b22ee79025168c2604a3f7d298046c05ae463d4faa0e6642b13
Contents?: true
Size: 1.54 KB
Versions: 1
Compression:
Stored size: 1.54 KB
Contents
require 'spec_helper' class FakeKeyValueStore end describe Roulette::Transaction do before do @kv_store = FakeKeyValueStore.new @key = "key" @args = [@key, "value"] end describe '#new' do it "keeps args, stores, and key" do transaction = Roulette::Transaction.new([@kv_store], *@args) transaction.stores.should eq([@kv_store]) transaction.key.should eq(@key) transaction.args.should eq(@args) end end describe '#extract_args' do it "pulls out the key" do transaction = Roulette::Transaction.new([@kv_store], *@args) transaction.extract_args.should eq(@key) end end describe '#select_store' do it "picks a store" do transaction = Roulette::Transaction.new([@kv_store], *@args) store = transaction.send :select_store store.should eq(@kv_store) end it "selects different stores for different keys" do @kv_store_deux = FakeKeyValueStore.new store = Roulette::Transaction.new([@kv_store, @kv_store_deux], "key").send :select_store store_deux = Roulette::Transaction.new([@kv_store, @kv_store_deux], "different_key").send :select_store store.should_not eq(store_deux) end end describe "#fire" do it "sends a method to a kv_store" do fired_method = :sadd @kv_store.should_receive(fired_method) transaction = Roulette::Transaction.new([@kv_store], *@args) transaction.fire(fired_method) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
roulette-0.0.1 | spec/roulette/transaction_spec.rb |