Sha256: f16e4cc727861a2d9a175bea7b5d0286f2538cb729dc853089ac268696405f4e

Contents?: true

Size: 1.98 KB

Versions: 1

Compression:

Stored size: 1.98 KB

Contents

require "spec_helper"
include Redistat

describe Redistat::Connection do
  
  before(:each) do
    @redis = Redistat.redis
  end
  
  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.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.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.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
  
  # TODO: Test thread-safety
  it "should be thread-safe" do
    pending("need to figure out a way to test thread-safety")
  end
  
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
redistat-0.3.0 spec/connection_spec.rb