Sha256: 93d0c51b80c95069cefe1afbe85057d0c18ae81f236f67f67f5c46a20c080d3e

Contents?: true

Size: 1.88 KB

Versions: 1

Compression:

Stored size: 1.88 KB

Contents

require 'spec/helper'
require 'spec/stallion'

describe EventMachine::MultiRequest do

  it "should submit multiple requests in parallel and return once all of them are complete" do
    EventMachine.run {
      
      # create an instance of multi-request handler, and the requests themselves
      multi = EventMachine::MultiRequest.new
      
      # add multiple requests to the multi-handler
      multi.add(EventMachine::HttpRequest.new('http://127.0.0.1:8080/').get(:query => {:q => 'test'}))
      multi.add(EventMachine::HttpRequest.new('http://0.0.0.0:8083/').get(:timeout => 1))
      
      multi.callback  {
        # verify successful request
        multi.responses[:succeeded].size.should == 1
        multi.responses[:succeeded].first.response.should match(/test/)
        
        # verify invalid requests
        multi.responses[:failed].size.should == 1
        multi.responses[:failed].first.response_header.status.should == 0
        
        EventMachine.stop
      }
    } 
  end

  it "should handle multiple mock requests" do
    EventMachine::MockHttpRequest.register_file('http://127.0.0.1:8080/', :get, File.join(File.dirname(__FILE__), 'fixtures', 'google.ca'))
    EventMachine::MockHttpRequest.register_file('http://0.0.0.0:8083/', :get, File.join(File.dirname(__FILE__), 'fixtures', 'google.ca'))

    EventMachine.run {
      
      # create an instance of multi-request handler, and the requests themselves
      multi = EventMachine::MultiRequest.new
      
      # add multiple requests to the multi-handler
      multi.add(EventMachine::MockHttpRequest.new('http://127.0.0.1:8080/').get)
      multi.add(EventMachine::MockHttpRequest.new('http://0.0.0.0:8083/').get)
      
      multi.callback  {
        # verify successful request
        multi.responses[:succeeded].size.should == 2

        EventMachine.stop
      }
    } 
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
em-http-request-0.2.7 spec/multi_spec.rb