libclimate-ruby 0.17.0 → 0.17.0.1

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.
@@ -15,347 +15,347 @@ require 'stringio'
15
15
 
16
16
  class Test_Climate_minimal_CLASP < Test::Unit::TestCase
17
17
 
18
- def test_no_arguments_no_mods
19
-
20
- climate = LibCLImate::Climate.new do |cl|
21
-
22
- ;
23
- end
24
-
25
- assert $stdout.equal? climate.stdout
26
- assert $stderr.equal? climate.stderr
27
- end
28
-
29
- def test_no_arguments_set_streams
30
-
31
- climate = LibCLImate::Climate.new do |cl|
32
-
33
- cl.stdout = $stdout
34
- cl.stderr = $stderr
35
- end
36
-
37
- assert $stdout.equal? climate.stdout
38
- assert $stderr.equal? climate.stderr
39
- end
40
-
41
- def test_help_to_string
42
-
43
- str = StringIO.new
44
-
45
- climate = LibCLImate::Climate.new do |cl|
46
-
47
- cl.program_name = 'program'
48
- cl.stdout = str
49
- cl.exit_on_usage = false
50
- end
51
-
52
- argv = %w{ --help }
53
-
54
- r = climate.run argv
55
-
56
- assert_not_nil r
57
- assert_kind_of ::Hash, r
58
- assert 3 <= r.size
59
- assert_not_nil r[:flags]
60
- assert_not_nil r[:options]
61
- assert_not_nil r[:values]
62
- assert_equal 4, r[:flags].size
63
- assert_equal 4, r.flags.size
64
- assert_equal 1, r[:flags][:given].size
65
- assert_equal 1, r[:flags][:handled].size
66
- assert_equal 0, r[:flags][:unhandled].size
67
- assert_equal 0, r[:flags][:unknown].size
68
- assert_equal 4, r[:options].size
69
- assert_equal 0, r[:options][:given].size
70
- assert_equal 0, r[:options][:handled].size
71
- assert_equal 0, r[:options][:unhandled].size
72
- assert_equal 0, r[:options][:unknown].size
73
- assert_equal 0, r[:values].size
74
- assert_nil r.double_slash_index
75
-
76
- lines = str.string.split(/\n/)
77
- lines = lines.reject { |line| line.chomp.strip.empty? }
78
- lines = lines.map { |line| line.chomp.strip }
79
-
80
- assert_equal 6, lines.size
81
- assert_equal "USAGE: program [ ... flags and options ... ]", lines[0]
82
- assert_equal "flags/options:", lines[1]
83
- assert_equal "--help", lines[2]
84
- assert_equal "shows this help and terminates", lines[3]
85
- assert_equal "--version", lines[4]
86
- assert_equal "shows version and terminates", lines[5]
87
- end
18
+ def test_no_arguments_no_mods
19
+
20
+ climate = LibCLImate::Climate.new do |cl|
21
+
22
+ ;
23
+ end
24
+
25
+ assert $stdout.equal? climate.stdout
26
+ assert $stderr.equal? climate.stderr
27
+ end
28
+
29
+ def test_no_arguments_set_streams
30
+
31
+ climate = LibCLImate::Climate.new do |cl|
32
+
33
+ cl.stdout = $stdout
34
+ cl.stderr = $stderr
35
+ end
36
+
37
+ assert $stdout.equal? climate.stdout
38
+ assert $stderr.equal? climate.stderr
39
+ end
40
+
41
+ def test_help_to_string
42
+
43
+ str = StringIO.new
44
+
45
+ climate = LibCLImate::Climate.new do |cl|
46
+
47
+ cl.program_name = 'program'
48
+ cl.stdout = str
49
+ cl.exit_on_usage = false
50
+ end
51
+
52
+ argv = %w{ --help }
53
+
54
+ r = climate.run argv
55
+
56
+ assert_not_nil r
57
+ assert_kind_of ::Hash, r
58
+ assert 3 <= r.size
59
+ assert_not_nil r[:flags]
60
+ assert_not_nil r[:options]
61
+ assert_not_nil r[:values]
62
+ assert_equal 4, r[:flags].size
63
+ assert_equal 4, r.flags.size
64
+ assert_equal 1, r[:flags][:given].size
65
+ assert_equal 1, r[:flags][:handled].size
66
+ assert_equal 0, r[:flags][:unhandled].size
67
+ assert_equal 0, r[:flags][:unknown].size
68
+ assert_equal 4, r[:options].size
69
+ assert_equal 0, r[:options][:given].size
70
+ assert_equal 0, r[:options][:handled].size
71
+ assert_equal 0, r[:options][:unhandled].size
72
+ assert_equal 0, r[:options][:unknown].size
73
+ assert_equal 0, r[:values].size
74
+ assert_nil r.double_slash_index
75
+
76
+ lines = str.string.split(/\n/)
77
+ lines = lines.reject { |line| line.chomp.strip.empty? }
78
+ lines = lines.map { |line| line.chomp.strip }
79
+
80
+ assert_equal 6, lines.size
81
+ assert_equal "USAGE: program [ ... flags and options ... ]", lines[0]
82
+ assert_equal "flags/options:", lines[1]
83
+ assert_equal "--help", lines[2]
84
+ assert_equal "shows this help and terminates", lines[3]
85
+ assert_equal "--version", lines[4]
86
+ assert_equal "shows version and terminates", lines[5]
87
+ end
88
88
 
89
- def test_help_to_string_with_info_line
89
+ def test_help_to_string_with_info_line
90
90
 
91
- str = StringIO.new
91
+ str = StringIO.new
92
92
 
93
- climate = LibCLImate::Climate.new do |cl|
93
+ climate = LibCLImate::Climate.new do |cl|
94
94
 
95
- cl.program_name = 'program'
96
- cl.info_lines = 'Synesis Software Open Source'
97
- cl.stdout = str
98
- cl.exit_on_usage = false
99
- end
95
+ cl.program_name = 'program'
96
+ cl.info_lines = 'Synesis Software Open Source'
97
+ cl.stdout = str
98
+ cl.exit_on_usage = false
99
+ end
100
100
 
101
- argv = %w{ --help }
101
+ argv = %w{ --help }
102
102
 
103
- r = climate.run argv
103
+ r = climate.run argv
104
104
 
105
- assert_not_nil r
106
- assert_kind_of ::Hash, r
107
- assert 3 <= r.size
108
- assert_not_nil r[:flags]
109
- assert_not_nil r[:options]
110
- assert_not_nil r[:values]
111
- assert_equal 4, r[:flags].size
112
- assert_equal 4, r.flags.size
113
- assert_equal 1, r[:flags][:given].size
114
- assert_equal 1, r[:flags][:handled].size
115
- assert_equal 0, r[:flags][:unhandled].size
116
- assert_equal 0, r[:flags][:unknown].size
117
- assert_equal 4, r[:options].size
118
- assert_equal 0, r[:options][:given].size
119
- assert_equal 0, r[:options][:handled].size
120
- assert_equal 0, r[:options][:unhandled].size
121
- assert_equal 0, r[:options][:unknown].size
122
- assert_equal 0, r[:values].size
123
- assert_nil r.double_slash_index
105
+ assert_not_nil r
106
+ assert_kind_of ::Hash, r
107
+ assert 3 <= r.size
108
+ assert_not_nil r[:flags]
109
+ assert_not_nil r[:options]
110
+ assert_not_nil r[:values]
111
+ assert_equal 4, r[:flags].size
112
+ assert_equal 4, r.flags.size
113
+ assert_equal 1, r[:flags][:given].size
114
+ assert_equal 1, r[:flags][:handled].size
115
+ assert_equal 0, r[:flags][:unhandled].size
116
+ assert_equal 0, r[:flags][:unknown].size
117
+ assert_equal 4, r[:options].size
118
+ assert_equal 0, r[:options][:given].size
119
+ assert_equal 0, r[:options][:handled].size
120
+ assert_equal 0, r[:options][:unhandled].size
121
+ assert_equal 0, r[:options][:unknown].size
122
+ assert_equal 0, r[:values].size
123
+ assert_nil r.double_slash_index
124
124
 
125
- lines = str.string.split(/\n/)
126
- lines = lines.reject { |line| line.chomp.strip.empty? }
127
- lines = lines.map { |line| line.chomp.strip }
125
+ lines = str.string.split(/\n/)
126
+ lines = lines.reject { |line| line.chomp.strip.empty? }
127
+ lines = lines.map { |line| line.chomp.strip }
128
128
 
129
- assert_equal 7, lines.size
130
- index = -1
131
- assert_equal 'Synesis Software Open Source', lines[index += 1]
132
- assert_equal "USAGE: program [ ... flags and options ... ]", lines[index += 1]
133
- assert_equal "flags/options:", lines[index += 1]
134
- assert_equal "--help", lines[index += 1]
135
- assert_equal "shows this help and terminates", lines[index += 1]
136
- assert_equal "--version", lines[index += 1]
137
- assert_equal "shows version and terminates", lines[index += 1]
138
- end
129
+ assert_equal 7, lines.size
130
+ index = -1
131
+ assert_equal 'Synesis Software Open Source', lines[index += 1]
132
+ assert_equal "USAGE: program [ ... flags and options ... ]", lines[index += 1]
133
+ assert_equal "flags/options:", lines[index += 1]
134
+ assert_equal "--help", lines[index += 1]
135
+ assert_equal "shows this help and terminates", lines[index += 1]
136
+ assert_equal "--version", lines[index += 1]
137
+ assert_equal "shows version and terminates", lines[index += 1]
138
+ end
139
139
 
140
- def test_version_to_string
140
+ def test_version_to_string
141
141
 
142
- str = StringIO.new
143
-
144
- climate = LibCLImate::Climate.new do |cl|
145
-
146
- cl.program_name = 'program'
147
- cl.version = [ 1, 2, 3, 4 ]
148
- cl.stdout = str
149
- cl.exit_on_usage = false
150
- end
151
-
152
- argv = %w{ --version }
153
-
154
- climate.run argv
155
-
156
- lines = str.string.split(/\n/)
157
- lines = lines.reject { |line| line.chomp.strip.empty? }
158
- lines = lines.map { |line| line.chomp.strip }
159
-
160
- assert_equal 1, lines.size
161
- assert_equal "program 1.2.3.4", lines[0]
162
- end
163
-
164
- def test_unrecognised_flag
165
-
166
- strout = StringIO.new
167
- strerr = StringIO.new
168
-
169
- climate = LibCLImate::Climate.new do |cl|
170
-
171
- cl.program_name = 'program'
172
- cl.stdout = strout
173
- cl.stderr = strerr
174
- cl.exit_on_unknown = false
175
- end
176
-
177
- argv = %w{ --unknown }
178
-
179
- climate.run argv
180
-
181
- lines_out = strout.string.split /\n/
182
- lines_err = strerr.string.split /\n/
183
-
184
- assert_equal 0, lines_out.size
185
- assert_equal 1, lines_err.size
186
- assert_equal "program: unrecognised flag '--unknown'; use --help for usage", lines_err[0]
187
- end
142
+ str = StringIO.new
143
+
144
+ climate = LibCLImate::Climate.new do |cl|
145
+
146
+ cl.program_name = 'program'
147
+ cl.version = [ 1, 2, 3, 4 ]
148
+ cl.stdout = str
149
+ cl.exit_on_usage = false
150
+ end
151
+
152
+ argv = %w{ --version }
153
+
154
+ climate.run argv
155
+
156
+ lines = str.string.split(/\n/)
157
+ lines = lines.reject { |line| line.chomp.strip.empty? }
158
+ lines = lines.map { |line| line.chomp.strip }
159
+
160
+ assert_equal 1, lines.size
161
+ assert_equal "program 1.2.3.4", lines[0]
162
+ end
163
+
164
+ def test_unrecognised_flag
165
+
166
+ strout = StringIO.new
167
+ strerr = StringIO.new
168
+
169
+ climate = LibCLImate::Climate.new do |cl|
170
+
171
+ cl.program_name = 'program'
172
+ cl.stdout = strout
173
+ cl.stderr = strerr
174
+ cl.exit_on_unknown = false
175
+ end
176
+
177
+ argv = %w{ --unknown }
178
+
179
+ climate.run argv
180
+
181
+ lines_out = strout.string.split /\n/
182
+ lines_err = strerr.string.split /\n/
183
+
184
+ assert_equal 0, lines_out.size
185
+ assert_equal 1, lines_err.size
186
+ assert_equal "program: unrecognised flag '--unknown'; use --help for usage", lines_err[0]
187
+ end
188
188
 
189
- def test_unrecognised_option
189
+ def test_unrecognised_option
190
190
 
191
- strout = StringIO.new
192
- strerr = StringIO.new
193
-
194
- climate = LibCLImate::Climate.new do |cl|
195
-
196
- cl.program_name = 'program'
197
- cl.stdout = strout
198
- cl.stderr = strerr
199
- cl.exit_on_unknown = false
200
- end
201
-
202
- argv = %w{ --unknown=10 }
203
-
204
- climate.run argv
205
-
206
- lines_out = strout.string.split /\n/
207
- lines_err = strerr.string.split /\n/
208
-
209
- assert_equal 0, lines_out.size
210
- assert_equal 1, lines_err.size
211
- assert_equal "program: unrecognised option '--unknown=10'; use --help for usage", lines_err[0]
212
- end
213
-
214
- def test_one_custom_flag_help_to_string
215
-
216
- str = StringIO.new
217
-
218
- is_verbose = false
219
-
220
- climate = LibCLImate::Climate.new do |cl|
191
+ strout = StringIO.new
192
+ strerr = StringIO.new
193
+
194
+ climate = LibCLImate::Climate.new do |cl|
195
+
196
+ cl.program_name = 'program'
197
+ cl.stdout = strout
198
+ cl.stderr = strerr
199
+ cl.exit_on_unknown = false
200
+ end
201
+
202
+ argv = %w{ --unknown=10 }
203
+
204
+ climate.run argv
205
+
206
+ lines_out = strout.string.split /\n/
207
+ lines_err = strerr.string.split /\n/
208
+
209
+ assert_equal 0, lines_out.size
210
+ assert_equal 1, lines_err.size
211
+ assert_equal "program: unrecognised option '--unknown=10'; use --help for usage", lines_err[0]
212
+ end
213
+
214
+ def test_one_custom_flag_help_to_string
215
+
216
+ str = StringIO.new
217
+
218
+ is_verbose = false
219
+
220
+ climate = LibCLImate::Climate.new do |cl|
221
221
 
222
- cl.program_name = 'program'
223
- cl.stdout = str
224
- cl.exit_on_usage = false
222
+ cl.program_name = 'program'
223
+ cl.stdout = str
224
+ cl.exit_on_usage = false
225
225
 
226
- cl.add_flag('--succinct', alias: '-s', help: 'operates succinctly')
227
- cl.add_flag('--verbose', alias: '-v', help: 'operates verbosely') { is_verbose = true }
228
- end
226
+ cl.add_flag('--succinct', alias: '-s', help: 'operates succinctly')
227
+ cl.add_flag('--verbose', alias: '-v', help: 'operates verbosely') { is_verbose = true }
228
+ end
229
229
 
230
- argv = %w{ --help --verbose --succinct }
230
+ argv = %w{ --help --verbose --succinct }
231
231
 
232
- r = climate.run argv
232
+ r = climate.run argv
233
233
 
234
- assert_not_nil r
235
- assert_kind_of ::Hash, r
236
- assert 3 <= r.size
237
- assert_not_nil r[:flags]
238
- assert_not_nil r[:options]
239
- assert_not_nil r[:values]
240
- assert_equal 4, r[:flags].size
241
- assert_equal 3, r[:flags][:given].size
242
- assert_equal 2, r[:flags][:handled].size
243
- assert_equal 1, r[:flags][:unhandled].size
244
- assert_equal 0, r[:flags][:unknown].size
245
- assert_equal 4, r[:options].size
246
- assert_equal 0, r[:options][:given].size
247
- assert_equal 0, r[:options][:handled].size
248
- assert_equal 0, r[:options][:unhandled].size
249
- assert_equal 0, r[:options][:unknown].size
250
- assert_equal 0, r[:values].size
251
- assert_equal 0, r.values.size
252
- lines = str.string.split(/\n/)
253
- lines = lines.reject { |line| line.chomp.strip.empty? }
254
- lines = lines.map { |line| line.chomp.strip }
255
-
256
- assert_equal 12, lines.size
257
- index = -1
258
- assert_equal "USAGE: program [ ... flags and options ... ]", lines[index += 1]
259
- assert_equal "flags/options:", lines[index += 1]
260
- assert_equal "--help", lines[index += 1]
261
- assert_equal "shows this help and terminates", lines[index += 1]
262
- assert_equal "--version", lines[index += 1]
263
- assert_equal "shows version and terminates", lines[index += 1]
264
- assert_equal "-s", lines[index += 1]
265
- assert_equal "--succinct", lines[index += 1]
266
- assert_equal "operates succinctly", lines[index += 1]
267
- assert_equal "-v", lines[index += 1]
268
- assert_equal "--verbose", lines[index += 1]
269
- assert_equal "operates verbosely", lines[index += 1]
270
- end
271
-
272
- def test_one_custom_flag_with_select
273
-
274
- str = StringIO.new
275
-
276
- is_verbose = false
277
-
278
- climate = LibCLImate::Climate.new do |cl|
279
-
280
- cl.program_name = 'program'
281
- cl.stdout = str
282
- cl.exit_on_usage = false
283
-
284
- cl.add_flag('--verbose', alias: '-v', help: 'operates verbosely') { is_verbose = true }
285
- end
286
-
287
- argv = %w{ --verbose }
288
-
289
- r = climate.run argv
290
-
291
- assert_not_nil r
292
- assert_kind_of ::Hash, r
293
- assert 3 <= r.size
294
- assert_not_nil r[:flags]
295
- assert_not_nil r[:options]
296
- assert_not_nil r[:values]
297
- assert_equal 4, r[:flags].size
298
- assert_equal 1, r[:flags][:given].size
299
- assert_equal 1, r[:flags][:handled].size
300
- assert_equal 0, r[:flags][:unhandled].size
301
- assert_equal 0, r[:flags][:unknown].size
302
- assert_equal 4, r[:options].size
303
- assert_equal 0, r[:options][:given].size
304
- assert_equal 0, r[:options][:handled].size
305
- assert_equal 0, r[:options][:unhandled].size
306
- assert_equal 0, r[:options][:unknown].size
307
- assert_equal 0, r[:values].size
308
- lines = str.string.split(/\n/)
309
- lines = lines.reject { |line| line.chomp.strip.empty? }
310
- lines = lines.map { |line| line.chomp.strip }
311
-
312
- assert_equal 0, lines.size
313
- assert is_verbose, "is_verbose not altered"
314
- end
315
-
316
- def test_one_custom_option_with_select
317
-
318
- str = StringIO.new
319
-
320
- verbosity = 1
321
-
322
- climate = LibCLImate::Climate.new do |cl|
323
-
324
- cl.program_name = 'program'
325
- cl.stdout = str
326
- cl.exit_on_usage = false
327
-
328
- cl.add_option('--verbosity', alias: '-v', help: 'determines level of verbose operation') { |o| verbosity = o.value }
329
- end
330
-
331
- argv = %w{ -v 2 }
332
-
333
- r = climate.run argv
334
-
335
- assert_not_nil r
336
- assert_kind_of ::Hash, r
337
- assert 3 <= r.size
338
- assert_not_nil r[:flags]
339
- assert_not_nil r[:options]
340
- assert_not_nil r[:values]
341
- assert_equal 4, r[:flags].size
342
- assert_equal 0, r[:flags][:given].size
343
- assert_equal 0, r[:flags][:handled].size
344
- assert_equal 0, r[:flags][:unhandled].size
345
- assert_equal 0, r[:flags][:unknown].size
346
- assert_equal 4, r[:options].size
347
- assert_equal 1, r[:options][:given].size
348
- assert_equal 1, r[:options][:handled].size
349
- assert_equal 0, r[:options][:unhandled].size
350
- assert_equal 0, r[:options][:unknown].size
351
- assert_equal 0, r[:values].size
352
- lines = str.string.split(/\n/)
353
- lines = lines.reject { |line| line.chomp.strip.empty? }
354
- lines = lines.map { |line| line.chomp.strip }
355
-
356
- assert_equal 0, lines.size
357
- assert_equal '2', verbosity
358
- end
234
+ assert_not_nil r
235
+ assert_kind_of ::Hash, r
236
+ assert 3 <= r.size
237
+ assert_not_nil r[:flags]
238
+ assert_not_nil r[:options]
239
+ assert_not_nil r[:values]
240
+ assert_equal 4, r[:flags].size
241
+ assert_equal 3, r[:flags][:given].size
242
+ assert_equal 2, r[:flags][:handled].size
243
+ assert_equal 1, r[:flags][:unhandled].size
244
+ assert_equal 0, r[:flags][:unknown].size
245
+ assert_equal 4, r[:options].size
246
+ assert_equal 0, r[:options][:given].size
247
+ assert_equal 0, r[:options][:handled].size
248
+ assert_equal 0, r[:options][:unhandled].size
249
+ assert_equal 0, r[:options][:unknown].size
250
+ assert_equal 0, r[:values].size
251
+ assert_equal 0, r.values.size
252
+ lines = str.string.split(/\n/)
253
+ lines = lines.reject { |line| line.chomp.strip.empty? }
254
+ lines = lines.map { |line| line.chomp.strip }
255
+
256
+ assert_equal 12, lines.size
257
+ index = -1
258
+ assert_equal "USAGE: program [ ... flags and options ... ]", lines[index += 1]
259
+ assert_equal "flags/options:", lines[index += 1]
260
+ assert_equal "--help", lines[index += 1]
261
+ assert_equal "shows this help and terminates", lines[index += 1]
262
+ assert_equal "--version", lines[index += 1]
263
+ assert_equal "shows version and terminates", lines[index += 1]
264
+ assert_equal "-s", lines[index += 1]
265
+ assert_equal "--succinct", lines[index += 1]
266
+ assert_equal "operates succinctly", lines[index += 1]
267
+ assert_equal "-v", lines[index += 1]
268
+ assert_equal "--verbose", lines[index += 1]
269
+ assert_equal "operates verbosely", lines[index += 1]
270
+ end
271
+
272
+ def test_one_custom_flag_with_select
273
+
274
+ str = StringIO.new
275
+
276
+ is_verbose = false
277
+
278
+ climate = LibCLImate::Climate.new do |cl|
279
+
280
+ cl.program_name = 'program'
281
+ cl.stdout = str
282
+ cl.exit_on_usage = false
283
+
284
+ cl.add_flag('--verbose', alias: '-v', help: 'operates verbosely') { is_verbose = true }
285
+ end
286
+
287
+ argv = %w{ --verbose }
288
+
289
+ r = climate.run argv
290
+
291
+ assert_not_nil r
292
+ assert_kind_of ::Hash, r
293
+ assert 3 <= r.size
294
+ assert_not_nil r[:flags]
295
+ assert_not_nil r[:options]
296
+ assert_not_nil r[:values]
297
+ assert_equal 4, r[:flags].size
298
+ assert_equal 1, r[:flags][:given].size
299
+ assert_equal 1, r[:flags][:handled].size
300
+ assert_equal 0, r[:flags][:unhandled].size
301
+ assert_equal 0, r[:flags][:unknown].size
302
+ assert_equal 4, r[:options].size
303
+ assert_equal 0, r[:options][:given].size
304
+ assert_equal 0, r[:options][:handled].size
305
+ assert_equal 0, r[:options][:unhandled].size
306
+ assert_equal 0, r[:options][:unknown].size
307
+ assert_equal 0, r[:values].size
308
+ lines = str.string.split(/\n/)
309
+ lines = lines.reject { |line| line.chomp.strip.empty? }
310
+ lines = lines.map { |line| line.chomp.strip }
311
+
312
+ assert_equal 0, lines.size
313
+ assert is_verbose, "is_verbose not altered"
314
+ end
315
+
316
+ def test_one_custom_option_with_select
317
+
318
+ str = StringIO.new
319
+
320
+ verbosity = 1
321
+
322
+ climate = LibCLImate::Climate.new do |cl|
323
+
324
+ cl.program_name = 'program'
325
+ cl.stdout = str
326
+ cl.exit_on_usage = false
327
+
328
+ cl.add_option('--verbosity', alias: '-v', help: 'determines level of verbose operation') { |o| verbosity = o.value }
329
+ end
330
+
331
+ argv = %w{ -v 2 }
332
+
333
+ r = climate.run argv
334
+
335
+ assert_not_nil r
336
+ assert_kind_of ::Hash, r
337
+ assert 3 <= r.size
338
+ assert_not_nil r[:flags]
339
+ assert_not_nil r[:options]
340
+ assert_not_nil r[:values]
341
+ assert_equal 4, r[:flags].size
342
+ assert_equal 0, r[:flags][:given].size
343
+ assert_equal 0, r[:flags][:handled].size
344
+ assert_equal 0, r[:flags][:unhandled].size
345
+ assert_equal 0, r[:flags][:unknown].size
346
+ assert_equal 4, r[:options].size
347
+ assert_equal 1, r[:options][:given].size
348
+ assert_equal 1, r[:options][:handled].size
349
+ assert_equal 0, r[:options][:unhandled].size
350
+ assert_equal 0, r[:options][:unknown].size
351
+ assert_equal 0, r[:values].size
352
+ lines = str.string.split(/\n/)
353
+ lines = lines.reject { |line| line.chomp.strip.empty? }
354
+ lines = lines.map { |line| line.chomp.strip }
355
+
356
+ assert_equal 0, lines.size
357
+ assert_equal '2', verbosity
358
+ end
359
359
  end
360
360
 
361
361
  # ############################## end of file ############################# #