Module: MockServer::Model::DSL

Included in:
AbstractClient, MockServerCLI
Defined in:
lib/mockserver/model/body.rb,
lib/mockserver/model/delay.rb,
lib/mockserver/model/times.rb,
lib/mockserver/model/cookie.rb,
lib/mockserver/model/header.rb,
lib/mockserver/model/forward.rb,
lib/mockserver/model/request.rb,
lib/mockserver/model/response.rb,
lib/mockserver/model/parameter.rb,
lib/mockserver/model/expectation.rb

Overview

DSL method for creating expectation

Instance Method Summary collapse

Instance Method Details

#at_least(num) ⇒ Object



51
52
53
# File 'lib/mockserver/model/times.rb', line 51

def at_least(num)
  Times.new(remaining_times: num, unlimited: true)
end

#body(value) ⇒ Object

For response object where body can only be a string



36
37
38
# File 'lib/mockserver/model/body.rb', line 36

def body(value)
  value
end


32
33
34
# File 'lib/mockserver/model/cookie.rb', line 32

def cookie(key, value)
  Cookie.new(name: key, value: value)
end

#decode(string) ⇒ Object



39
40
41
# File 'lib/mockserver/model/response.rb', line 39

def decode(string)
  Base64.decode64(string)
end

#delay_by(time_unit, value) ⇒ Object



30
31
32
# File 'lib/mockserver/model/delay.rb', line 30

def delay_by(time_unit, value)
  Delay.new(time_unit: time_unit, value: value)
end

#exact(value) ⇒ Object



40
41
42
# File 'lib/mockserver/model/body.rb', line 40

def exact(value)
  Body.new(type: :STRING, value: value)
end

#exactly(num) ⇒ Object



47
48
49
# File 'lib/mockserver/model/times.rb', line 47

def exactly(num)
  Times.new(remaining_times: num)
end

#expectation {|expectation| ... } ⇒ Object

Yields:



125
126
127
128
129
# File 'lib/mockserver/model/expectation.rb', line 125

def expectation(&_)
  expectation = Expectation.new
  yield expectation if block_given?
  expectation
end

#expectation_from_json(payload) {|expectation| ... } ⇒ Object

Yields:



131
132
133
134
135
136
# File 'lib/mockserver/model/expectation.rb', line 131

def expectation_from_json(payload)
  expectation = Expectation.new
  yield expectation if block_given?
  expectation.populate_from_payload(payload)
  expectation
end

#forward {|obj| ... } ⇒ Object Also known as: http_forward

Yields:

  • (obj)


33
34
35
36
37
# File 'lib/mockserver/model/forward.rb', line 33

def forward(&_)
  obj = Forward.new
  yield obj if block_given?
  obj
end

#header(key, *value) ⇒ Object



39
40
41
# File 'lib/mockserver/model/header.rb', line 39

def header(key, *value)
  Header.new(name: key, values: value)
end

#onceObject



43
44
45
# File 'lib/mockserver/model/times.rb', line 43

def once
  Times.new(remaining_times: 1)
end

#parameter(key, *value) ⇒ Object



39
40
41
# File 'lib/mockserver/model/parameter.rb', line 39

def parameter(key, *value)
  Parameter.new(name: key, values: value)
end

#parameterized(*parameters) ⇒ Object



52
53
54
# File 'lib/mockserver/model/body.rb', line 52

def parameterized(*parameters)
  Body.new(type: :PARAMETERS, parameters: parameters)
end

#regex(value) ⇒ Object



44
45
46
# File 'lib/mockserver/model/body.rb', line 44

def regex(value)
  Body.new(type: :REGEX, value: value)
end

#request(method, path) {|obj| ... } ⇒ Object Also known as: http_request

Yields:

  • (obj)


67
68
69
70
71
# File 'lib/mockserver/model/request.rb', line 67

def request(method, path, &_)
  obj = Request.new(method: method, path: path)
  yield obj if block_given?
  obj
end

#request_from_json(payload) {|request| ... } ⇒ Object

Yields:



73
74
75
76
77
# File 'lib/mockserver/model/request.rb', line 73

def request_from_json(payload)
  request = Request.new(symbolize_keys(payload))
  yield request if block_given?
  request
end

#response {|obj| ... } ⇒ Object Also known as: http_response

Yields:

  • (obj)


33
34
35
36
37
# File 'lib/mockserver/model/response.rb', line 33

def response(&_)
  obj = Response.new
  yield obj if block_given?
  obj
end

#times {|obj| ... } ⇒ Object

Yields:

  • (obj)


55
56
57
58
59
# File 'lib/mockserver/model/times.rb', line 55

def times(&_)
  obj = once
  yield obj if block_given?
  obj
end

#unlimitedObject



39
40
41
# File 'lib/mockserver/model/times.rb', line 39

def unlimited
  Times.new(unlimited: true)
end

#xpath(value) ⇒ Object



48
49
50
# File 'lib/mockserver/model/body.rb', line 48

def xpath(value)
  Body.new(type: :XPATH, value: value)
end