Class: Factor::Connector::ServiceInstance
- Inherits:
-
Instance
- Object
- Instance
- Factor::Connector::ServiceInstance
show all
- Includes:
- RSpec
- Defined in:
- lib/factor-connector-api/test.rb,
lib/instances/service_instance.rb
Instance Attribute Summary collapse
Attributes inherited from Instance
#instance_id
Instance Method Summary
collapse
Methods inherited from Instance
#debug, #error, #id, #info, #log, #respond, #warn
Constructor Details
Returns a new instance of ServiceInstance.
22
23
24
25
26
27
|
# File 'lib/instances/service_instance.rb', line 22
def initialize(options = {})
@listener_instances = {}
@action_instances = {}
@instance_id = SecureRandom.hex
super(options)
end
|
Instance Attribute Details
#action_instances ⇒ Object
Returns the value of attribute action_instances.
20
21
22
|
# File 'lib/instances/service_instance.rb', line 20
def action_instances
@action_instances
end
|
#callback ⇒ Object
Returns the value of attribute callback.
20
21
22
|
# File 'lib/instances/service_instance.rb', line 20
def callback
@callback
end
|
#definition ⇒ Object
Returns the value of attribute definition.
20
21
22
|
# File 'lib/instances/service_instance.rb', line 20
def definition
@definition
end
|
#listener_instances ⇒ Object
Returns the value of attribute listener_instances.
20
21
22
|
# File 'lib/instances/service_instance.rb', line 20
def listener_instances
@listener_instances
end
|
#step_data ⇒ Object
Returns the value of attribute step_data.
20
21
22
|
# File 'lib/instances/service_instance.rb', line 20
def step_data
@step_data
end
|
Instance Method Details
#call_action(action_id, params) ⇒ Object
34
35
36
37
38
39
40
41
42
|
# File 'lib/instances/service_instance.rb', line 34
def call_action(action_id,params)
action_instance = ActionInstance.new
action_instance.service_id = self.id
action_instance.instance_id = @instance_id
action_instance.definition = @definition.actions[action_id]
action_instance.callback = @callback
action_instances[action_id] = action_instance
action_instance.async.start(params)
end
|
#call_hook(listener_id, hook_id, data, request, response) ⇒ Object
29
30
31
32
|
# File 'lib/instances/service_instance.rb', line 29
def call_hook(listener_id,hook_id,data,request,response)
listener_instance = @listener_instances[listener_id]
listener_instance.async.call_web_hook(hook_id,data,request,response)
end
|
#expect_error(options = {}) ⇒ Object
49
50
51
52
53
54
|
# File 'lib/factor-connector-api/test.rb', line 49
def expect_error(options={})
expect_response(options) do |log|
logs_present = log[:type]=='log' && log[:status]=='error'
options[:message] ? log[:message] == options[:message] : logs_present
end
end
|
#expect_fail(options = {}) ⇒ Object
29
30
31
32
33
|
# File 'lib/factor-connector-api/test.rb', line 29
def expect_fail(options={})
expect_response(options) do |log|
log[:type]=='fail'
end
end
|
#expect_info(options = {}) ⇒ Object
35
36
37
38
39
40
|
# File 'lib/factor-connector-api/test.rb', line 35
def expect_info(options={})
expect_response(options) do |log|
logs_present = log[:type]=='log' && log[:status]=='info'
options[:message] ? log[:message] == options[:message] : logs_present
end
end
|
#expect_response(options = {}, &block) ⇒ Object
15
16
17
18
19
20
21
|
# File 'lib/factor-connector-api/test.rb', line 15
def expect_response(options={}, &block)
Wrong::eventually options do
@logs.any? do |log|
block.call(log)
end
end
end
|
#expect_return(options = {}) ⇒ Object
23
24
25
26
27
|
# File 'lib/factor-connector-api/test.rb', line 23
def expect_return(options={})
expect_response(options) do |log|
log[:type]=='return' && log[:payload]
end
end
|
#expect_warn(options = {}) ⇒ Object
42
43
44
45
46
47
|
# File 'lib/factor-connector-api/test.rb', line 42
def expect_warn(options={})
expect_response(options) do |log|
logs_present = log[:type]=='log' && log[:status]=='warn'
options[:message] ? log[:message] == options[:message] : logs_present
end
end
|
#has_action?(action_id) ⇒ Boolean
72
73
74
|
# File 'lib/instances/service_instance.rb', line 72
def has_action?(action_id)
@definition.actions.include?(action_id)
end
|
#has_listener?(listener_id) ⇒ Boolean
76
77
78
|
# File 'lib/instances/service_instance.rb', line 76
def has_listener?(listener_id)
@definition.listeners.include?(listener_id)
end
|
#start_listener(listener_id, params) ⇒ Object
44
45
46
47
48
49
50
51
52
|
# File 'lib/instances/service_instance.rb', line 44
def start_listener(listener_id,params)
listener_instance = ListenerInstance.new
listener_instance.service_id = self.id
listener_instance.instance_id = @instance_id
listener_instance.definition = @definition.listeners[listener_id]
listener_instance.callback = @callback
@listener_instances[listener_id]=listener_instance
listener_instance.async.start(params)
end
|
#stop_action(action_id) ⇒ Object
65
66
67
68
69
70
|
# File 'lib/instances/service_instance.rb', line 65
def stop_action(action_id)
if @action_instances[action_id]
@action_instances[action_id].terminate
@action_instances.delete action_id
end
end
|
#stop_listener(listener_id) ⇒ Object
54
55
56
57
58
59
60
61
62
63
|
# File 'lib/instances/service_instance.rb', line 54
def stop_listener(listener_id)
if !@listener_instances[listener_id]
warn "Listener isn't running, no need to stop"
respond type:'stopped'
else
@listener_instances[listener_id].stop
@listener_instances[listener_id].terminate
@listener_instances.delete listener_id
end
end
|
#test_action(action_name, params = {}, &block) ⇒ Object
56
57
58
59
60
61
62
63
64
65
|
# File 'lib/factor-connector-api/test.rb', line 56
def test_action(action_name, params={}, &block)
@logs = []
self.callback = proc do |action_response|
@logs << action_response
end
call_action('list',params)
instance_exec &block
end
|