Sha256: 14f1eae9cb596d7e184adc85e9d18a2a7e0fcf33fa4f8a130748494d921649f9

Contents?: true

Size: 1.85 KB

Versions: 20

Compression:

Stored size: 1.85 KB

Contents

# encoding: utf-8

require_relative "../spec_helper"

describe Rango::HttpError do
  before(:each) do
    @error = Rango::NotFound.new("Post with given ID doesn't exist")
  end

  describe "constants" do
    it "should has CONTENT_TYPE" do
      Rango::HttpError.constants.should include(:CONTENT_TYPE)
    end
    
    it "should xxxxxxxxx" do
      @class  = Class.new(Rango::HttpError)
      -> { @class::STATUS }.should raise_error(NameError, /has to have defined constant STATUS/)
    end
  end

  describe "#status" do
    it "should returns HTTP status status" do
      @error.status.should eql(404)
    end
  end

  describe "#content_type" do
    it "should returns HTTP status status" do
      @error.content_type.should eql(@error.class::CONTENT_TYPE)
    end

    it "should returns HTTP status status" do
      @error.content_type = "text/xml"
      @error.content_type.should eql("text/xml")
    end
  end

  describe "#headers" do
    it "should returns HTTP status status" do
      @error.headers.should be_kind_of(Hash)
    end

    it "should returns HTTP status status" do
      @error.headers = "text/xml"
      @error.headers.should eql("text/xml")
    end
  end

  describe "#to_snakecase" do
    it "should returns snakecased name of class" do
      @error.to_snakecase.should eql("not_found")
    end
  end
  
  describe "#to_reponse" do
    before(:each) do
      @status, @headers, @body = @error.to_response
    end

    it "should returns standard response array for Rack" do
      @status.should eql(@error.status)
    end

    it "should returns standard response array for Rack" do
      @headers.should be_kind_of(Hash)
    end

    it "should write Content-Type header" do
      @headers["Content-Type"].should eql @error.content_type
    end

    it "should returns standard response array for Rack" do
      @body.should respond_to(:each)
    end
  end
end

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
rango-0.2 spec/rango/exceptions_spec.rb
rango-0.1.1.3 spec/rango/exceptions_spec.rb
rango-0.1.1.2.11 spec/rango/exceptions_spec.rb
rango-0.1.1.2.10 spec/rango/exceptions_spec.rb
rango-0.1.1.2.9 spec/rango/exceptions_spec.rb
rango-0.1.1.2.8 spec/rango/exceptions_spec.rb
rango-0.1.1.2.7 spec/rango/exceptions_spec.rb
rango-0.1.1.2.6 spec/rango/exceptions_spec.rb
rango-0.1.1.2.5 spec/rango/exceptions_spec.rb
rango-0.1.1.2.4 spec/rango/exceptions_spec.rb
rango-0.1.1.2.3 spec/rango/exceptions_spec.rb
rango-0.1.1.2.2 spec/rango/exceptions_spec.rb
rango-0.1.1.2.1 spec/rango/exceptions_spec.rb
rango-0.2.pre spec/rango/exceptions_spec.rb
rango-0.1.1.2 spec/rango/exceptions_spec.rb
rango-0.1.1.1 spec/rango/exceptions_spec.rb
rango-0.1.1 spec/rango/exceptions_spec.rb
rango-0.1.0 spec/rango/exceptions_spec.rb
rango-0.0.6 spec/rango/exceptions_spec.rb
rango-0.1.pre spec/rango/exceptions_spec.rb