Sha256: da37229641f60e71cdf227fec2a5bd27902011de1ad9464cbc9366903d738f23

Contents?: true

Size: 1.73 KB

Versions: 40

Compression:

Stored size: 1.73 KB

Contents

require File.dirname(__FILE__) + '/../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

40 entries across 40 versions & 6 rubygems

Version Path
grockit-thin-0.8.2 spec/backends/swiftiply_client_spec.rb
macournoyer-thin-1.0.1 spec/backends/swiftiply_client_spec.rb
macournoyer-thin-1.1.0 spec/backends/swiftiply_client_spec.rb
michaelyta-thin-1.2.2 spec/backends/swiftiply_client_spec.rb
thin-1.2.11 spec/backends/swiftiply_client_spec.rb
thin-1.2.11-x86-mswin32 spec/backends/swiftiply_client_spec.rb
thin-1.2.11-x86-mingw32 spec/backends/swiftiply_client_spec.rb
thin-1.2.10 spec/backends/swiftiply_client_spec.rb
thin-1.2.10-x86-mswin32 spec/backends/swiftiply_client_spec.rb
thin-1.2.10-x86-mingw32 spec/backends/swiftiply_client_spec.rb
thin-1.2.9 spec/backends/swiftiply_client_spec.rb
thin-1.2.9-x86-mswin32 spec/backends/swiftiply_client_spec.rb
thin-1.2.9-x86-mingw32 spec/backends/swiftiply_client_spec.rb
thin-1.2.8 spec/backends/swiftiply_client_spec.rb
thin-1.2.8-x86-mswin32 spec/backends/swiftiply_client_spec.rb
thin-1.2.8-x86-mingw32 spec/backends/swiftiply_client_spec.rb
steamcannon-thin-1.2.8 spec/backends/swiftiply_client_spec.rb
thin-1.2.7 spec/backends/swiftiply_client_spec.rb
thin-1.2.7-x86-mswin32 spec/backends/swiftiply_client_spec.rb
thin-1.2.7-x86-mingw32 spec/backends/swiftiply_client_spec.rb