roku_builder 3.12.8 → 3.13.0

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