Sha256: 72756638aecdfce7d356a9fcf79071ae9e13d985627160f561af894ea3d92df5

Contents?: true

Size: 1.99 KB

Versions: 6

Compression:

Stored size: 1.99 KB

Contents

require File.expand_path( File.join( File.dirname(__FILE__), %w[.. spec_helper] ) )
require 'ostruct'
require 'mongo'

describe Mongo3::Zone do
  
  before( :each ) do
    @zones = Mongo3::Zone.new( File.join(File.dirname(__FILE__), %w[.. configs landscape.yml] ) )
  end
  
  describe "#connect_for" do
    it "should connect to a zone correctly" do
      @zones.send( :connect_for, "home|test" ) do |con|
        con.should_not be_nil
      end
    end
    
    it "should connect to an admin zone correctly" do
      @zones.send( :connect_for, "home|admin" ) do |con|
        con.should_not be_nil
      end
    end    
  end
  
  describe "#zone_for" do
    it "should find a zone correctly" do
      @zones.send( :zone_for, "localhost", "12345" ).should == "admin"
    end
    
    it "should fail if a zone does not exist" do
      @zones.send( :zone_for, "ghost", 27017 ).should be_nil
      @zones.send( :zone_for, "localhost", 8888 ).should be_nil      
    end
  end
  
  describe "configs" do
    before( :all ) do
      @crapola = Mongo3::Zone.new( File.join(File.dirname(__FILE__), %w[.. configs crap.yml]) )
    end

    it "should raise an error on bogus yml" do
      lambda {
        con = Mongo3::Zone.new( File.join(File.dirname(__FILE__), %w[.. configs hosed.yml]) )
        con.send( :config )
      }.should raise_error( /Unable to grok yaml landscape file/ )
    end
    
    it "should crap out if the zone host is missing correctly" do
      lambda {
        @crapola.send( :connect_for, "home|bozo" )
      }.should raise_error( /Unable to find `host/ )
    end    
    
    it "should crap out if the zone port is missing correctly" do
      lambda {
        @crapola.send( :connect_for, "home|blee" )
      }.should raise_error( /Unable to find `port/ )
    end    
    
    it "should crap out if the zone is not correctly configured" do
      lambda {
        @crapola.send( :connect_for, "home|nowhere" )
      }.should raise_error( /MongoDB connection failed for `funky_town/ )
    end
    
  end
  
end
  

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
mongo3-0.1.5 spec/mongo3/zone_spec.rb
mongo3-0.1.4 spec/mongo3/zone_spec.rb
mongo3-0.1.3 spec/mongo3/zone_spec.rb
mongo3-0.1.2 spec/mongo3/zone_spec.rb
mongo3-0.1.1 spec/mongo3/zone_spec.rb
mongo3-0.1.0 spec/mongo3/zone_spec.rb