class Mountebank::Imposter
Constants
- CREATE_PARAMS_HTTP
- CREATE_PARAMS_HTTPS
- CREATE_PARAMS_SMTP
- CREATE_PARAMS_TCP
- PROTOCOLS
- PROTOCOL_HTTP
- PROTOCOL_HTTPS
- PROTOCOL_SMTP
- PROTOCOL_TCP
Attributes
matches[R]
mode[R]
name[R]
port[R]
protocol[R]
record_requests[R]
requests[R]
stubs[R]
Public Class Methods
build(port, protocol=PROTOCOL_HTTP, options={})
click to toggle source
# File lib/mountebank/imposter.rb, line 26 def self.build(port, protocol=PROTOCOL_HTTP, options={}) raise 'Invalid port number' unless port.is_a? Integer raise 'Invalid protocol' unless PROTOCOLS.include?(protocol) data = {port: port, protocol: protocol}.merge(options) Mountebank::Imposter.new(data) end
create(port, protocol=PROTOCOL_HTTP, options={})
click to toggle source
# File lib/mountebank/imposter.rb, line 42 def self.create(port, protocol=PROTOCOL_HTTP, options={}) self.build(port, protocol, options).save! end
delete(port)
click to toggle source
# File lib/mountebank/imposter.rb, line 59 def self.delete(port) response = Network.delete("/imposters/#{port}") response.success? && !response.body.empty? end
find(port)
click to toggle source
# File lib/mountebank/imposter.rb, line 52 def self.find(port) imposter_data = Imposter.get_imposter_config(port) return Mountebank::Imposter.new(imposter_data) unless imposter_data.empty? false end
find_all()
click to toggle source
# File lib/mountebank/imposter.rb, line 46 def self.find_all response = Network.get("/imposters") list = response.success? ? response.body[:imposters] : [] list.map { |i| Mountebank::Imposter.new(i) } end
new(data={})
click to toggle source
# File lib/mountebank/imposter.rb, line 22 def initialize(data={}) set_attributes(data) end
Private Class Methods
get_imposter_config(port)
click to toggle source
# File lib/mountebank/imposter.rb, line 118 def self.get_imposter_config(port) response = Network.get("/imposters/#{port}") response.success? ? response.body : [] end
Public Instance Methods
add_stub(response=nil, predicate=nil)
click to toggle source
# File lib/mountebank/imposter.rb, line 75 def add_stub(response=nil, predicate=nil) responses, predicates = [], [] if response.is_a? Array responses = response elsif response.is_a? Mountebank::Stub::Response responses << response end if predicate.is_a? Array predicates = predicate elsif predicate.is_a? Mountebank::Stub::Predicate predicates << predicate end @stubs << Mountebank::Stub.create(responses, predicates) end
delete!()
click to toggle source
# File lib/mountebank/imposter.rb, line 64 def delete! Imposter.delete(@port) end
reload()
click to toggle source
# File lib/mountebank/imposter.rb, line 68 def reload data = Imposter.get_imposter_config(@port) set_attributes(data) unless data.empty? self end
replayable_data()
click to toggle source
# File lib/mountebank/imposter.rb, line 93 def replayable_data data = serializable_hash data.delete(:requests) data.delete(:matches) data end
save!()
click to toggle source
# File lib/mountebank/imposter.rb, line 34 def save! delete! response = Network.post('/imposters', replayable_data) return reload if response.success? false end
to_json(*args)
click to toggle source
# File lib/mountebank/imposter.rb, line 101 def to_json(*args) serializable_hash.to_json(*args) end
Private Instance Methods
serializable_hash()
click to toggle source
# File lib/mountebank/imposter.rb, line 107 def serializable_hash data = {port: @port, protocol: @protocol, name: @name} data[:stubs] = @stubs unless @stubs.empty? data[:requests] = @requests unless @requests.empty? data[:matches] = @matches unless @matches.empty? data[:mode] = @mode unless @mode.nil? data[:recordRequests] = @record_requests unless @record_requests.nil? data end
set_attributes(data)
click to toggle source
# File lib/mountebank/imposter.rb, line 123 def set_attributes(data) @port = data[:port] @protocol = data[:protocol] @name = data[:name] || "imposter_#{@port}" @stubs = [] if data[:stubs].respond_to?(:each) data[:stubs].each do |stub| stub = Mountebank::Stub.new(stub) unless stub.is_a? Mountebank::Stub @stubs << stub end end @requests = data[:requests] || [] @matches = data[:matches] || [] @mode = data[:mode] || nil @record_requests = data[:record_requests] || data[:recordRequests] || false end