зеркало из https://github.com/github/aws-s3.git
68 строки
2.4 KiB
Ruby
68 строки
2.4 KiB
Ruby
require File.dirname(__FILE__) + '/test_helper'
|
|
class BaseResponseTest < Test::Unit::TestCase
|
|
def setup
|
|
@headers = {'content-type' => 'text/plain', 'date' => Time.now}
|
|
@response = FakeResponse.new()
|
|
@base_response = Base::Response.new(@response)
|
|
end
|
|
|
|
def test_status_predicates
|
|
response = Proc.new {|code| Base::Response.new(FakeResponse.new(:code => code))}
|
|
assert response[200].success?
|
|
assert response[300].redirect?
|
|
assert response[400].client_error?
|
|
assert response[500].server_error?
|
|
end
|
|
|
|
def test_headers_passed_along_from_original_response
|
|
assert_equal @response.headers, @base_response.headers
|
|
assert_equal @response['date'], @base_response['date']
|
|
original_headers, new_headers = {}, {}
|
|
@response.headers.each {|k,v| original_headers[k] = v}
|
|
@base_response.each {|k,v| new_headers[k] = v}
|
|
assert_equal original_headers, new_headers
|
|
end
|
|
end
|
|
|
|
class ErrorResponseTest < Test::Unit::TestCase
|
|
def test_error_responses_are_always_in_error
|
|
assert Error::Response.new(FakeResponse.new).error?
|
|
assert Error::Response.new(FakeResponse.new(:code => 200)).error?
|
|
assert Error::Response.new(FakeResponse.new(:headers => {'content-type' => 'text/plain'})).error?
|
|
end
|
|
end
|
|
|
|
class S3ObjectResponseTest < Test::Unit::TestCase
|
|
def test_etag_extracted
|
|
mock_connection_for(S3Object, :returns => {:headers => {"etag" => %("acbd18db4cc2f85cedef654fccc4a4d8")}}).once
|
|
object_response = S3Object.create('name_does_not_matter', 'data does not matter', 'bucket does not matter')
|
|
assert_equal "acbd18db4cc2f85cedef654fccc4a4d8", object_response.etag
|
|
end
|
|
end
|
|
|
|
class ResponseClassFinderTest < Test::Unit::TestCase
|
|
class CampfireBucket < Bucket
|
|
end
|
|
|
|
class BabyBase < Base
|
|
end
|
|
|
|
def test_on_base
|
|
assert_equal Base::Response, FindResponseClass.for(Base)
|
|
assert_equal Base::Response, FindResponseClass.for(AWS::S3::Base)
|
|
|
|
end
|
|
|
|
def test_on_subclass_with_corresponding_response_class
|
|
assert_equal Bucket::Response, FindResponseClass.for(Bucket)
|
|
assert_equal Bucket::Response, FindResponseClass.for(AWS::S3::Bucket)
|
|
end
|
|
|
|
def test_on_subclass_with_intermediary_parent_that_has_corresponding_response_class
|
|
assert_equal Bucket::Response, FindResponseClass.for(CampfireBucket)
|
|
end
|
|
|
|
def test_on_subclass_with_no_corresponding_response_class_and_no_intermediary_parent
|
|
assert_equal Base::Response, FindResponseClass.for(BabyBase)
|
|
end
|
|
end |