Class: Philiprehberger::HttpMock::Registry

Inherits:
Object
  • Object
show all
Defined in:
lib/philiprehberger/http_mock/registry.rb

Overview

Thread-safe registry of stub definitions and recorded requests

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeRegistry

Returns a new instance of Registry.



13
14
15
16
17
# File 'lib/philiprehberger/http_mock/registry.rb', line 13

def initialize
  @stubs = []
  @requests = []
  @mutex = Mutex.new
end

Instance Attribute Details

#requestsArray<Request> (readonly)

Returns recorded requests.

Returns:

  • (Array<Request>)

    recorded requests



11
12
13
# File 'lib/philiprehberger/http_mock/registry.rb', line 11

def requests
  @requests
end

#stubsArray<StubDefinition> (readonly)

Returns registered stubs.

Returns:



8
9
10
# File 'lib/philiprehberger/http_mock/registry.rb', line 8

def stubs
  @stubs
end

Instance Method Details

#find_stub(request) ⇒ StubDefinition?

Find a matching stub for a request

Parameters:

  • request (Request)

    the request to match

Returns:



40
41
42
43
44
# File 'lib/philiprehberger/http_mock/registry.rb', line 40

def find_stub(request)
  @mutex.synchronize do
    @stubs.reverse_each.find { |s| s.matches?(request) }
  end
end

#record(request) ⇒ void

This method returns an undefined value.

Record an incoming request

Parameters:

  • request (Request)

    the request to record



32
33
34
# File 'lib/philiprehberger/http_mock/registry.rb', line 32

def record(request)
  @mutex.synchronize { @requests << request }
end

#register(stub_def) ⇒ StubDefinition

Register a new stub definition

Parameters:

Returns:



23
24
25
26
# File 'lib/philiprehberger/http_mock/registry.rb', line 23

def register(stub_def)
  @mutex.synchronize { @stubs << stub_def }
  stub_def
end

#reset!void

This method returns an undefined value.

Clear all stubs and recorded requests



49
50
51
52
53
54
# File 'lib/philiprehberger/http_mock/registry.rb', line 49

def reset!
  @mutex.synchronize do
    @stubs.clear
    @requests.clear
  end
end