Sha256: 30a94bb8bfd83e5058ef9ad2c6b211da44027221cd7a8ed4a75ec687e34363e6

Contents?: true

Size: 1.7 KB

Versions: 48

Compression:

Stored size: 1.7 KB

Contents

require 'spec_helper'

describe Backends::SwiftiplyClient do
  before do
    @backend = Backends::SwiftiplyClient.new('0.0.0.0', 3333)
    @backend.server = mock('server', :null_object => true)
  end
  
  it "should connect" do
    EventMachine.run do
      @backend.connect
      EventMachine.stop
    end
  end
  
  it "should disconnect" do
    EventMachine.run do
      @backend.connect
      @backend.disconnect
      EventMachine.stop
    end
  end
end

describe SwiftiplyConnection do
  before do
    @connection = SwiftiplyConnection.new(nil)
    @connection.backend = Backends::SwiftiplyClient.new('0.0.0.0', 3333)
    @connection.backend.server = mock('server', :null_object => true)
  end
  
  it do
    @connection.should be_persistent
  end
  
  it "should send handshake on connection_completed" do
    @connection.should_receive(:send_data).with('swiftclient000000000d0500')
    @connection.connection_completed
  end
  
  it "should reconnect on unbind" do
    @connection.backend.stub!(:running?).and_return(true)
    @connection.stub!(:rand).and_return(0) # Make sure we don't wait
    
    @connection.should_receive(:reconnect).with('0.0.0.0', 3333)
    
    EventMachine.run do
      @connection.unbind
      EventMachine.add_timer(0) { EventMachine.stop }      
    end
  end
  
  it "should not reconnect when not running" do
    @connection.backend.stub!(:running?).and_return(false)
    EventMachine.should_not_receive(:add_timer)
    @connection.unbind
  end
  
  it "should have a host_ip" do
    @connection.send(:host_ip).should == [0, 0, 0, 0]
  end
  
  it "should generate swiftiply_handshake based on key" do
    @connection.send(:swiftiply_handshake, 'key').should == 'swiftclient000000000d0503key'
  end
end

Version data entries

48 entries across 48 versions & 2 rubygems

Version Path
classiccms-0.7.5 vendor/bundle/gems/thin-1.3.1/spec/backends/swiftiply_client_spec.rb
classiccms-0.7.4 vendor/bundle/gems/thin-1.3.1/spec/backends/swiftiply_client_spec.rb
classiccms-0.7.3 vendor/bundle/gems/thin-1.3.1/spec/backends/swiftiply_client_spec.rb
classiccms-0.7.2 vendor/bundle/gems/thin-1.3.1/spec/backends/swiftiply_client_spec.rb
classiccms-0.7.1 vendor/bundle/gems/thin-1.3.1/spec/backends/swiftiply_client_spec.rb
classiccms-0.7.0 vendor/bundle/gems/thin-1.3.1/spec/backends/swiftiply_client_spec.rb
classiccms-0.6.9 vendor/bundle/gems/thin-1.3.1/spec/backends/swiftiply_client_spec.rb
classiccms-0.6.8 vendor/bundle/gems/thin-1.3.1/spec/backends/swiftiply_client_spec.rb
classiccms-0.6.7 vendor/bundle/gems/thin-1.3.1/spec/backends/swiftiply_client_spec.rb
classiccms-0.6.6 vendor/bundle/gems/thin-1.3.1/spec/backends/swiftiply_client_spec.rb
classiccms-0.6.5 vendor/bundle/gems/thin-1.3.1/spec/backends/swiftiply_client_spec.rb
classiccms-0.6.4 vendor/bundle/gems/thin-1.3.1/spec/backends/swiftiply_client_spec.rb
classiccms-0.6.3 vendor/bundle/gems/thin-1.3.1/spec/backends/swiftiply_client_spec.rb
classiccms-0.6.2 vendor/bundle/gems/thin-1.3.1/spec/backends/swiftiply_client_spec.rb
classiccms-0.6.1 vendor/bundle/gems/thin-1.3.1/spec/backends/swiftiply_client_spec.rb
classiccms-0.6.0 vendor/bundle/gems/thin-1.3.1/spec/backends/swiftiply_client_spec.rb
classiccms-0.5.17 vendor/bundle/gems/thin-1.3.1/spec/backends/swiftiply_client_spec.rb
classiccms-0.5.16 vendor/bundle/gems/thin-1.3.1/spec/backends/swiftiply_client_spec.rb
classiccms-0.5.15 vendor/bundle/gems/thin-1.3.1/spec/backends/swiftiply_client_spec.rb
classiccms-0.5.14 vendor/bundle/gems/thin-1.3.1/spec/backends/swiftiply_client_spec.rb