require "spec_helper" include Redistat describe Redistat::Connection do it "should have a valid Redis client instance" do Redistat.redis.should_not be_nil end it "should have initialized custom testing connection" do redis = Redistat.redis redis.client.host.should == '127.0.0.1' redis.client.port.should == 8379 redis.client.db.should == 15 end it "should be able to set and get data" do redis = Redistat.redis redis.set("hello", "world") redis.get("hello").should == "world" redis.del("hello").should be_true end it "should be able to store hashes to Redis" do redis = Redistat.redis redis.hset("hash", "field", "1") redis.hget("hash", "field").should == "1" redis.hincrby("hash", "field", 1) redis.hget("hash", "field").should == "2" redis.hincrby("hash", "field", -1) redis.hget("hash", "field").should == "1" redis.del("hash") end it "should be accessible from Redistat module" do Redistat.redis.should == Connection.get Redistat.redis.should == Redistat.connection end it "should handle multiple connections with refs" do Redistat.redis.client.db.should == 15 Redistat.connect(:port => 8379, :db => 14, :ref => "Custom") Redistat.redis.client.db.should == 15 Redistat.redis("Custom").client.db.should == 14 end it "should be able to overwrite default and custom refs" do Redistat.redis.client.db.should == 15 Redistat.connect(:port => 8379, :db => 14) Redistat.redis.client.db.should == 14 Redistat.redis("Custom").client.db.should == 14 Redistat.connect(:port => 8379, :db => 15, :ref => "Custom") Redistat.redis("Custom").client.db.should == 15 # Reset the default connection to the testing server or all hell # might brake loose from the rest of the specs Redistat.connect(:port => 8379, :db => 15) end end