ruby_rabbitmq_janus 1.2.9 → 2.0.0.pre.42

Sign up to get free protection for your applications and to get access to all the features.
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