Sha256: 7cf18f4e22cd7c438e0a5844b1f3ab6957a3ece77bda5daf1bcd549cff670a69

Contents?: true

Size: 1.48 KB

Versions: 25

Compression:

Stored size: 1.48 KB

Contents

require 'ddtrace/transport/response'

module Datadog
  module Transport
    module HTTP
      module Adapters
        # Adapter for testing
        class Test
          attr_reader \
            :buffer,
            :status

          def initialize(buffer = nil)
            @buffer = buffer
            @mutex = Mutex.new
            @status = 200
          end

          def call(env)
            add_request(env)
            Response.new(status)
          end

          def buffer?
            !@buffer.nil?
          end

          def add_request(env)
            @mutex.synchronize { buffer << env } if buffer?
          end

          def set_status!(status)
            @status = status
          end

          # Response for test adapter
          class Response
            include Datadog::Transport::Response

            attr_reader \
              :body,
              :code

            def initialize(code, body = nil)
              @code = code
              @body = body
            end

            def payload
              @body
            end

            def ok?
              code.between?(200, 299)
            end

            def unsupported?
              code == 415
            end

            def not_found?
              code == 404
            end

            def client_error?
              code.between?(400, 499)
            end

            def server_error?
              code.between?(500, 599)
            end
          end
        end
      end
    end
  end
end

Version data entries

25 entries across 25 versions & 2 rubygems

Version Path
ddtrace-0.37.0 lib/ddtrace/transport/http/adapters/test.rb
ddtrace-0.36.0 lib/ddtrace/transport/http/adapters/test.rb
ls-trace-0.1.2 lib/ddtrace/transport/http/adapters/test.rb
ddtrace-0.35.2 lib/ddtrace/transport/http/adapters/test.rb
ddtrace-0.35.1 lib/ddtrace/transport/http/adapters/test.rb
ddtrace-0.35.0 lib/ddtrace/transport/http/adapters/test.rb
ddtrace-0.34.2 lib/ddtrace/transport/http/adapters/test.rb
ddtrace-0.34.1 lib/ddtrace/transport/http/adapters/test.rb
ddtrace-0.34.0 lib/ddtrace/transport/http/adapters/test.rb
ddtrace-0.33.1 lib/ddtrace/transport/http/adapters/test.rb
ddtrace-0.33.0 lib/ddtrace/transport/http/adapters/test.rb
ddtrace-0.32.0 lib/ddtrace/transport/http/adapters/test.rb
ddtrace-0.31.1 lib/ddtrace/transport/http/adapters/test.rb
ddtrace-0.31.0 lib/ddtrace/transport/http/adapters/test.rb
ddtrace-0.30.1 lib/ddtrace/transport/http/adapters/test.rb
ddtrace-0.30.0 lib/ddtrace/transport/http/adapters/test.rb
ddtrace-0.29.1 lib/ddtrace/transport/http/adapters/test.rb
ddtrace-0.26.1 lib/ddtrace/transport/http/adapters/test.rb
ls-trace-0.1.1 lib/ddtrace/transport/http/adapters/test.rb
ddtrace-0.29.0 lib/ddtrace/transport/http/adapters/test.rb