roku_builder 3.12.8 → 3.13.0

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 (57) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +2 -2
  3. data/CHANGELOG +9 -0
  4. data/Gemfile.lock +17 -11
  5. data/bin/roku +4 -8
  6. data/lib/roku_builder.rb +16 -24
  7. data/lib/roku_builder/config.rb +213 -0
  8. data/lib/roku_builder/config_parser.rb +304 -267
  9. data/lib/roku_builder/config_validator.rb +149 -126
  10. data/lib/roku_builder/controller.rb +34 -184
  11. data/lib/roku_builder/controller_commands.rb +85 -79
  12. data/lib/roku_builder/error_handler.rb +0 -11
  13. data/lib/roku_builder/errors.rb +12 -0
  14. data/lib/roku_builder/inspector.rb +6 -4
  15. data/lib/roku_builder/keyer.rb +1 -1
  16. data/lib/roku_builder/loader.rb +1 -1
  17. data/lib/roku_builder/logger.rb +32 -0
  18. data/lib/roku_builder/manifest_manager.rb +2 -2
  19. data/lib/roku_builder/monitor.rb +1 -1
  20. data/lib/roku_builder/options.rb +113 -0
  21. data/lib/roku_builder/stager.rb +2 -2
  22. data/lib/roku_builder/tester.rb +57 -11
  23. data/lib/roku_builder/util.rb +3 -4
  24. data/lib/roku_builder/version.rb +1 -1
  25. data/roku_builder.gemspec +2 -1
  26. data/test/roku_builder/test_config.rb +168 -0
  27. data/test/roku_builder/test_config_parser.rb +347 -394
  28. data/test/roku_builder/test_config_validator.rb +193 -190
  29. data/test/roku_builder/test_controller.rb +59 -178
  30. data/test/roku_builder/test_controller_commands.rb +407 -394
  31. data/test/roku_builder/test_error_handler.rb +67 -69
  32. data/test/roku_builder/test_files/config_test/bad.json +2 -0
  33. data/test/roku_builder/test_files/config_test/child.json +11 -0
  34. data/test/roku_builder/test_files/config_test/config.json +29 -0
  35. data/test/roku_builder/test_files/config_test/non_json.json +1 -0
  36. data/test/roku_builder/test_files/config_test/parent.json +21 -0
  37. data/test/roku_builder/test_files/config_test/parent_projects.json +35 -0
  38. data/test/roku_builder/test_files/manifest_manager_test/manifest_template_2 +1 -1
  39. data/test/roku_builder/test_helper.rb +55 -45
  40. data/test/roku_builder/test_inspector.rb +278 -213
  41. data/test/roku_builder/test_keyer.rb +144 -147
  42. data/test/roku_builder/test_linker.rb +91 -95
  43. data/test/roku_builder/test_loader.rb +279 -289
  44. data/test/roku_builder/test_logger.rb +47 -0
  45. data/test/roku_builder/test_manifest_manager.rb +92 -94
  46. data/test/roku_builder/test_monitor.rb +101 -103
  47. data/test/roku_builder/test_navigator.rb +240 -245
  48. data/test/roku_builder/test_options.rb +156 -0
  49. data/test/roku_builder/test_packager.rb +108 -108
  50. data/test/roku_builder/test_profiler.rb +20 -19
  51. data/test/roku_builder/test_scripter.rb +83 -81
  52. data/test/roku_builder/test_stager.rb +299 -311
  53. data/test/roku_builder/test_tester.rb +112 -115
  54. data/test/roku_builder/test_util.rb +18 -17
  55. metadata +39 -6
  56. data/lib/roku_builder/config_manager.rb +0 -161
  57. data/test/roku_builder/test_config_manager.rb +0 -372
@@ -1,452 +1,465 @@
1
1
  # ********** Copyright Viacom, Inc. Apache 2.0 **********
2
2
 
3
3
  require_relative "test_helper.rb"
4
-
5
- class ControllerCommandsTest < Minitest::Test
6
-
7
- def test_controller_commands_validate
8
- logger = Minitest::Mock.new
9
- logger.expect(:info, nil, ["Config validated"])
10
- code = RokuBuilder::ControllerCommands.validate(logger: logger)
11
- assert_equal RokuBuilder::SUCCESS, code
12
- logger.verify
13
- end
14
- def test_controller_commands_sideload
15
- logger = Logger.new("/dev/null")
16
- loader = Minitest::Mock.new
17
- stager = Minitest::Mock.new
18
-
19
- options = {sideload: true, config: "~/.roku_config.rb"}
20
- config = good_config
21
- code, configs = RokuBuilder::ConfigParser.parse_config(options: options, config: config, logger: logger)
22
- # Test Success
23
- loader.expect(:sideload, [RokuBuilder::SUCCESS, "build_version"], [configs[:sideload_config]])
24
- stager.expect(:stage, true)
25
- stager.expect(:unstage, true)
26
- stager.expect(:method, :git)
27
-
28
- RokuBuilder::Loader.stub(:new, loader) do
29
- RokuBuilder::Stager.stub(:new, stager) do
30
- code = RokuBuilder::Controller.send(:execute_commands, {options: options, configs: configs, logger: logger})
31
- end
4
+ module RokuBuilder
5
+ class ControllerCommandsTest < Minitest::Test
6
+
7
+ def test_controller_commands_validate
8
+ logger = Minitest::Mock.new
9
+ Logger.class_variable_set(:@@instance, logger)
10
+ logger.expect(:info, nil, ["Config validated"])
11
+ code = ControllerCommands.validate()
12
+ assert_equal SUCCESS, code
13
+ logger.verify
14
+ Logger.set_testing
32
15
  end
33
- assert_equal RokuBuilder::SUCCESS, code
16
+ def test_controller_commands_sideload
17
+ loader = Minitest::Mock.new
18
+ stager = Minitest::Mock.new
19
+
20
+ options = build_options({sideload: true, config: "~/.roku_config.rb", working: true})
21
+ config = Config.new(options: options)
22
+ config.instance_variable_set(:@config, good_config)
23
+ config.parse
24
+ # Test Success
25
+ loader.expect(:sideload, [SUCCESS, "build_version"], [config.parsed[:sideload_config]])
26
+ stager.expect(:stage, true)
27
+ stager.expect(:unstage, true)
28
+ stager.expect(:method, :git)
29
+
30
+ code = nil
31
+ Loader.stub(:new, loader) do
32
+ Stager.stub(:new, stager) do
33
+ code = Controller.send(:execute_commands, {options: options, config: config})
34
+ end
35
+ end
36
+ assert_equal SUCCESS, code
34
37
 
35
- stager.expect(:stage, true)
36
- stager.expect(:unstage, true)
38
+ stager.expect(:stage, true)
39
+ stager.expect(:unstage, true)
37
40
 
38
- # Test Failure
39
- loader.expect(:sideload, [RokuBuilder::FAILED_SIDELOAD, "build_version"], [configs[:sideload_config]])
40
- RokuBuilder::Loader.stub(:new, loader) do
41
- RokuBuilder::Stager.stub(:new, stager) do
42
- code = RokuBuilder::Controller.send(:execute_commands, {options: options, configs: configs, logger: logger})
41
+ # Test Failure
42
+ loader.expect(:sideload, [FAILED_SIDELOAD, "build_version"], [config.parsed[:sideload_config]])
43
+ Loader.stub(:new, loader) do
44
+ Stager.stub(:new, stager) do
45
+ code = Controller.send(:execute_commands, {options: options, config: config})
46
+ end
43
47
  end
44
- end
45
- assert_equal RokuBuilder::FAILED_SIDELOAD, code
48
+ assert_equal FAILED_SIDELOAD, code
46
49
 
47
- loader.verify
48
- stager.verify
49
- end
50
+ loader.verify
51
+ stager.verify
52
+ end
50
53
 
51
- def test_controller_commands_package
52
- logger = Logger.new("/dev/null")
53
- keyer = Minitest::Mock.new
54
- loader = Minitest::Mock.new
55
- stager = Minitest::Mock.new
56
- packager = Minitest::Mock.new
57
- inspector = Minitest::Mock.new
58
-
59
- options = {package: true, inspect: true, out_folder: "/tmp", config: "~/.roku_config.json"}
60
- config = good_config
61
- code, configs = RokuBuilder::ConfigParser.parse_config(options: options, config: config, logger: logger)
62
- info = {app_name: "app", dev_id: "id", creation_date: "date", dev_zip: ""}
63
-
64
- loader.expect(:sideload, [RokuBuilder::SUCCESS, "build_version"], [configs[:sideload_config]])
65
- keyer.expect(:rekey, true, [configs[:key]])
66
- packager.expect(:package, true, [configs[:package_config]])
67
- inspector.expect(:inspect, info, [configs[:inspect_config]])
68
- stager.expect(:stage, true)
69
- stager.expect(:unstage, true)
70
- stager.expect(:method, :git)
71
-
72
- code = nil
73
- RokuBuilder::Keyer.stub(:new, keyer) do
74
- RokuBuilder::Loader.stub(:new, loader) do
75
- RokuBuilder::Packager.stub(:new, packager) do
76
- RokuBuilder::Inspector.stub(:new, inspector) do
77
- RokuBuilder::Stager.stub(:new, stager) do
78
- Logger.stub(:new, logger) do
79
- code = RokuBuilder::Controller.send(:execute_commands, {options: options, configs: configs, logger: logger})
54
+ def test_controller_commands_package
55
+ keyer = Minitest::Mock.new
56
+ loader = Minitest::Mock.new
57
+ stager = Minitest::Mock.new
58
+ packager = Minitest::Mock.new
59
+ inspector = Minitest::Mock.new
60
+
61
+ options = build_options({package: true, inspect: true, out_folder: "/tmp", config: "~/.roku_config.json", set_stage: true})
62
+ config = Config.new(options: options)
63
+ config.instance_variable_set(:@config, good_config)
64
+ config.parse
65
+ info = {app_name: "app", dev_id: "id", creation_date: "date", dev_zip: ""}
66
+
67
+ loader.expect(:sideload, [SUCCESS, "build_version"], [config.parsed[:sideload_config]])
68
+ keyer.expect(:rekey, true, [config.parsed[:key]])
69
+ packager.expect(:package, true, [config.parsed[:package_config]])
70
+ inspector.expect(:inspect, info, [config.parsed[:inspect_config]])
71
+ stager.expect(:stage, true)
72
+ stager.expect(:unstage, true)
73
+ stager.expect(:method, :git)
74
+
75
+ code = nil
76
+ Keyer.stub(:new, keyer) do
77
+ Loader.stub(:new, loader) do
78
+ Packager.stub(:new, packager) do
79
+ Inspector.stub(:new, inspector) do
80
+ Stager.stub(:new, stager) do
81
+ ::Logger.stub(:new, ::Logger.new("/dev/null")) do
82
+ code = Controller.send(:execute_commands, {options: options, config: config})
83
+ end
80
84
  end
81
85
  end
82
86
  end
83
87
  end
84
88
  end
85
- end
86
- assert_equal RokuBuilder::SUCCESS, code
89
+ assert_equal SUCCESS, code
87
90
 
88
- keyer.verify
89
- loader.verify
90
- stager.verify
91
- packager.verify
92
- inspector.verify
93
- end
91
+ keyer.verify
92
+ loader.verify
93
+ stager.verify
94
+ packager.verify
95
+ inspector.verify
96
+ end
94
97
 
95
- def test_controller_commands_package_outfile
96
- logger = Logger.new("/dev/null")
97
- keyer = Minitest::Mock.new
98
- loader = Minitest::Mock.new
99
- stager = Minitest::Mock.new
100
- packager = Minitest::Mock.new
101
- inspector = Minitest::Mock.new
102
-
103
- options = {package: true, inspect: true, out: "/tmp/out.pkg", config: "~/.roku_config.json"}
104
- config = good_config
105
- code, configs = RokuBuilder::ConfigParser.parse_config(options: options, config: config, logger: logger)
106
- info = {app_name: "app", dev_id: "id", creation_date: "date", dev_zip: ""}
107
-
108
- loader.expect(:sideload, [RokuBuilder::SUCCESS, "build_version"], [configs[:sideload_config]])
109
- keyer.expect(:rekey, true, [configs[:key]])
110
- packager.expect(:package, true, [configs[:package_config]])
111
- inspector.expect(:inspect, info, [configs[:inspect_config]])
112
- stager.expect(:stage, true)
113
- stager.expect(:unstage, true)
114
- stager.expect(:method, :git)
115
-
116
- code = nil
117
- RokuBuilder::Keyer.stub(:new, keyer) do
118
- RokuBuilder::Loader.stub(:new, loader) do
119
- RokuBuilder::Packager.stub(:new, packager) do
120
- RokuBuilder::Inspector.stub(:new, inspector) do
121
- RokuBuilder::Stager.stub(:new, stager) do
122
- Logger.stub(:new, logger) do
123
- code = RokuBuilder::Controller.send(:execute_commands, {options: options, configs: configs, logger: logger})
98
+ def test_controller_commands_package_outfile
99
+ keyer = Minitest::Mock.new
100
+ loader = Minitest::Mock.new
101
+ stager = Minitest::Mock.new
102
+ packager = Minitest::Mock.new
103
+ inspector = Minitest::Mock.new
104
+
105
+ options = build_options({package: true, inspect: true, out: "/tmp/out.pkg", config: "~/.roku_config.json", set_stage: true})
106
+ config = Config.new(options: options)
107
+ config.instance_variable_set(:@config, good_config)
108
+ config.parse
109
+ info = {app_name: "app", dev_id: "id", creation_date: "date", dev_zip: ""}
110
+
111
+ loader.expect(:sideload, [SUCCESS, "build_version"], [config.parsed[:sideload_config]])
112
+ keyer.expect(:rekey, true, [config.parsed[:key]])
113
+ packager.expect(:package, true, [config.parsed[:package_config]])
114
+ inspector.expect(:inspect, info, [config.parsed[:inspect_config]])
115
+ stager.expect(:stage, true)
116
+ stager.expect(:unstage, true)
117
+ stager.expect(:method, :git)
118
+
119
+ code = nil
120
+ Keyer.stub(:new, keyer) do
121
+ Loader.stub(:new, loader) do
122
+ Packager.stub(:new, packager) do
123
+ Inspector.stub(:new, inspector) do
124
+ Stager.stub(:new, stager) do
125
+ ::Logger.stub(:new, ::Logger.new("/dev/null")) do
126
+ code = Controller.send(:execute_commands, {options: options, config: config})
127
+ end
124
128
  end
125
129
  end
126
130
  end
127
131
  end
128
132
  end
129
- end
130
- assert_equal RokuBuilder::SUCCESS, code
133
+ assert_equal SUCCESS, code
131
134
 
132
- keyer.verify
133
- loader.verify
134
- stager.verify
135
- packager.verify
136
- inspector.verify
137
- end
135
+ keyer.verify
136
+ loader.verify
137
+ stager.verify
138
+ packager.verify
139
+ inspector.verify
140
+ end
138
141
 
139
- def test_controller_commands_build
140
- logger = Logger.new("/dev/null")
141
- loader = Minitest::Mock.new
142
- stager = Minitest::Mock.new
143
-
144
- code = nil
145
- options = {build: true, out_folder: "/tmp", config: "~/.roku_config.json"}
146
- config = good_config
147
- code, configs = RokuBuilder::ConfigParser.parse_config(options: options, config: config, logger: logger)
148
- loader.expect(:build, "/tmp/build", [configs[:build_config]])
149
- stager.expect(:stage, true)
150
- stager.expect(:unstage, true)
151
- stager.expect(:method, :git)
152
-
153
- RokuBuilder::Loader.stub(:new, loader) do
154
- RokuBuilder::ManifestManager.stub(:build_version, "1") do
155
- RokuBuilder::Stager.stub(:new, stager) do
156
- code = RokuBuilder::Controller.send(:execute_commands, {options: options, configs: configs, logger: logger})
142
+ def test_controller_commands_build
143
+ loader = Minitest::Mock.new
144
+ stager = Minitest::Mock.new
145
+
146
+ code = nil
147
+ options = build_options({build: true, out_folder: "/tmp", config: "~/.roku_config.json", working: true})
148
+ config = Config.new(options: options)
149
+ config.instance_variable_set(:@config, good_config)
150
+ config.parse
151
+ loader.expect(:build, "/tmp/build", [config.parsed[:build_config]])
152
+ stager.expect(:stage, true)
153
+ stager.expect(:unstage, true)
154
+ stager.expect(:method, :git)
155
+
156
+ Loader.stub(:new, loader) do
157
+ ManifestManager.stub(:build_version, "1") do
158
+ Stager.stub(:new, stager) do
159
+ code = Controller.send(:execute_commands, {options: options, config: config})
160
+ end
157
161
  end
158
162
  end
163
+ assert_equal SUCCESS, code
164
+ loader.verify
165
+ stager.verify
159
166
  end
160
- assert_equal RokuBuilder::SUCCESS, code
161
- loader.verify
162
- stager.verify
163
- end
164
- def test_controller_commands_update
165
- logger = Logger.new("/dev/null")
166
- mock = Minitest::Mock.new
167
- stager = Minitest::Mock.new
168
-
169
- code = nil
170
- options = {update: true, out_folder: "/tmp", config: "~/.roku_config.json"}
171
- config = good_config
172
- code, configs = RokuBuilder::ConfigParser.parse_config(options: options, config: config, logger: logger)
173
- mock.expect(:call, "1", [configs[:manifest_config]])
174
- mock.expect(:call, "2", [configs[:manifest_config]])
175
- stager.expect(:stage, true)
176
- stager.expect(:unstage, true)
177
-
178
- RokuBuilder::ManifestManager.stub(:build_version, mock) do
179
- RokuBuilder::ManifestManager.stub(:update_build, mock) do
180
- RokuBuilder::Stager.stub(:new, stager) do
181
- code = RokuBuilder::Controller.send(:execute_commands, {options: options, configs: configs, logger: logger})
167
+ def test_controller_commands_update
168
+ mock = Minitest::Mock.new
169
+ stager = Minitest::Mock.new
170
+
171
+ code = nil
172
+ options = build_options({update: true, out_folder: "/tmp", config: "~/.roku_config.json", working: true})
173
+ config = Config.new(options: options)
174
+ config.instance_variable_set(:@config, good_config)
175
+ config.parse
176
+ mock.expect(:call, "1", [config.parsed[:manifest_config]])
177
+ mock.expect(:call, "2", [config.parsed[:manifest_config]])
178
+ stager.expect(:stage, true)
179
+ stager.expect(:unstage, true)
180
+
181
+ ManifestManager.stub(:build_version, mock) do
182
+ ManifestManager.stub(:update_build, mock) do
183
+ Stager.stub(:new, stager) do
184
+ code = Controller.send(:execute_commands, {options: options, config: config})
185
+ end
182
186
  end
183
187
  end
188
+ mock.verify
189
+ stager.verify
190
+ assert_equal SUCCESS, code
184
191
  end
185
- mock.verify
186
- stager.verify
187
- assert_equal RokuBuilder::SUCCESS, code
188
- end
189
192
 
190
- def test_controller_commands_deeplink
191
- logger = Logger.new("/dev/null")
192
- mock = Minitest::Mock.new
193
-
194
- code = nil
195
- options = {deeplink: true, deeplink_options: "a:b", config: "~/.roku_config.json"}
196
- config = good_config
197
- code, configs = RokuBuilder::ConfigParser.parse_config(options: options, config: config, logger: logger)
198
- mock.expect(:launch, "true", [configs[:deeplink_config]])
199
- RokuBuilder::Linker.stub(:new, mock) do
200
- code = RokuBuilder::Controller.send(:execute_commands, {options: options, configs: configs, logger: logger})
193
+ def test_controller_commands_deeplink
194
+ mock = Minitest::Mock.new
195
+
196
+ code = nil
197
+ options = build_options({deeplink: true, deeplink_options: "a:b", config: "~/.roku_config.json"})
198
+ config = Config.new(options: options)
199
+ config.instance_variable_set(:@config, good_config)
200
+ config.parse
201
+ mock.expect(:launch, "true", [config.parsed[:deeplink_config]])
202
+ Linker.stub(:new, mock) do
203
+ code = Controller.send(:execute_commands, {options: options, config: config})
204
+ end
205
+ mock.verify
206
+ assert_equal SUCCESS, code
201
207
  end
202
- mock.verify
203
- assert_equal RokuBuilder::SUCCESS, code
204
- end
205
- def test_controller_commands_deeplink_sideload
206
- logger = Logger.new("/dev/null")
207
- mock = Minitest::Mock.new
208
-
209
- ran_sideload = false
210
-
211
- sideload = Proc.new {|a, b, c| ran_sideload = true}
212
-
213
- code = nil
214
- options = {deeplink: true, set_stage: true, deeplink_options: "a:b", config: "~/.roku_config.json"}
215
- config = good_config
216
- code, configs = RokuBuilder::ConfigParser.parse_config(options: options, config: config, logger: logger)
217
- mock.expect(:launch, "true", [configs[:deeplink_config]])
218
- RokuBuilder::Linker.stub(:new, mock) do
219
- RokuBuilder::ControllerCommands.stub(:sideload, sideload) do
220
- code = RokuBuilder::Controller.send(:execute_commands, {options: options, configs: configs, logger: logger})
208
+ def test_controller_commands_deeplink_sideload
209
+ mock = Minitest::Mock.new
210
+
211
+ ran_sideload = false
212
+
213
+ sideload = Proc.new {|a, b, c| ran_sideload = true}
214
+
215
+ code = nil
216
+ options = build_options({deeplink: true, set_stage: true, deeplink_options: "a:b", config: "~/.roku_config.json"})
217
+ config = Config.new(options: options)
218
+ config.instance_variable_set(:@config, good_config)
219
+ config.parse
220
+ mock.expect(:launch, "true", [config.parsed[:deeplink_config]])
221
+ Linker.stub(:new, mock) do
222
+ ControllerCommands.stub(:sideload, sideload) do
223
+ code = Controller.send(:execute_commands, {options: options, config: config})
224
+ end
221
225
  end
226
+ mock.verify
227
+ assert_equal SUCCESS, code
228
+ assert ran_sideload
222
229
  end
223
- mock.verify
224
- assert_equal RokuBuilder::SUCCESS, code
225
- assert ran_sideload
226
- end
227
- def test_controller_commands_deeplink_fail
228
- logger = Logger.new("/dev/null")
229
- mock = Minitest::Mock.new
230
- stager = Minitest::Mock.new
231
-
232
- code = nil
233
- options = {deeplink: true, deeplink_options: "a:b", config: "~/.roku_config.json"}
234
- config = good_config
235
- code, configs = RokuBuilder::ConfigParser.parse_config(options: options, config: config, logger: logger)
236
- mock.expect(:launch, false, [configs[:deeplink_config]])
237
- stager.expect(:stage, true)
238
- stager.expect(:unstage, true)
239
- RokuBuilder::Linker.stub(:new, mock) do
240
- RokuBuilder::Stager.stub(:new, stager) do
241
- code = RokuBuilder::Controller.send(:execute_commands, {options: options, configs: configs, logger: logger})
230
+ def test_controller_commands_deeplink_fail
231
+ mock = Minitest::Mock.new
232
+ stager = Minitest::Mock.new
233
+
234
+ code = nil
235
+ options = build_options({deeplink: true, deeplink_options: "a:b", config: "~/.roku_config.json"})
236
+ config = Config.new(options: options)
237
+ config.instance_variable_set(:@config, good_config)
238
+ config.parse
239
+ mock.expect(:launch, false, [config.parsed[:deeplink_config]])
240
+ stager.expect(:stage, true)
241
+ stager.expect(:unstage, true)
242
+ Linker.stub(:new, mock) do
243
+ Stager.stub(:new, stager) do
244
+ code = Controller.send(:execute_commands, {options: options, config: config})
245
+ end
242
246
  end
247
+ mock.verify
248
+ assert_equal FAILED_DEEPLINKING, code
243
249
  end
244
- mock.verify
245
- assert_equal RokuBuilder::FAILED_DEEPLINKING, code
246
- end
247
- def test_controller_commands_delete
248
- logger = Logger.new("/dev/null")
249
- loader = Minitest::Mock.new
250
-
251
- options = {delete: true, config: "~/.roku_config.json"}
252
- config = good_config
253
- code, configs = RokuBuilder::ConfigParser.parse_config(options: options, config: config, logger: logger)
254
- loader.expect(:unload, nil)
255
- code = nil
256
- RokuBuilder::Loader.stub(:new, loader) do
257
- RokuBuilder::ManifestManager.stub(:build_version, "1") do
258
- code = RokuBuilder::Controller.send(:execute_commands, {options: options, configs: configs, logger: logger})
250
+ def test_controller_commands_delete
251
+ loader = Minitest::Mock.new
252
+
253
+ options = build_options({delete: true, config: "~/.roku_config.json"})
254
+ config = Config.new(options: options)
255
+ config.instance_variable_set(:@config, good_config)
256
+ config.parse
257
+ loader.expect(:unload, nil)
258
+ code = nil
259
+ Loader.stub(:new, loader) do
260
+ ManifestManager.stub(:build_version, "1") do
261
+ code = Controller.send(:execute_commands, {options: options, config: config})
262
+ end
259
263
  end
264
+ assert_equal SUCCESS, code
265
+ loader.verify
260
266
  end
261
- assert_equal RokuBuilder::SUCCESS, code
262
- loader.verify
263
- end
264
- def test_controller_commands_monitor
265
- logger = Logger.new("/dev/null")
266
- monitor = Minitest::Mock.new
267
-
268
- options = {monitor: "main", config: "~/.roku_config.json"}
269
- config = good_config
270
- code, configs = RokuBuilder::ConfigParser.parse_config(options: options, config: config, logger: logger)
271
- monitor.expect(:monitor, nil, [configs[:monitor_config]])
272
- code = nil
273
- RokuBuilder::Monitor.stub(:new, monitor) do
274
- RokuBuilder::ManifestManager.stub(:build_version, "1") do
275
- code = RokuBuilder::Controller.send(:execute_commands, {options: options, configs: configs, logger: logger})
267
+ def test_controller_commands_monitor
268
+ monitor = Minitest::Mock.new
269
+
270
+ options = build_options({monitor: "main", config: "~/.roku_config.json"})
271
+ config = Config.new(options: options)
272
+ config.instance_variable_set(:@config, good_config)
273
+ config.parse
274
+ monitor.expect(:monitor, nil, [config.parsed[:monitor_config]])
275
+ code = nil
276
+ Monitor.stub(:new, monitor) do
277
+ ManifestManager.stub(:build_version, "1") do
278
+ code = Controller.send(:execute_commands, {options: options, config: config})
279
+ end
276
280
  end
281
+ assert_equal SUCCESS, code
282
+ monitor.verify
277
283
  end
278
- assert_equal RokuBuilder::SUCCESS, code
279
- monitor.verify
280
- end
281
- def test_controller_commands_navigate
282
- logger = Logger.new("/dev/null")
283
- navigator = Minitest::Mock.new
284
-
285
- options = {navigate: "up", config: "~/.roku_config.json"}
286
- config = good_config
287
- code, configs = RokuBuilder::ConfigParser.parse_config(options: options, config: config, logger: logger)
288
- navigator.expect(:nav, true, [configs[:navigate_config]])
289
- code = nil
290
- RokuBuilder::Navigator.stub(:new, navigator) do
291
- code = RokuBuilder::Controller.send(:execute_commands, {options: options, configs: configs, logger: logger})
284
+ def test_controller_commands_navigate
285
+ navigator = Minitest::Mock.new
286
+
287
+ options = build_options({navigate: "up", config: "~/.roku_config.json"})
288
+ config = Config.new(options: options)
289
+ config.instance_variable_set(:@config, good_config)
290
+ config.parse
291
+ navigator.expect(:nav, true, [config.parsed[:navigate_config]])
292
+ code = nil
293
+ Navigator.stub(:new, navigator) do
294
+ code = Controller.send(:execute_commands, {options: options, config: config})
295
+ end
296
+ assert_equal SUCCESS, code
297
+ navigator.verify
292
298
  end
293
- assert_equal RokuBuilder::SUCCESS, code
294
- navigator.verify
295
- end
296
- def test_controller_commands_navigate_fail
297
- logger = Logger.new("/dev/null")
298
- navigator = Minitest::Mock.new
299
-
300
- options = {navigate: "up", config: ":execute_commands,/.roku_config.json"}
301
- config = good_config
302
- code, configs = RokuBuilder::ConfigParser.parse_config(options: options, config: config, logger: logger)
303
- navigator.expect(:nav, nil, [configs[:navigate_config]])
304
- code = nil
305
- RokuBuilder::Navigator.stub(:new, navigator) do
306
- code = RokuBuilder::Controller.send(:execute_commands, {options: options, configs: configs, logger: logger})
299
+ def test_controller_commands_navigate_fail
300
+ navigator = Minitest::Mock.new
301
+
302
+ options = build_options({navigate: "up", config: ":execute_commands,/.roku_config.json"})
303
+ config = Config.new(options: options)
304
+ config.instance_variable_set(:@config, good_config)
305
+ config.parse
306
+ navigator.expect(:nav, nil, [config.parsed[:navigate_config]])
307
+ code = nil
308
+ Navigator.stub(:new, navigator) do
309
+ code = Controller.send(:execute_commands, {options: options, config: config})
310
+ end
311
+ assert_equal FAILED_NAVIGATING, code
312
+ navigator.verify
307
313
  end
308
- assert_equal RokuBuilder::FAILED_NAVIGATING, code
309
- navigator.verify
310
- end
311
- def test_controller_commands_screen
312
- logger = Logger.new("/dev/null")
313
- navigator = Minitest::Mock.new
314
-
315
- options = {screen: "secret", config: "~/.roku_config.json"}
316
- config = good_config
317
- code, configs = RokuBuilder::ConfigParser.parse_config(options: options, config: config, logger: logger)
318
- navigator.expect(:screen, true, [configs[:screen_config]])
319
- code = nil
320
- RokuBuilder::Navigator.stub(:new, navigator) do
321
- code = RokuBuilder::Controller.send(:execute_commands, {options: options, configs: configs, logger: logger})
314
+ def test_controller_commands_screen
315
+ navigator = Minitest::Mock.new
316
+
317
+ options = build_options({screen: "secret", config: "~/.roku_config.json"})
318
+ config = Config.new(options: options)
319
+ config.instance_variable_set(:@config, good_config)
320
+ config.parse
321
+ navigator.expect(:screen, true, [config.parsed[:screen_config]])
322
+ code = nil
323
+ Navigator.stub(:new, navigator) do
324
+ code = Controller.send(:execute_commands, {options: options, config: config})
325
+ end
326
+ assert_equal SUCCESS, code
327
+ navigator.verify
322
328
  end
323
- assert_equal RokuBuilder::SUCCESS, code
324
- navigator.verify
325
- end
326
- def test_controller_commands_screens
327
- logger = Logger.new("/dev/null")
328
- navigator = Minitest::Mock.new
329
-
330
- options = {screens: true, config: "~/.roku_config.json"}
331
- config = good_config
332
- code, configs = RokuBuilder::ConfigParser.parse_config(options: options, config: config, logger: logger)
333
- navigator.expect(:screens, true)
334
- code = nil
335
- RokuBuilder::Navigator.stub(:new, navigator) do
336
- code = RokuBuilder::Controller.send(:execute_commands, {options: options, configs: configs, logger: logger})
329
+ def test_controller_commands_screens
330
+ navigator = Minitest::Mock.new
331
+
332
+ options = build_options({screens: true, config: "~/.roku_config.json"})
333
+ config = Config.new(options: options)
334
+ config.instance_variable_set(:@config, good_config)
335
+ config.parse
336
+ navigator.expect(:screens, true)
337
+ code = nil
338
+ Navigator.stub(:new, navigator) do
339
+ code = Controller.send(:execute_commands, {options: options, config: config})
340
+ end
341
+ assert_equal SUCCESS, code
342
+ navigator.verify
337
343
  end
338
- assert_equal RokuBuilder::SUCCESS, code
339
- navigator.verify
340
- end
341
- def test_controller_commands_text
342
- logger = Logger.new("/dev/null")
343
- navigator = Minitest::Mock.new
344
-
345
- options = {text: "text string", config: "~/.roku_config.json"}
346
- config = good_config
347
- code, configs = RokuBuilder::ConfigParser.parse_config(options: options, config: config, logger: logger)
348
- navigator.expect(:type, true, [configs[:text_config]])
349
- code = nil
350
- RokuBuilder::Navigator.stub(:new, navigator) do
351
- code = RokuBuilder::Controller.send(:execute_commands, {options: options, configs: configs, logger: logger})
344
+ def test_controller_commands_text
345
+ navigator = Minitest::Mock.new
346
+
347
+ options = build_options({text: "text string", config: "~/.roku_config.json"})
348
+ config = Config.new(options: options)
349
+ config.instance_variable_set(:@config, good_config)
350
+ config.parse
351
+ navigator.expect(:type, true, [config.parsed[:text_config]])
352
+ code = nil
353
+ Navigator.stub(:new, navigator) do
354
+ code = Controller.send(:execute_commands, {options: options, config: config})
355
+ end
356
+ assert_equal SUCCESS, code
357
+ navigator.verify
352
358
  end
353
- assert_equal RokuBuilder::SUCCESS, code
354
- navigator.verify
355
- end
356
- def test_controller_commands_test
357
- logger = Logger.new("/dev/null")
358
- tester = Minitest::Mock.new
359
-
360
- options = {test: true, config: "~/.roku_config.json"}
361
- config = good_config
362
- code, configs = RokuBuilder::ConfigParser.parse_config(options: options, config: config, logger: logger)
363
- tester.expect(:run_tests, true, [configs[:test_config]])
364
- code = nil
365
- RokuBuilder::Tester.stub(:new, tester) do
366
- code = RokuBuilder::Controller.send(:execute_commands, {options: options, configs: configs, logger: logger})
359
+ def test_controller_commands_test
360
+ tester = Minitest::Mock.new
361
+ stager = Minitest::Mock.new
362
+
363
+ options = build_options({test: true, config: "~/.roku_config.json", working: true})
364
+ config = Config.new(options: options)
365
+ config.instance_variable_set(:@config, good_config)
366
+ config.parse
367
+ tester.expect(:run_tests, true, [config.parsed[:test_config]])
368
+ stager.expect(:stage, true)
369
+ stager.expect(:unstage, true)
370
+ code = nil
371
+
372
+ Stager.stub(:new, stager) do
373
+ Tester.stub(:new, tester) do
374
+ code = Controller.send(:execute_commands, {options: options, config: config})
375
+ end
376
+ end
377
+ assert_equal SUCCESS, code
378
+ tester.verify
379
+ stager.verify
367
380
  end
368
- assert_equal RokuBuilder::SUCCESS, code
369
- tester.verify
370
- end
371
- def test_controller_commands_screencapture
372
- logger = Logger.new("/dev/null")
373
- inspector = Minitest::Mock.new
374
-
375
- options = {screencapture: true, out: "/tmp/capture.jpg", config: "~/.roku_config.json"}
376
- config = good_config
377
- code, configs = RokuBuilder::ConfigParser.parse_config(options: options, config: config, logger: logger)
378
- inspector.expect(:screencapture, true, [configs[:screencapture_config]])
379
- code = nil
380
- RokuBuilder::Inspector.stub(:new, inspector) do
381
- code = RokuBuilder::Controller.send(:execute_commands, {options: options, configs: configs, logger: logger})
381
+ def test_controller_commands_screencapture
382
+ inspector = Minitest::Mock.new
383
+
384
+ options = build_options({screencapture: true, out: "/tmp/capture.jpg", config: "~/.roku_config.json"})
385
+ config = Config.new(options: options)
386
+ config.instance_variable_set(:@config, good_config)
387
+ config.parse
388
+ inspector.expect(:screencapture, true, [config.parsed[:screencapture_config]])
389
+ code = nil
390
+ Inspector.stub(:new, inspector) do
391
+ code = Controller.send(:execute_commands, {options: options, config: config})
392
+ end
393
+ assert_equal SUCCESS, code
394
+ inspector.verify
382
395
  end
383
- assert_equal RokuBuilder::SUCCESS, code
384
- inspector.verify
385
- end
386
- def test_controller_commands_screencapture_fail
387
- logger = Logger.new("/dev/null")
388
- inspector = Minitest::Mock.new
389
-
390
- options = {screencapture: true, out: "/tmp", config: "~/.roku_config.json"}
391
- config = good_config
392
- code, configs = RokuBuilder::ConfigParser.parse_config(options: options, config: config, logger: logger)
393
- inspector.expect(:screencapture, false, [configs[:screencapture_config]])
394
- code = nil
395
- RokuBuilder::Inspector.stub(:new, inspector) do
396
- code = RokuBuilder::Controller.send(:execute_commands, {options: options, configs: configs, logger: logger})
396
+ def test_controller_commands_screencapture_fail
397
+ inspector = Minitest::Mock.new
398
+
399
+ options = build_options({screencapture: true, out: "/tmp", config: "~/.roku_config.json"})
400
+ config = Config.new(options: options)
401
+ config.instance_variable_set(:@config, good_config)
402
+ config.parse
403
+ inspector.expect(:screencapture, false, [config.parsed[:screencapture_config]])
404
+ code = nil
405
+ Inspector.stub(:new, inspector) do
406
+ code = Controller.send(:execute_commands, {options: options, config: config })
407
+ end
408
+ assert_equal FAILED_SCREENCAPTURE, code
409
+ inspector.verify
397
410
  end
398
- assert_equal RokuBuilder::FAILED_SCREENCAPTURE, code
399
- inspector.verify
400
- end
401
- def test_controller_commands_print
402
- logger = Logger.new("/dev/null")
403
- stager = Minitest::Mock.new
404
-
405
- options = {print: 'title', config: "~/.roku_config.json"}
406
- configs = {stage_config: {}}
407
- code = nil
408
- scripter_config = {attribute: :title, configs: configs}
409
- print_check = lambda {|print_config| RokuBuilder::SUCCESS if print_config == scripter_config }
410
- stager.expect(:stage, true)
411
- stager.expect(:unstage, true)
412
-
413
- RokuBuilder::Stager.stub(:new, stager) do
414
- RokuBuilder::Scripter.stub(:print, print_check) do
415
- code = RokuBuilder::Controller.send(:execute_commands, {options: options, configs: configs, logger: logger})
411
+ def test_controller_commands_print
412
+ stager = Minitest::Mock.new
413
+
414
+ options = build_options({print: 'title', config: "~/.roku_config.json", working: true})
415
+ configs = {stage_config: {}}
416
+ config = Config.new(options: options)
417
+ config.instance_variable_set(:@parsed, configs)
418
+ code = nil
419
+ scripter_config = {attribute: :title, configs: configs}
420
+ print_check = lambda {|print_config| SUCCESS if print_config == scripter_config }
421
+ stager.expect(:stage, true)
422
+ stager.expect(:unstage, true)
423
+
424
+ Stager.stub(:new, stager) do
425
+ Scripter.stub(:print, print_check) do
426
+ code = Controller.send(:execute_commands, {options: options, config: config})
427
+ end
416
428
  end
429
+ assert_equal SUCCESS, code
430
+ stager.verify
417
431
  end
418
- assert_equal RokuBuilder::SUCCESS, code
419
- stager.verify
420
- end
421
- def test_controller_commands_dostage
422
- logger = Logger.new("/dev/null")
423
- stager = Minitest::Mock.new
432
+ def test_controller_commands_dostage
433
+ stager = Minitest::Mock.new
424
434
 
425
- options = {dostage: true, config: "~/.roku_config.json"}
426
- configs = {stage_config: {}}
427
- code = nil
428
- stager.expect(:stage, true)
435
+ options = build_options({dostage: true, config: "~/.roku_config.json"})
436
+ config = Config.new(options: options)
437
+ config.instance_variable_set(:@parsed, {stage_config: {}})
438
+ code = nil
439
+ stager.expect(:stage, true)
429
440
 
430
- RokuBuilder::Stager.stub(:new, stager) do
431
- code = RokuBuilder::Controller.send(:execute_commands, {options: options, configs: configs, logger: logger})
441
+ Stager.stub(:new, stager) do
442
+ code = Controller.send(:execute_commands, {options: options, config: config})
443
+ end
444
+ assert_equal true, code
445
+ stager.verify
432
446
  end
433
- assert_equal true, code
434
- stager.verify
435
- end
436
447
 
437
- def test_controller_commands_dounstage
438
- logger = Logger.new("/dev/null")
439
- stager = Minitest::Mock.new
448
+ def test_controller_commands_dounstage
449
+ stager = Minitest::Mock.new
440
450
 
441
- options = {dounstage: true, config: "~/.roku_config.json"}
442
- configs = {stage_config: {}}
443
- code = nil
444
- stager.expect(:unstage, true)
451
+ options = build_options({dounstage: true, config: "~/.roku_config.json"})
452
+ configs = {stage_config: {}}
453
+ config = Config.new(options: options)
454
+ config.instance_variable_set(:@parsed, configs)
455
+ code = nil
456
+ stager.expect(:unstage, true)
445
457
 
446
- RokuBuilder::Stager.stub(:new, stager) do
447
- code = RokuBuilder::Controller.send(:execute_commands, {options: options, configs: configs, logger: logger})
458
+ Stager.stub(:new, stager) do
459
+ code = Controller.send(:execute_commands, {options: options, config: config})
460
+ end
461
+ assert_equal true, code
462
+ stager.verify
448
463
  end
449
- assert_equal true, code
450
- stager.verify
451
464
  end
452
465
  end