ruby_rabbitmq_janus 1.1.8 → 1.1.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Rakefile +14 -0
- data/config/default.yml +5 -3
- data/config/requests/channel/README.md +29 -0
- data/config/requests/channel/answer.json +13 -0
- data/config/requests/channel/create.json +9 -0
- data/config/requests/channel/describe.json +10 -0
- data/config/requests/channel/destroy.json +10 -0
- data/config/requests/channel/exists.json +10 -0
- data/config/requests/channel/join.json +11 -0
- data/config/requests/channel/leave.json +11 -0
- data/config/requests/channel/list.json +9 -0
- data/config/requests/channel/offer.json +14 -0
- data/config/requests/channel/select.json +11 -0
- data/config/requests/channel/trickle.json +10 -0
- data/config/requests/peer/trickle.json +7 -0
- data/config/requests/videocast/join.json +12 -0
- data/config/requests/videocast/leave.json +11 -0
- data/config/ruby-rabbitmq-janus.yml +27 -0
- data/lib/generators/ruby_rabbitmq_janus/initializer_generator.rb +15 -24
- data/lib/generators/ruby_rabbitmq_janus/install_generator.rb +49 -0
- data/lib/rrj/info.rb +1 -1
- data/lib/rrj/init.rb +0 -2
- data/lib/rrj/rabbit/publish/listener.rb +38 -12
- data/lib/rrj/tools/config.rb +10 -6
- data/lib/rrj/tools/log.rb +5 -5
- data/spec/request/admin/request_handle_info_spec.rb +13 -0
- data/spec/request/admin/request_sessions_spec.rb +12 -0
- data/spec/request/base/request_attach_spec.rb +25 -0
- data/spec/request/base/request_create_spec.rb +17 -0
- data/spec/request/base/request_destroy_spec.rb +17 -0
- data/spec/request/base/request_detach_spec.rb +23 -0
- data/spec/request/base/request_info_spec.rb +17 -0
- data/spec/request/base/request_keepalive_spec.rb +17 -0
- data/spec/request/peer/request_trickle_spec.rb +42 -0
- data/spec/rrj/rrj_config_spec.rb +10 -0
- data/spec/rrj/rrj_log_spec.rb +21 -0
- data/spec/rrj/rrj_rabbitmq_spec.rb +18 -0
- data/spec/rrj/rrj_spec.rb +25 -0
- data/spec/spec_helper.rb +53 -0
- data/spec/support/aruba.rb +3 -0
- data/spec/support/examples.rb +83 -0
- data/spec/support/examples_peer.rb +18 -0
- data/spec/support/schemas/config/config.json +101 -0
- data/spec/support/schemas/config/rabbit.json +13 -0
- data/spec/support/schemas/request/admin/handle_info.json +17 -0
- data/spec/support/schemas/request/admin/sessions.json +13 -0
- data/spec/support/schemas/request/base/attach.json +19 -0
- data/spec/support/schemas/request/base/create.json +17 -0
- data/spec/support/schemas/request/base/destroy.json +13 -0
- data/spec/support/schemas/request/base/detach.json +13 -0
- data/spec/support/schemas/request/base/info.json +25 -0
- data/spec/support/schemas/request/base/keepalive.json +13 -0
- data/spec/support/schemas/request/channel/create.json +39 -0
- data/spec/support/schemas/request/channel/destroy.json +39 -0
- data/spec/support/schemas/request/channel/exist.json +41 -0
- data/spec/support/schemas/request/channel/list.json +37 -0
- data/spec/support/schemas/request/peer/trickle.json +21 -0
- metadata +57 -32
- data/.gitignore +0 -77
- data/.overcommit.yml +0 -12
- data/.reek +0 -7
- data/.rspec +0 -2
- data/.rubocop.yml +0 -12
- data/.travis.yml +0 -5
- data/.yardopts +0 -5
- data/CHANGELOG.md +0 -27
- data/CODE_OF_CONDUCT.md +0 -49
- data/README.md +0 -177
- data/rrj.gemspec +0 -41
data/lib/rrj/tools/config.rb
CHANGED
@@ -9,14 +9,18 @@ module RubyRabbitmqJanus
|
|
9
9
|
|
10
10
|
attr_reader :options
|
11
11
|
|
12
|
-
# Define
|
13
|
-
|
12
|
+
# Define HOME RRJ
|
13
|
+
RRJ_HOME = File.realpath(File.join(File.dirname(__FILE__),
|
14
|
+
'..', '..', '..'))
|
14
15
|
|
15
16
|
# Define a default name to file configuration
|
16
|
-
|
17
|
+
CONF_DEFAULT = 'config/default.yml'
|
17
18
|
|
18
19
|
# Define a default override file configuration
|
19
|
-
|
20
|
+
CONF_CUSTOM = 'config/ruby-rabbitmq-janus.yml'
|
21
|
+
|
22
|
+
# Define a default path to file configuration
|
23
|
+
PATH_DEFAULT = File.join(RRJ_HOME, CONF_DEFAULT)
|
20
24
|
|
21
25
|
# Initialize configuration file default or customize if exist
|
22
26
|
def initialize
|
@@ -40,13 +44,13 @@ module RubyRabbitmqJanus
|
|
40
44
|
|
41
45
|
# Load customize configuration file if exist
|
42
46
|
def conf_customize
|
43
|
-
file = File.join(Dir.pwd,
|
47
|
+
file = File.join(Dir.pwd, CONF_CUSTOM)
|
44
48
|
@options = load_configuration(file) if File.exist?(file)
|
45
49
|
end
|
46
50
|
|
47
51
|
# Load default configuration if customize configuration doesn't exist
|
48
52
|
def conf_default
|
49
|
-
file =
|
53
|
+
file = PATH_DEFAULT
|
50
54
|
@options ||= load_configuration(file)
|
51
55
|
end
|
52
56
|
|
data/lib/rrj/tools/log.rb
CHANGED
@@ -40,31 +40,31 @@ module RubyRabbitmqJanus
|
|
40
40
|
# Write a message in log with a FATAL level
|
41
41
|
# @param message [String] Message writing in warning level in log
|
42
42
|
def fatal(message)
|
43
|
-
write_tag { @logs.fatal(message
|
43
|
+
write_tag { @logs.fatal(message) } if test_level?(Logger::FATAL)
|
44
44
|
end
|
45
45
|
|
46
46
|
# Write a message in log with a ERROR level
|
47
47
|
# @param message [String] Message writing in warning level in log
|
48
48
|
def error(message)
|
49
|
-
write_tag { @logs.error(message
|
49
|
+
write_tag { @logs.error(message) } if test_level?(Logger::ERROR)
|
50
50
|
end
|
51
51
|
|
52
52
|
# Write a message in log with a warn level
|
53
53
|
# @param message [String] Message writing in warning level in log
|
54
54
|
def warn(message)
|
55
|
-
write_tag { @logs.warn(message
|
55
|
+
write_tag { @logs.warn(message) } if test_level?(Logger::WARN)
|
56
56
|
end
|
57
57
|
|
58
58
|
# Write a message in log with a info level
|
59
59
|
# @param message [String] Message writing in info level in log
|
60
60
|
def info(message)
|
61
|
-
write_tag { @logs.info(message
|
61
|
+
write_tag { @logs.info(message) } if test_level?(Logger::INFO)
|
62
62
|
end
|
63
63
|
|
64
64
|
# Write a message in log with a debug level
|
65
65
|
# @param message [String] Message writing in debug level in log
|
66
66
|
def debug(message)
|
67
|
-
write_tag { @logs.debug(message
|
67
|
+
write_tag { @logs.debug(message) } if test_level?(Logger::DEBUG)
|
68
68
|
end
|
69
69
|
|
70
70
|
# Return instance logger
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe 'RubyRabbitmqJanus::RRJ -- message type handle_info' do
|
6
|
+
before(:example) { @type = 'admin::handle_info' }
|
7
|
+
|
8
|
+
describe '#message_admin', type: :request, level: :admin, name: :handle_info do
|
9
|
+
include_examples 'message_handle_admin should match json schema'
|
10
|
+
end
|
11
|
+
|
12
|
+
# after(:example) { @gateway.stop_handle }
|
13
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe 'RubyRabbitmqJanus::RRJ -- message type sessions' do
|
6
|
+
before(:example) { @type = 'admin::sessions' }
|
7
|
+
|
8
|
+
describe '#message_admin', type: :request, level: :admin, name: :sessions,
|
9
|
+
broken: true do
|
10
|
+
include_examples 'message_admin should match json schema'
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe 'RubyRabbitmqJanus::RRJ -- message type attach' do
|
6
|
+
before(:example) { @type = 'base::attach' }
|
7
|
+
|
8
|
+
describe '#message_handle', type: :request, level: :base, name: :attach do
|
9
|
+
context 'when queue is exclusive' do
|
10
|
+
it_behaves_like 'message_handle should match json schema' do
|
11
|
+
let(:replace) { {} }
|
12
|
+
let(:add) { {} }
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
context 'when queue is not exclusive' do
|
17
|
+
it_behaves_like 'message_handle should match json empty' do
|
18
|
+
let(:replace) { {} }
|
19
|
+
let(:add) { {} }
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
after(:example) { @gateway.stop_handle }
|
25
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe 'RubyRabbitmqJanus::RRJ -- message type create' do
|
6
|
+
before(:example) { @type = 'base::create' }
|
7
|
+
|
8
|
+
describe '#message_simple', type: :request, level: :base, name: :create do
|
9
|
+
context 'when queue is exclusive' do
|
10
|
+
include_examples 'message_simple should match json schema'
|
11
|
+
end
|
12
|
+
|
13
|
+
context 'when queue is not exclusive' do
|
14
|
+
include_examples 'message_simple should match json empty'
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe 'RubyRabbitmqJanus::RRJ -- message type destroy' do
|
6
|
+
before(:example) { @type = 'base::destroy' }
|
7
|
+
|
8
|
+
describe '#message_session', type: :request, level: :base, name: :destroy do
|
9
|
+
context 'when queue is exclusive' do
|
10
|
+
include_examples 'message_session should match json schema'
|
11
|
+
end
|
12
|
+
|
13
|
+
context 'when queue is not exclusive' do
|
14
|
+
include_examples 'message_session should match json empty'
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe 'RubyRabbitmqJanus::RRJ -- mesage type detach' do
|
6
|
+
before(:example) { @type = 'base::detach' }
|
7
|
+
|
8
|
+
describe '#message_handle', type: :request, level: :base, name: :detach do
|
9
|
+
context 'when queue is exclusive' do
|
10
|
+
it_behaves_like 'message_handle should match json schema' do
|
11
|
+
let(:replace) { {} }
|
12
|
+
let(:add) { {} }
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
context 'when queue is not exclusive' do
|
17
|
+
it_behaves_like 'message_handle should match json empty' do
|
18
|
+
let(:replace) { {} }
|
19
|
+
let(:add) { {} }
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe 'RubyRabbitmqJanus::RRJ -- message type info' do
|
6
|
+
before(:example) { @type = 'base::info' }
|
7
|
+
|
8
|
+
describe '#message_simple', type: :request, level: :base, name: :info do
|
9
|
+
context 'when queue is exclusive' do
|
10
|
+
include_examples 'message_simple should match json schema'
|
11
|
+
end
|
12
|
+
|
13
|
+
context 'when queue is not exclusive' do
|
14
|
+
include_examples 'message_simple should match json empty'
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe 'RubyRabbitmqJanus::RRJ -- message type keepalive' do
|
6
|
+
before(:example) { @type = 'base::keepalive' }
|
7
|
+
|
8
|
+
describe '#message_session', type: :request, level: :base, name: :keepalive do
|
9
|
+
context 'when queue is exclusive' do
|
10
|
+
include_examples 'message_session should match json schema'
|
11
|
+
end
|
12
|
+
|
13
|
+
context 'when queue is not exclusive' do
|
14
|
+
include_examples 'message_session should match json empty'
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
# describe 'RubyRabbitmqJanus::RRJ -- message type trickle' do
|
6
|
+
describe 'RubyRabbitmqJanus::RRJ -- message type trickle', broken: true do
|
7
|
+
before(:example) { @type = 'peer::trickle' }
|
8
|
+
|
9
|
+
describe '#message_handle', type: :request, level: :peer, name: :trickle do
|
10
|
+
let(:cdd) { { 'sdpMid' => 'video', 'sdpMLineIndex' => 1, 'candidate' => '...' } }
|
11
|
+
let(:candidate) { { 'candidate' => cdd } }
|
12
|
+
let(:candidates) { { 'candidates' => [cdd, cdd] } }
|
13
|
+
|
14
|
+
context 'when queue is exclusive and send 1 candidate' do
|
15
|
+
it_behaves_like 'message_handle should match json schema' do
|
16
|
+
let(:replace) { candidate }
|
17
|
+
let(:add) { {} }
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
context 'when queue is not exclusive and send 1 candidate' do
|
22
|
+
it_behaves_like 'message_handle should match json empty' do
|
23
|
+
let(:replace) { candidate }
|
24
|
+
let(:add) { {} }
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
context 'when queue is exclusive and send 1 candidate' do
|
29
|
+
it_behaves_like 'message_handle should match json schema' do
|
30
|
+
let(:replace) { candidates }
|
31
|
+
let(:add) { {} }
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
context 'when queue is exclusive and send many candidates' do
|
36
|
+
it_behaves_like 'message_handle should match json empty' do
|
37
|
+
let(:replace) { candidates }
|
38
|
+
let(:add) { {} }
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe 'RubyRabbitmqJanus::Config', type: :config, name: :config do
|
6
|
+
it 'Configuration is corectly loading' do
|
7
|
+
expect(RubyRabbitmqJanus::Tools::Config.instance.options).to \
|
8
|
+
match_json_schema(:config)
|
9
|
+
end
|
10
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe 'RubyRabbitmqJanus::Log', type: :config, name: :log do
|
6
|
+
it 'Log instance is correctly loading' do
|
7
|
+
expect(RubyRabbitmqJanus::Tools::Log.instance).not_to be nil
|
8
|
+
end
|
9
|
+
|
10
|
+
it 'Default level log is DEBUG' do
|
11
|
+
# 0 = debug
|
12
|
+
# ...
|
13
|
+
# 5 = unknown
|
14
|
+
expect(RubyRabbitmqJanus::Tools::Log.instance.level).to eq 1
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'Default progname is RubyRabbitmqJanus' do
|
18
|
+
expect(RubyRabbitmqJanus::Tools::Log.instance.progname).to \
|
19
|
+
eq RubyRabbitmqJanus.name
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe 'RubyRabbitmqJanus::RabitMQ', type: :config, name: :rabbit do
|
6
|
+
it 'Start connection with RabbitMQ server' do
|
7
|
+
expect(RubyRabbitmqJanus::Rabbit::Connect.new.start.class).to eq Bunny::Session
|
8
|
+
end
|
9
|
+
|
10
|
+
it 'Close connection with RabbitMQ Server' do
|
11
|
+
expect(RubyRabbitmqJanus::Rabbit::Connect.new.close).to eq :closed
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'Propertie to message sending in rabbit' do
|
15
|
+
expect(RubyRabbitmqJanus::Rabbit::Propertie.new.options).to \
|
16
|
+
match_json_schema(:rabbit)
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe 'RubyRabbitmqJanus::RRJ', type: :config, name: :describe do
|
6
|
+
it 'Has a version number' do
|
7
|
+
expect(RubyRabbitmqJanus::VERSION).not_to be nil
|
8
|
+
end
|
9
|
+
|
10
|
+
it 'Has a description' do
|
11
|
+
expect(RubyRabbitmqJanus::DESCRIPTION).not_to be nil
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'Has a summary description' do
|
15
|
+
expect(RubyRabbitmqJanus::SUMMARY).not_to be nil
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'Has a homepage' do
|
19
|
+
expect(RubyRabbitmqJanus::HOMEPAGE).not_to be nil
|
20
|
+
end
|
21
|
+
|
22
|
+
it 'Has a post install message' do
|
23
|
+
expect(RubyRabbitmqJanus::POST_INSTALL).not_to be nil
|
24
|
+
end
|
25
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,53 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'bundler/setup'
|
4
|
+
require 'ruby_rabbitmq_janus'
|
5
|
+
require 'pry'
|
6
|
+
require 'json-schema-rspec'
|
7
|
+
|
8
|
+
$LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
|
9
|
+
|
10
|
+
Dir['spec/support/**/*.rb'].each do |f|
|
11
|
+
require File.expand_path(f)
|
12
|
+
end
|
13
|
+
|
14
|
+
::Dir.glob(::File.expand_path('../support/**/*.rb', __FILE__)).each do |f|
|
15
|
+
require_relative f
|
16
|
+
end
|
17
|
+
|
18
|
+
RSpec.configure do |config|
|
19
|
+
config.expect_with :rspec do |c|
|
20
|
+
c.syntax = :expect
|
21
|
+
end
|
22
|
+
config.include Aruba::Api
|
23
|
+
config.include JSON::SchemaMatchers
|
24
|
+
|
25
|
+
# Add JSONs for gem configuration test
|
26
|
+
Dir[File.join('spec/support/schemas/config/', '*.json')].count do |file|
|
27
|
+
json_file = JSON.parse(File.read(file))
|
28
|
+
json_name = File.basename(file, '.json').to_sym
|
29
|
+
config.json_schemas[json_name] = json_file
|
30
|
+
end
|
31
|
+
|
32
|
+
# Add JSONs for request result test
|
33
|
+
Dir[File.join('spec/support/schemas/request/*/', '*.json')].count do |file|
|
34
|
+
json_file = JSON.parse(File.read(file))
|
35
|
+
json_type = File.dirname(file).split('/').last
|
36
|
+
json_name = File.basename(file, '.json').to_sym
|
37
|
+
json_index = "#{json_type}::#{json_name}"
|
38
|
+
config.json_schemas[json_index] = json_file
|
39
|
+
end
|
40
|
+
|
41
|
+
# Configure requests test before sending request
|
42
|
+
config.before(:example) do
|
43
|
+
Singleton.__init__(RubyRabbitmqJanus::Tools::Env)
|
44
|
+
Singleton.__init__(RubyRabbitmqJanus::Tools::Log)
|
45
|
+
Singleton.__init__(RubyRabbitmqJanus::Tools::Config)
|
46
|
+
Singleton.__init__(RubyRabbitmqJanus::Tools::Requests)
|
47
|
+
Singleton.__init__(RubyRabbitmqJanus::Janus::Concurrencies::Keepalive)
|
48
|
+
@gateway = RubyRabbitmqJanus::RRJ.new
|
49
|
+
end
|
50
|
+
|
51
|
+
# Exclude request with tag broken
|
52
|
+
config.filter_run_excluding broken: true
|
53
|
+
end
|
@@ -0,0 +1,83 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Simple request
|
4
|
+
shared_examples 'message_simple should match json empty' do
|
5
|
+
let(:message) { @gateway.message_simple(@type) }
|
6
|
+
|
7
|
+
it 'should match JSON empty' do
|
8
|
+
expect(message.to_json).to eq('{}')
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
shared_examples 'message_simple should match json schema' do
|
13
|
+
let(:message) { @gateway.message_simple(@type, true) }
|
14
|
+
|
15
|
+
it do
|
16
|
+
expect(message.to_json).to match_json_schema(@type)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
# Session request
|
21
|
+
shared_examples 'message_session should match json empty' do
|
22
|
+
let(:message) { @gateway.message_session(@type, {}, false) }
|
23
|
+
|
24
|
+
it 'should match JSON empty' do
|
25
|
+
expect(message.to_json).to eq('{}')
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
shared_examples 'message_session should match json schema' do
|
30
|
+
let(:message) { @gateway.message_session(@type) }
|
31
|
+
|
32
|
+
it do
|
33
|
+
expect(message.to_json).to match_json_schema(@type)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
# Handle request
|
38
|
+
shared_examples 'message_handle should match json schema' do
|
39
|
+
let(:replace) { replace }
|
40
|
+
let(:add) { add }
|
41
|
+
let(:message) { @gateway.message_handle(@type, replace, add) }
|
42
|
+
|
43
|
+
it do
|
44
|
+
@gateway.start_handle(true) do
|
45
|
+
expect(message.to_json).to match_json_schema(@type)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
shared_examples 'message_handle should match json empty' do
|
51
|
+
let(:replace) { replace }
|
52
|
+
let(:add) { add }
|
53
|
+
let(:message) { @gateway.message_handle(@type, replace, add) }
|
54
|
+
|
55
|
+
it do
|
56
|
+
@gateway.start_handle(false) do
|
57
|
+
expect(message.to_json).to eq('{}')
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
# Handle admin
|
63
|
+
shared_examples 'message_handle_admin should match json schema' do
|
64
|
+
let(:message) do
|
65
|
+
@gateway.start_handle_admin do
|
66
|
+
@gateway.message_handle(@type)
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
it do
|
71
|
+
expect(message.to_json).to match_json_schema(@type)
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
shared_examples 'message_admin should match json schema' do
|
76
|
+
let(:message) do
|
77
|
+
@gateway.message_admin(@type)
|
78
|
+
end
|
79
|
+
|
80
|
+
it do
|
81
|
+
expect(message.to_json).to match_json_schema(@type)
|
82
|
+
end
|
83
|
+
end
|