Sha256: 3121af39bc9b56e6f9799441a580952e73febbdac83d7f1505280c81ec5fdcfc

Contents?: true

Size: 1.45 KB

Versions: 2

Compression:

Stored size: 1.45 KB

Contents

require 'spec_helper'

describe Goliath::Connection do
  before(:each) do
    @c = Goliath::Connection.new('blah')
  end

  describe 'configuration' do
    it 'accepts an app' do
      app = double('app')
      @c.app = app
      @c.app.should == app
    end

    it 'accepts a logger' do
      logger = double('logger')
      @c.logger = logger
      @c.logger.should == logger
    end

    it 'accepts a status object' do
      status = double('status')
      @c.status = status
      @c.status.should == status
    end

    it 'accepts config' do
      config = double('config')
      @c.config = config
      @c.config.should == config
    end
  end

  describe 'post_init' do
    it 'sets up the parser' do
      @c.post_init
      @c.instance_variable_get("@parser").should_not be_nil
    end
  end

  describe 'receive_data' do
    it 'passes data to the http parser' do
      request_mock = double("parser").as_null_object
      request_mock.should_receive(:<<)

      current_mock = double("current").as_null_object

      @c.instance_variable_set("@parser", request_mock)
      @c.instance_variable_set("@current", current_mock)
      @c.receive_data('more_data')
    end

    it "closes the connection when a parse error is received" do
      current_mock = double("current").as_null_object
      current_mock.should_receive(:close)

      @c.instance_variable_set("@current", current_mock)
      lambda { @c.receive_data("bad data") }.should_not raise_error
    end
  end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
goliath-1.0.5 spec/unit/connection_spec.rb
goliath-1.0.4 spec/unit/connection_spec.rb