ruby_rabbitmq_janus 1.2.9 → 2.0.0.pre.42

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.
Files changed (118) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +2 -0
  3. data/README.md +145 -32
  4. data/config/default.yml +2 -0
  5. data/config/requests.md +2 -1
  6. data/config/requests/admin/add_token.json +6 -0
  7. data/config/requests/admin/allow_token.json +6 -0
  8. data/config/requests/admin/disallow_token.json +6 -0
  9. data/config/requests/admin/handle_info.json +1 -1
  10. data/config/requests/admin/handles.json +1 -1
  11. data/config/requests/admin/remove_token.json +6 -0
  12. data/config/requests/admin/sessions.json +1 -1
  13. data/config/requests/admin/set_locking_debug.json +6 -0
  14. data/config/requests/admin/{log_level.json → set_log_level.json} +1 -1
  15. data/config/requests/admin/tokens.json +5 -0
  16. data/config/requests/base/attach.json +1 -1
  17. data/config/requests/base/create.json +1 -1
  18. data/config/requests/base/destroy.json +1 -1
  19. data/config/requests/base/detach.json +1 -1
  20. data/config/requests/base/info.json +1 -1
  21. data/config/requests/base/keepalive.json +1 -1
  22. data/config/requests/peer/answer.json +1 -1
  23. data/config/requests/peer/offer.json +1 -1
  24. data/config/requests/peer/trickle.json +1 -1
  25. data/lib/generators/ruby_rabbitmq_janus/initializer_generator.rb +3 -0
  26. data/lib/rrj/admin.rb +34 -0
  27. data/lib/rrj/errors/error.rb +2 -1
  28. data/lib/rrj/errors/init.rb +6 -0
  29. data/lib/rrj/errors/janus/janus.rb +1 -0
  30. data/lib/rrj/errors/janus/janus_message.rb +8 -4
  31. data/lib/rrj/errors/janus/janus_processus_keepalive.rb +1 -0
  32. data/lib/rrj/errors/janus/janus_response.rb +27 -6
  33. data/lib/rrj/errors/janus/janus_transaction.rb +4 -0
  34. data/lib/rrj/errors/rabbit/rabbit.rb +3 -1
  35. data/lib/rrj/errors/tools/config.rb +1 -0
  36. data/lib/rrj/info.rb +1 -1
  37. data/lib/rrj/init.rb +37 -169
  38. data/lib/rrj/janus/messages/admin.rb +1 -2
  39. data/lib/rrj/janus/messages/message.rb +4 -4
  40. data/lib/rrj/janus/messages/standard.rb +3 -5
  41. data/lib/rrj/janus/processus/concurrency.rb +1 -1
  42. data/lib/rrj/janus/processus/keepalive.rb +10 -4
  43. data/lib/rrj/janus/responses/admin.rb +31 -0
  44. data/lib/rrj/janus/responses/event.rb +23 -5
  45. data/lib/rrj/janus/responses/response.rb +2 -0
  46. data/lib/rrj/janus/responses/standard.rb +26 -5
  47. data/lib/rrj/janus/transactions/admin.rb +22 -26
  48. data/lib/rrj/janus/transactions/handle.rb +13 -8
  49. data/lib/rrj/janus/transactions/session.rb +25 -7
  50. data/lib/rrj/janus/transactions/transaction.rb +2 -1
  51. data/lib/rrj/rabbit/connect.rb +2 -3
  52. data/lib/rrj/rabbit/publish/admin.rb +1 -6
  53. data/lib/rrj/rabbit/publish/base_publisher.rb +6 -11
  54. data/lib/rrj/rabbit/publish/exclusive.rb +1 -0
  55. data/lib/rrj/rabbit/publish/listener.rb +10 -27
  56. data/lib/rrj/rabbit/publish/non_exclusive.rb +2 -6
  57. data/lib/rrj/rabbit/publish/publisher.rb +4 -17
  58. data/lib/rrj/tools/{config.rb → gem/config.rb} +5 -5
  59. data/lib/rrj/tools/{log.rb → gem/log.rb} +21 -6
  60. data/lib/rrj/tools/gem/option.rb +57 -0
  61. data/lib/rrj/tools/{requests.rb → gem/requests.rb} +0 -0
  62. data/lib/rrj/tools/replaces/admin.rb +7 -13
  63. data/lib/rrj/tools/replaces/handle.rb +61 -0
  64. data/lib/rrj/tools/replaces/replace.rb +57 -27
  65. data/lib/rrj/tools/replaces/session.rb +34 -0
  66. data/lib/rrj/tools/replaces/type.rb +63 -11
  67. data/lib/rrj/tools/tools.rb +4 -3
  68. data/lib/ruby_rabbitmq_janus.rb +1 -0
  69. data/spec/request/admin/request_handle_info_spec.rb +13 -7
  70. data/spec/request/admin/request_handles_spec.rb +20 -0
  71. data/spec/request/admin/request_sessions_spec.rb +5 -4
  72. data/spec/request/admin/request_set_locking_debug_spec.rb +16 -0
  73. data/spec/request/admin/request_set_log_level_spec.rb +16 -0
  74. data/spec/request/admin/request_tokens_spec.rb +13 -0
  75. data/spec/request/base/request_attach_spec.rb +6 -9
  76. data/spec/request/base/request_create_spec.rb +5 -3
  77. data/spec/request/base/request_destroy_spec.rb +5 -3
  78. data/spec/request/base/request_detach_spec.rb +6 -7
  79. data/spec/request/base/request_info_spec.rb +5 -3
  80. data/spec/request/base/request_keepalive_spec.rb +5 -3
  81. data/spec/request/peer/request_offer_spec.rb +18 -92
  82. data/spec/request/peer/request_trickle_spec.rb +9 -28
  83. data/spec/request/peer/request_trickles_spec.rb +23 -0
  84. data/spec/rrj/responses/responses_admin_spec.rb +39 -0
  85. data/spec/rrj/responses/responses_event_spec.rb +25 -0
  86. data/spec/rrj/responses/responses_response_spec.rb +31 -0
  87. data/spec/rrj/responses/responses_standard_spec.rb +43 -0
  88. data/spec/rrj/rrj_config_spec.rb +7 -7
  89. data/spec/rrj/rrj_rabbitmq_spec.rb +1 -1
  90. data/spec/rrj/tools/replace_admin_spec.rb +86 -0
  91. data/spec/rrj/tools/replace_handle_spec.rb +78 -0
  92. data/spec/rrj/tools/replace_session_spec.rb +66 -0
  93. data/spec/rrj/tools/replace_spec.rb +69 -0
  94. data/spec/rrj/tools/type_spec.rb +150 -0
  95. data/spec/spec_helper.rb +46 -7
  96. data/spec/support/examples_request.rb +33 -61
  97. data/spec/support/examples_response.rb +30 -0
  98. data/spec/support/schemas/request/admin/handles.json +15 -0
  99. data/spec/support/schemas/request/admin/set_locking_debug.json +13 -0
  100. data/spec/support/schemas/request/admin/set_log_level.json +11 -0
  101. data/spec/support/schemas/request/admin/tokens.json +13 -0
  102. data/spec/support/type.rb +66 -0
  103. metadata +41 -69
  104. data/config/requests/peer/trickles.json +0 -7
  105. data/lib/rrj/tools/replaces/standard.rb +0 -101
  106. data/spec/fixtures/config/requests/admin/handle_info.json +0 -3
  107. data/spec/fixtures/config/requests/admin/handles.json +0 -3
  108. data/spec/fixtures/config/requests/admin/log_level.json +0 -3
  109. data/spec/fixtures/config/requests/admin/sessions.json +0 -3
  110. data/spec/fixtures/config/requests/base/attach.json +0 -3
  111. data/spec/fixtures/config/requests/base/create.json +0 -4
  112. data/spec/fixtures/config/requests/base/destroy.json +0 -3
  113. data/spec/fixtures/config/requests/base/detach.json +0 -3
  114. data/spec/fixtures/config/requests/base/info.json +0 -3
  115. data/spec/fixtures/config/requests/base/keepalive.json +0 -3
  116. data/spec/fixtures/config/requests/peer/answer.json +0 -3
  117. data/spec/fixtures/config/requests/peer/offer.json +0 -3
  118. data/spec/fixtures/config/requests/peer/trickle.json +0 -3
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ describe RubyRabbitmqJanus::Janus::Responses::Standard, type: :responses,
6
+ name: :standard do
7
+ let(:message) do
8
+ @gateway.start_transaction do |transaction|
9
+ @response = transaction.publish_message(type)
10
+ end
11
+ end
12
+
13
+ context 'just session' do
14
+ describe '#session' do
15
+ let(:type) { 'base::create' }
16
+ let(:response) { @response.session }
17
+
18
+ include_examples 'response is', Integer
19
+ end
20
+
21
+ describe '#sender' do
22
+ let(:type) { 'base::create' }
23
+ let(:response) { @response.sender }
24
+
25
+ include_examples 'response is', Integer
26
+ end
27
+ end
28
+
29
+ context 'session and sender' do
30
+ before(:example) do
31
+ @gateway.start_transaction do |transaction|
32
+ @response = transaction.publish_message('base::create')
33
+ end
34
+ end
35
+
36
+ describe '#session_id' do
37
+ let(:type) { 'base::attach' }
38
+ let(:response) { @response.session_id }
39
+
40
+ include_examples 'response with sender is', Integer
41
+ end
42
+ end
43
+ end
@@ -13,7 +13,7 @@ describe RubyRabbitmqJanus::Tools::Config, type: :config, name: :config do
13
13
  expect(@cfg.ttl).to be_a(Integer)
14
14
  end
15
15
 
16
- it 'When janus/session/keepalive default value is loading' do
16
+ it 'When janus/session/keepalive default value is 55' do
17
17
  expect(@cfg.ttl).to eq 55
18
18
  end
19
19
 
@@ -21,7 +21,7 @@ describe RubyRabbitmqJanus::Tools::Config, type: :config, name: :config do
21
21
  expect(@cfg.plugin_at).to be_a(String)
22
22
  end
23
23
 
24
- it 'When janus/plugins/0 default value is loading' do
24
+ it 'When janus/plugins/0 default value is janus.plugin.echotest' do
25
25
  expect(@cfg.plugin_at).to eq 'janus.plugin.echotest'
26
26
  end
27
27
 
@@ -29,7 +29,7 @@ describe RubyRabbitmqJanus::Tools::Config, type: :config, name: :config do
29
29
  expect(@cfg.queue_from).to be_a(String)
30
30
  end
31
31
 
32
- it 'When queues/standard/from default value is loading' do
32
+ it 'When queues/standard/from default value is from-janus' do
33
33
  expect(@cfg.queue_from).to eq 'from-janus'
34
34
  end
35
35
 
@@ -37,7 +37,7 @@ describe RubyRabbitmqJanus::Tools::Config, type: :config, name: :config do
37
37
  expect(@cfg.queue_to).to be_a(String)
38
38
  end
39
39
 
40
- it 'When queues/standard/to default value is loading' do
40
+ it 'When queues/standard/to default value is to-janus' do
41
41
  expect(@cfg.queue_to).to eq 'to-janus'
42
42
  end
43
43
 
@@ -45,7 +45,7 @@ describe RubyRabbitmqJanus::Tools::Config, type: :config, name: :config do
45
45
  expect(@cfg.queue_admin_from).to be_a(String)
46
46
  end
47
47
 
48
- it 'When queues/admin/from default value is loading' do
48
+ it 'When queues/admin/from default value is from-janus-admin' do
49
49
  expect(@cfg.queue_admin_from).to eq 'from-janus-admin'
50
50
  end
51
51
 
@@ -53,7 +53,7 @@ describe RubyRabbitmqJanus::Tools::Config, type: :config, name: :config do
53
53
  expect(@cfg.queue_admin_to).to be_a(String)
54
54
  end
55
55
 
56
- it 'When queues/admin/to default value is loading' do
56
+ it 'When queues/admin/to default value is to-janus-admin' do
57
57
  expect(@cfg.queue_admin_to).to eq 'to-janus-admin'
58
58
  end
59
59
 
@@ -61,7 +61,7 @@ describe RubyRabbitmqJanus::Tools::Config, type: :config, name: :config do
61
61
  expect(@cfg.log_level).to be_a(Symbol)
62
62
  end
63
63
 
64
- it 'When gem/log/level default value is loading' do
64
+ it 'When gem/log/level default value is INFO' do
65
65
  expect(@cfg.log_level).to eq :INFO
66
66
  end
67
67
  end
@@ -9,7 +9,7 @@ describe 'RubyRabbitmqJanus::RabitMQ', type: :config, name: :rabbit do
9
9
  end
10
10
 
11
11
  it 'Close connection with RabbitMQ Server' do
12
- expect(RubyRabbitmqJanus::Rabbit::Connect.new.close).to eq :closed
12
+ expect(RubyRabbitmqJanus::Rabbit::Connect.new.close).to eq(true)
13
13
  end
14
14
 
15
15
  it 'Propertie to message sending in rabbit' do
@@ -0,0 +1,86 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ describe 'RubyRabbitmqJanus::Log', type: :tools, name: :replace_admin do
6
+ subject(:replace) do
7
+ # Get request JSON file
8
+ rqe = RubyRabbitmqJanus::Tools::Requests.instance.requests['test::replace']
9
+ # Open request file
10
+ RubyRabbitmqJanus::Tools::Replaces::Admin.new(JSON.parse(File.read(rqe)),
11
+ options)
12
+ end
13
+
14
+ context 'replace classic element' do
15
+ let(:opt_session) { Random.rand(123_456_789..987_654_321) }
16
+ let(:opt_handle) { Random.rand(123_456_789..987_654_321) }
17
+ let(:opt_plugin) { 'janus.plugin.echotest' }
18
+ let(:opt_level) { Random.rand(1..7) }
19
+ let(:opt_debug) { true }
20
+ let(:opt_candidates) do
21
+ array = []
22
+ Random.rand(2..35).times { array.push('hdg': 'kjhdgf') }
23
+ array
24
+ end
25
+ let(:opt_sdp) { 'v=0\r\no=[..more sdp stuff..]' }
26
+ let(:options) do
27
+ {
28
+ 'session_id' => opt_session,
29
+ 'plugin' => opt_plugin,
30
+ 'handle_id' => opt_handle,
31
+ 'candidates' => opt_candidates,
32
+ 'sdp' => opt_sdp,
33
+ 'level' => opt_level,
34
+ 'debug' => opt_debug,
35
+ 'replace' => {}, 'add' => {}
36
+ }
37
+ end
38
+
39
+ context 'transform request' do
40
+ it do
41
+ expect(replace.transform_request).to be_kind_of(Hash)
42
+ end
43
+ end
44
+
45
+ context 'transform request session_id' do
46
+ include_examples 'test replace in request', 'session_id', Integer
47
+ end
48
+
49
+ context 'transform request transaction' do
50
+ include_examples 'test replace in request nil', 'transaction'
51
+ end
52
+
53
+ context 'transform request handle_id' do
54
+ include_examples 'test replace in request', 'handle_id', Integer
55
+ end
56
+
57
+ context 'transform request plugin' do
58
+ include_examples 'test replace in request', 'plugin', String
59
+ end
60
+
61
+ context 'transform request candidates' do
62
+ include_examples 'test replace in request', 'candidates', Array
63
+ end
64
+
65
+ context 'transform request audio' do
66
+ include_examples 'test replace in request nil', 'audio'
67
+ end
68
+
69
+ context 'transform request sdp' do
70
+ let(:key) { 'jsep' }
71
+ include_examples 'test replace in request', 'sdp', String
72
+ end
73
+
74
+ context 'transform request debug' do
75
+ include_examples 'test replace in request', 'debug', TrueClass
76
+ end
77
+
78
+ context 'transform request level' do
79
+ include_examples 'test replace in request', 'level', Integer
80
+ end
81
+
82
+ context 'transform request transaction' do
83
+ include_examples 'test replace in request nil', 'admin_secret'
84
+ end
85
+ end
86
+ end
@@ -0,0 +1,78 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ describe 'RubyRabbitmqJanus::Log', type: :tools, name: :replace_handle do
6
+ subject(:replace) do
7
+ # Get request JSON file
8
+ rqe = RubyRabbitmqJanus::Tools::Requests.instance.requests['test::replace']
9
+ # Open request file
10
+ RubyRabbitmqJanus::Tools::Replaces::Handle.new(JSON.parse(File.read(rqe)),
11
+ options)
12
+ end
13
+
14
+ context 'replace classic element' do
15
+ let(:opt_session) { Random.rand(123_456_789..987_654_321) }
16
+ let(:opt_handle) { Random.rand(123_456_789..987_654_321) }
17
+ let(:opt_plugin) { 'janus.plugin.echotest' }
18
+ let(:opt_candidates) do
19
+ array = []
20
+ Random.rand(2..35).times { array.push('hdg': 'kjhdgf') }
21
+ array
22
+ end
23
+ let(:opt_sdp) { 'v=0\r\no=[..more sdp stuff..]' }
24
+ let(:options) do
25
+ {
26
+ 'session_id' => opt_session,
27
+ 'plugin' => opt_plugin,
28
+ 'handle_id' => opt_handle,
29
+ 'candidates' => opt_candidates,
30
+ 'sdp' => opt_sdp,
31
+ 'replace' => {}, 'add' => {}
32
+ }
33
+ end
34
+
35
+ context 'transform request' do
36
+ it do
37
+ expect(replace.transform_request).to be_kind_of(Hash)
38
+ end
39
+ end
40
+
41
+ context 'transform request session_id' do
42
+ include_examples 'test replace in request', 'session_id', Integer
43
+ end
44
+
45
+ context 'transform request transaction' do
46
+ include_examples 'test replace in request nil', 'transaction'
47
+ end
48
+
49
+ context 'transform request handle_id' do
50
+ include_examples 'test replace in request', 'handle_id', Integer
51
+ end
52
+
53
+ context 'transform request plugin' do
54
+ include_examples 'test replace in request', 'plugin', String
55
+ end
56
+
57
+ context 'transform request candidates' do
58
+ include_examples 'test replace in request', 'candidates', Array
59
+ end
60
+
61
+ context 'transform request audio' do
62
+ include_examples 'test replace in request nil', 'audio'
63
+ end
64
+
65
+ context 'transform request sdp' do
66
+ let(:key) { 'jsep' }
67
+ include_examples 'test replace in request', 'sdp', String
68
+ end
69
+
70
+ context 'transform request debug' do
71
+ include_examples 'test replace in request nil', 'debug'
72
+ end
73
+
74
+ context 'transform request level' do
75
+ include_examples 'test replace in request nil', 'level'
76
+ end
77
+ end
78
+ end
@@ -0,0 +1,66 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ describe 'RubyRabbitmqJanus::Log', type: :tools, name: :replace_session do
6
+ subject(:replace) do
7
+ # Get request JSON file
8
+ rqe = RubyRabbitmqJanus::Tools::Requests.instance.requests['test::replace']
9
+ # Open request file
10
+ RubyRabbitmqJanus::Tools::Replaces::Session.new(JSON.parse(File.read(rqe)),
11
+ options)
12
+ end
13
+
14
+ context 'replace classic element' do
15
+ let(:opt_session) { Random.rand(123_456_789..987_654_321) }
16
+ let(:opt_plugin) { 'janus.plugin.echotest' }
17
+ let(:options) do
18
+ {
19
+ 'session_id' => opt_session,
20
+ 'plugin' => opt_plugin,
21
+ 'replace' => {}, 'add' => {}
22
+ }
23
+ end
24
+
25
+ context 'transform request' do
26
+ it { expect(replace.transform_request).to be_kind_of(Hash) }
27
+ end
28
+
29
+ context 'transform request session_id' do
30
+ include_examples 'test replace in request', 'session_id', Integer
31
+ end
32
+
33
+ context 'transform request transaction' do
34
+ include_examples 'test replace in request nil', 'transaction'
35
+ end
36
+
37
+ context 'transform request handle_id' do
38
+ include_examples 'test replace in request nil', 'handle_id'
39
+ end
40
+
41
+ context 'transform request plugin' do
42
+ include_examples 'test replace in request', 'plugin', String
43
+ end
44
+
45
+ context 'transform request candidates' do
46
+ include_examples 'test replace in request nil', 'candidates'
47
+ end
48
+
49
+ context 'transform request audio' do
50
+ include_examples 'test replace in request nil', 'audio'
51
+ end
52
+
53
+ context 'transform request sdp' do
54
+ let(:key) { 'jsep' }
55
+ include_examples 'test replace in request nil', 'sdp'
56
+ end
57
+
58
+ context 'transform request debug' do
59
+ include_examples 'test replace in request nil', 'debug'
60
+ end
61
+
62
+ context 'transform request level' do
63
+ include_examples 'test replace in request nil', 'level'
64
+ end
65
+ end
66
+ end
@@ -0,0 +1,69 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ describe 'RubyRabbitmqJanus::Log', type: :tools, name: :replace do
6
+ subject(:replace) do
7
+ # Get request JSON file
8
+ rqe = RubyRabbitmqJanus::Tools::Requests.instance.requests['test::type']
9
+ # Open request file
10
+ RubyRabbitmqJanus::Tools::Replaces::Replace.new(JSON.parse(File.read(rqe)),
11
+ options)
12
+ end
13
+
14
+ context 'replace classic element' do
15
+ let(:options) { { 'replace' => {}, 'add' => {} } }
16
+
17
+ context 'transform request' do
18
+ it { expect(replace.transform_request).to be_kind_of(Hash) }
19
+ end
20
+
21
+ context 'transform request session_id' do
22
+ include_examples 'test replace in request nil', 'session_id'
23
+ end
24
+
25
+ context 'transform request transaction' do
26
+ include_examples 'test replace in request nil', 'transaction'
27
+ end
28
+
29
+ context 'transform request handle_id' do
30
+ include_examples 'test replace in request nil', 'handle_id'
31
+ end
32
+
33
+ context 'transform request plugin' do
34
+ include_examples 'test replace in request nil', 'plugin'
35
+ end
36
+
37
+ context 'transform request candidate' do
38
+ include_examples 'test replace in request nil', 'candidate'
39
+ end
40
+
41
+ context 'transform request candidates' do
42
+ include_examples 'test replace in request nil', 'candidates'
43
+ end
44
+
45
+ context 'transform request audio' do
46
+ include_examples 'test replace in request nil', 'audio'
47
+ end
48
+
49
+ context 'transform request plugin1' do
50
+ include_examples 'test replace in request nil', 'plugin1'
51
+ end
52
+
53
+ context 'transform request first_plugin' do
54
+ include_examples 'test replace in request nil', 'first_plugin'
55
+ end
56
+
57
+ context 'transform request sdp' do
58
+ include_examples 'test replace in request nil', 'sdp'
59
+ end
60
+
61
+ context 'transform request debug' do
62
+ include_examples 'test replace in request nil', 'debug'
63
+ end
64
+
65
+ context 'transform request level' do
66
+ include_examples 'test replace in request nil', 'level'
67
+ end
68
+ end
69
+ end
@@ -0,0 +1,150 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ describe 'RubyRabbitmqJanus::Log', type: :tools, name: :type do
6
+ subject(:converter) do
7
+ # Get request JSON file
8
+ rqe = RubyRabbitmqJanus::Tools::Requests.instance.requests['test::type']
9
+ # Open request file
10
+ RubyRabbitmqJanus::Tools::Type.new(JSON.parse(File.read(rqe)))
11
+ end
12
+
13
+ context 'convert transaction' do
14
+ let(:key) { 'transaction' }
15
+ let(:value) { /.*[A-Z][0-9]/ }
16
+
17
+ include_examples 'match convert type', String, 10
18
+ end
19
+
20
+ context 'convert string' do
21
+ let(:key) { 'sdp' }
22
+ let(:value) { 'v=0\r\no=[..more sdp stuff..]' }
23
+
24
+ include_examples 'test convert type', String
25
+ end
26
+
27
+ context 'convert number' do
28
+ let(:key) { 'handle_id' }
29
+ let(:value) { Random.rand(123_456_789..987_654_321) }
30
+
31
+ include_examples 'test convert type', Integer
32
+ end
33
+
34
+ context 'convert integer' do
35
+ let(:key) { 'session_id' }
36
+ let(:value) { Random.rand(123_456_789..987_654_321) }
37
+
38
+ include_examples 'test convert type', Integer
39
+ end
40
+
41
+ context 'convert boolean true' do
42
+ let(:key) { 'audio' }
43
+ let(:value) { true }
44
+
45
+ include_examples 'test convert type', TrueClass
46
+ end
47
+
48
+ context 'convert boolean false' do
49
+ let(:key) { 'audio' }
50
+ let(:value) { false }
51
+
52
+ include_examples 'test convert type', FalseClass
53
+ end
54
+
55
+ context 'convert boolean "true"' do
56
+ let(:key) { 'audio' }
57
+ let(:value) { 'true' }
58
+ let(:value_return) { true }
59
+
60
+ include_examples 'test convert type', TrueClass
61
+ end
62
+
63
+ context 'convert boolean "false"' do
64
+ let(:key) { 'audio' }
65
+ let(:value) { 'false' }
66
+ let(:value_return) { false }
67
+
68
+ include_examples 'test convert type', FalseClass
69
+ end
70
+
71
+ context 'convert plugin #0' do
72
+ let(:key) { 'first_plugin' }
73
+ let(:value) { 'janus.plugin.echotest' }
74
+
75
+ include_examples 'test convert type', String
76
+ end
77
+
78
+ context 'convert plugin #1' do
79
+ let(:key) { 'plugin1' }
80
+ let(:value) { 'janus.plugin.videoroom' }
81
+
82
+ include_examples 'test convert type', String
83
+ end
84
+
85
+ context 'convert plugin #2' do
86
+ let(:key) { 'plugin' }
87
+ let(:value) { 'janus.plugin.sip' }
88
+
89
+ include_examples 'test convert type', String
90
+ end
91
+
92
+ context 'convert array with one data' do
93
+ let(:key) { 'candidate' }
94
+ let(:value) { { super: 'top', array: 'alone' } }
95
+ let(:value_return) { [key, value] }
96
+
97
+ include_examples 'test convert type', Array
98
+ end
99
+
100
+ context 'convert array with many data' do
101
+ let(:size) { 2 }
102
+ let(:key) { 'candidates' }
103
+ let(:value) do
104
+ [
105
+ { super: 'top', array: 'with' },
106
+ { many: 'data', and: 'smiley', cool: ':-)' }
107
+ ]
108
+ end
109
+ let(:value_return) { [key, value] }
110
+
111
+ include_examples 'test convert type array', Array, 2
112
+ end
113
+
114
+ context 'convert array random value candidate' do
115
+ let(:size) { Random.rand(1..99) }
116
+ let(:key) { 'candidates' }
117
+ let(:value) do
118
+ array = []
119
+ candidate = { super: 'top', array: 'with', many: 'data' }
120
+ size.times { array.push(candidate) }
121
+ array
122
+ end
123
+ let(:value_return) { [key, value] }
124
+
125
+ include_examples 'test convert type array', Array
126
+ end
127
+
128
+ context 'convert array with one data' do
129
+ let(:key) { 'candidates' }
130
+ let(:value) { [{ one: 'data', and: 'smiley', cool: ':-)' }] }
131
+ let(:value_hash) { value[0] }
132
+ let(:value_return) { [key, value_hash] }
133
+
134
+ include_examples 'test convert type hash', Array
135
+ end
136
+
137
+ context 'convert debug' do
138
+ let(:key) { 'debug' }
139
+ let(:value) { false }
140
+
141
+ include_examples 'test convert type', FalseClass
142
+ end
143
+
144
+ context 'convert level' do
145
+ let(:key) { 'level' }
146
+ let(:value) { Random.rand(1..7) }
147
+
148
+ include_examples 'test convert type', Integer
149
+ end
150
+ end