win32-taskscheduler 2.0.1 → 2.0.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,169 +0,0 @@
1
- require 'spec_helper'
2
- require 'win32ole'
3
- require 'win32/taskscheduler'
4
-
5
- RSpec.describe Win32::TaskScheduler, :windows_only do
6
- before { create_test_folder }
7
- after { clear_them }
8
- before { load_task_variables }
9
-
10
- describe '#Constructor' do
11
- let(:ts) { Win32::TaskScheduler }
12
- context 'no of arguments' do
13
- it 'zero' do
14
- expect(ts.new).to be_a(ts)
15
- expect(no_of_tasks).to eq(0)
16
- end
17
-
18
- it 'one: task' do
19
- expect(ts.new(@task)).to be_a(ts)
20
- expect(no_of_tasks).to eq(0)
21
- end
22
-
23
- it 'two: task, trigger; trigger_type is blank' do
24
- @trigger[:trigger_type] = nil
25
- expect { ts.new(@task, @trigger) }.to raise_error(ArgumentError)
26
- expect(no_of_tasks).to eq(0)
27
- end
28
-
29
- it 'two: task, trigger; trigger_type is not blank; Creates a task' do
30
- expect(ts.new(@task, @trigger)).to be_a(ts)
31
- expect(no_of_tasks).to eq(1)
32
- end
33
-
34
- it 'three: task, trigger, folder; Creates a task' do
35
- expect(ts.new(@task, @trigger, @folder)).to be_a(ts)
36
- expect(no_of_tasks).to eq(1)
37
- end
38
-
39
- it 'four: task, trigger, folder, force; Creates a task' do
40
- expect(ts.new(@task, @trigger, @folder, @force)).to be_a(ts)
41
- expect(no_of_tasks).to eq(1)
42
- end
43
-
44
- it 'raises an error for more than four arguments' do
45
- expect { ts.new(@task, @trigger, @folder, @force, 1) }.to raise_error(ArgumentError)
46
- expect { ts.new(@task, @trigger, @folder, @force, 'abc') }.to raise_error(ArgumentError)
47
- expect(no_of_tasks).to eq(0)
48
- end
49
- end
50
- end
51
-
52
- describe '#Tasks' do
53
- before { create_task }
54
- it 'Returns an Array' do
55
- expect(@ts.tasks).to be_a(Array)
56
- end
57
-
58
- it 'Returns an Empty Array if no task is present' do
59
- delete_tasks_in(@test_folder)
60
- expect(@ts.tasks).to be_empty
61
- end
62
- end
63
-
64
- describe '#exists?' do
65
- let(:folder) { '\\Foo' }
66
- let(:force) { true }
67
- before { create_task }
68
-
69
- context 'At Root' do
70
- it 'Requires only task name' do
71
- expect(@ts.exists?(@task)).to be_truthy
72
- end
73
-
74
- it 'Does not require root to be appended' do
75
- task = @test_path + @folder + '\\' + @task
76
- expect(@ts.exists?(task)).to be_falsey
77
- end
78
- end
79
-
80
- context 'At Nested folder' do
81
- it 'Returns false for non existing folder' do
82
- task = folder + '\\' + @task
83
- expect(@ts.exists?(task)).to be_falsey
84
- end
85
-
86
- it 'Returns true for existing folder' do
87
- @ts = Win32::TaskScheduler.new(@task, @trigger, folder, force)
88
- task = @test_path + folder + '\\' + @task
89
- expect(@ts.exists?(task)).to be_truthy
90
- end
91
- end
92
- end
93
-
94
- describe '#get_task' do
95
- before { create_task }
96
- it 'Requires a string: Task Name' do
97
- expect { @ts.get_task(0) }.to raise_error(TypeError)
98
- end
99
- end
100
-
101
- describe '#activate' do
102
- before { create_task }
103
- it 'Requires a string: Task Name' do
104
- expect { @ts.activate(0) }.to raise_error(TypeError)
105
- end
106
- end
107
-
108
- describe '#delete' do
109
- before { create_task }
110
- it 'Requires a string: Task Name' do
111
- expect { @ts.delete(0) }.to raise_error(TypeError)
112
- end
113
- end
114
-
115
- describe '#logon_type' do
116
- let(:user_id) { 'User' }
117
- context 'With Password' do
118
- let(:password) { 'Password' }
119
- it 'Returns PASSWORD flag for non-system users' do
120
- expect(@ts.send(:logon_type, user_id, password)).to eq(Win32::TaskScheduler::TASK_LOGON_PASSWORD)
121
- end
122
-
123
- it 'Returns GROUP flag for group users' do
124
- user_id = 'Guests'
125
- expect(@ts.send(:logon_type, user_id, password)).to eq(Win32::TaskScheduler::TASK_LOGON_GROUP)
126
- end
127
-
128
- it 'Returns SERVICE_ACCOUNT flag for service-account users' do
129
- user_id = 'System'
130
- expect(@ts.send(:logon_type, user_id, password)).to eq(Win32::TaskScheduler::TASK_LOGON_SERVICE_ACCOUNT)
131
- end
132
- end
133
-
134
- context 'Without Password' do
135
- let(:password) { nil }
136
- it 'Returns INTERACTIVE_TOKEN flag for non-system users' do
137
- expect(@ts.send(:logon_type, user_id, password)).to eq(Win32::TaskScheduler::TASK_LOGON_INTERACTIVE_TOKEN)
138
- end
139
-
140
- it 'Returns GROUP flag for group users' do
141
- user_id = 'Guests'
142
- expect(@ts.send(:logon_type, user_id, password)).to eq(Win32::TaskScheduler::TASK_LOGON_GROUP)
143
- end
144
-
145
- it 'Returns SERVICE_ACCOUNT flag for service-account users' do
146
- user_id = 'System'
147
- expect(@ts.send(:logon_type, user_id, password)).to eq(Win32::TaskScheduler::TASK_LOGON_SERVICE_ACCOUNT)
148
- end
149
- end
150
- end
151
-
152
- private
153
-
154
- def load_task_variables
155
- time = Time.now
156
- # Ensuring root path will be test path
157
- allow_any_instance_of(Win32::TaskScheduler).to receive(:root_path).and_return(@test_path)
158
- @app = 'notepad.exe'
159
- @task = 'test_task'
160
- @folder = @test_path
161
- @force = false
162
- @trigger = { start_year: time.year, start_month: time.month,
163
- start_day: time.day, start_hour: time.hour,
164
- start_minute: time.min,
165
- # Will update this in test cases when required
166
- trigger_type: Win32::TaskScheduler::ONCE }
167
- @ts = Win32::TaskScheduler.new
168
- end
169
- end
@@ -1,690 +0,0 @@
1
- ##########################################################################
2
- # test_taskscheduler.rb
3
- #
4
- # Test suite for the win32-taskscheduler package. You should run this
5
- # via the 'rake test' task.
6
- ##########################################################################
7
- require 'win32/taskscheduler'
8
- require 'win32/security'
9
- require 'socket'
10
- require 'test-unit'
11
- require 'etc'
12
- include Win32
13
-
14
- class TC_TaskScheduler < Test::Unit::TestCase
15
- def self.startup
16
- @@host = Socket.gethostname
17
- @@user = Etc.getlogin
18
- @@elevated = Win32::Security.elevated_security?
19
- end
20
-
21
- def setup
22
- @task = 'foo'
23
-
24
- @trigger = {
25
- :start_year => 2015,
26
- :start_month => 4,
27
- :start_day => 11,
28
- :start_hour => 7,
29
- :start_minute => 14,
30
- :trigger_type => TaskScheduler::DAILY,
31
- :type => { :days_interval => 1 }
32
- }
33
-
34
- @ts = TaskScheduler.new
35
- end
36
-
37
- # Helper method
38
- def setup_task
39
- @ts.new_work_item(@task, @trigger)
40
- @ts.activate(@task)
41
- end
42
-
43
- test "version constant is set to expected value" do
44
- assert_equal('0.3.2', TaskScheduler::VERSION)
45
- end
46
-
47
- test "account_information method basic functionality" do
48
- assert_respond_to(@ts, :account_information)
49
- end
50
-
51
- test "account_information returns the task owner" do
52
- setup_task
53
- assert_equal("#{@@host}\\#{@@user}", @ts.account_information)
54
- end
55
-
56
- test "account_information returns nil if no task has been activated" do
57
- assert_nil(@ts.account_information)
58
- end
59
-
60
- test "account_information does not accept any arguments" do
61
- assert_raise(ArgumentError){ @ts.account_information('foo') }
62
- end
63
-
64
- test "set_account_information basic functionality" do
65
- assert_respond_to(@ts, :set_account_information)
66
- end
67
-
68
- test "set_account_information works as expected" do
69
- setup_task
70
- #assert_nothing_raised{ @ts.set_account_information(@@user, 'XXXX') }
71
- #assert_equal('test', @ts.account_information)
72
- end
73
-
74
- test "set_account_information requires two arguments" do
75
- setup_task
76
- assert_raise(ArgumentError){ @ts.set_account_information }
77
- assert_raise(ArgumentError){ @ts.set_account_information('x') }
78
- assert_raise(ArgumentError){ @ts.set_account_information('x', 'y', 'z') }
79
- end
80
-
81
- test "arguments to set_account_information must be strings" do
82
- setup_task
83
- assert_raise(TypeError){ @ts.set_account_information(1, 'XXX') }
84
- assert_raise(TypeError){ @ts.set_account_information('x', 1) }
85
- end
86
-
87
- test "activate method basic functionality" do
88
- assert_respond_to(@ts, :activate)
89
- end
90
-
91
- test "activate behaves as expected" do
92
- @ts.new_work_item(@task, @trigger)
93
- assert_nothing_raised{ @ts.activate(@task) }
94
- end
95
-
96
- test "calling activate on the same object multiple times has no effect" do
97
- @ts.new_work_item(@task, @trigger)
98
- assert_nothing_raised{ @ts.activate(@task) }
99
- assert_nothing_raised{ @ts.activate(@task) }
100
- end
101
-
102
- test "activate requires a single argument" do
103
- assert_raise(ArgumentError){ @ts.activate }
104
- assert_raise(ArgumentError){ @ts.activate('foo', 'bar') }
105
- end
106
-
107
- test "activate requires a string argument" do
108
- assert_raise(TypeError){ @ts.activate(1) }
109
- end
110
-
111
- test "attempting to activate a bad task results in an error" do
112
- assert_raise(TaskScheduler::Error){ @ts.activate('bogus') }
113
- end
114
-
115
- test "application_name basic functionality" do
116
- assert_respond_to(@ts, :application_name)
117
- end
118
-
119
- test "application_name returns a string or nil" do
120
- setup_task
121
- assert_nothing_raised{ @ts.application_name }
122
- assert_kind_of([String, NilClass], @ts.application_name)
123
- end
124
-
125
- test "application_name does not accept any arguments" do
126
- assert_raises(ArgumentError){ @ts.application_name('bogus') }
127
- end
128
-
129
- test "application_name= basic functionality" do
130
- assert_respond_to(@ts, :application_name=)
131
- end
132
-
133
- test "application_name= works as expected" do
134
- setup_task
135
- assert_nothing_raised{ @ts.application_name = "notepad.exe" }
136
- assert_equal("notepad.exe", @ts.application_name)
137
- end
138
-
139
- test "application_name= requires a string argument" do
140
- assert_raise(TypeError){ @ts.application_name = 1 }
141
- end
142
-
143
- test "comment method basic functionality" do
144
- assert_respond_to(@ts, :comment)
145
- end
146
-
147
- test "comment method returns a string" do
148
- setup_task
149
- assert_nothing_raised{ @ts.comment }
150
- assert_kind_of(String, @ts.comment)
151
- end
152
-
153
- test "comment method does not accept any arguments" do
154
- assert_raise(ArgumentError){ @ts.comment('test') }
155
- end
156
-
157
- test "comment= method basic functionality" do
158
- assert_respond_to(@ts, :comment=)
159
- end
160
-
161
- test "comment= works as expected" do
162
- setup_task
163
- assert_nothing_raised{ @ts.comment = "test" }
164
- assert_equal("test", @ts.comment)
165
- end
166
-
167
- test "comment= method requires a string argument" do
168
- assert_raise(TypeError){ @ts.comment = 1 }
169
- end
170
-
171
- test "creator method basic functionality" do
172
- setup_task
173
- assert_respond_to(@ts, :creator)
174
- assert_nothing_raised{ @ts.creator }
175
- assert_kind_of(String, @ts.creator)
176
- end
177
-
178
- test "creator method returns expected value" do
179
- setup_task
180
- assert_equal('', @ts.creator)
181
- end
182
-
183
- test "creator method does not accept any arguments" do
184
- assert_raise(ArgumentError){ @ts.creator('foo') }
185
- end
186
-
187
- test "creator= method basic functionality" do
188
- assert_respond_to(@ts, :creator=)
189
- end
190
-
191
- test "creator= method works as expected" do
192
- setup_task
193
- assert_nothing_raised{ @ts.creator = "Test Creator" }
194
- assert_equal("Test Creator", @ts.creator)
195
- end
196
-
197
- test "creator= method requires a string argument" do
198
- assert_raise(TypeError){ @ts.creator = 1 }
199
- end
200
-
201
- test "delete method basic functionality" do
202
- assert_respond_to(@ts, :delete)
203
- end
204
-
205
- test "delete method works as expected" do
206
- setup_task
207
- assert_nothing_raised{ @ts.delete(@task) }
208
- assert_false(@ts.exists?(@task))
209
- end
210
-
211
- test "delete method requires a single argument" do
212
- assert_raise(ArgumentError){ @ts.delete }
213
- end
214
-
215
- test "delete method raises an error if the task does not exist" do
216
- assert_raise(TaskScheduler::Error){ @ts.delete("foofoo") }
217
- end
218
-
219
- test "enum basic functionality" do
220
- assert_respond_to(@ts, :enum)
221
- assert_nothing_raised{ @ts.enum }
222
- end
223
-
224
- test "enum method returns an array of strings" do
225
- assert_kind_of(Array, @ts.enum)
226
- assert_kind_of(String, @ts.enum.first)
227
- end
228
-
229
- test "tasks is an alias for enum" do
230
- assert_respond_to(@ts, :tasks)
231
- assert_alias_method(@ts, :tasks, :enum)
232
- end
233
-
234
- test "enum method does not accept any arguments" do
235
- assert_raise(ArgumentError){ @ts.enum(1) }
236
- end
237
-
238
- test "exists? basic functionality" do
239
- assert_respond_to(@ts, :exists?)
240
- assert_boolean(@ts.exists?(@task))
241
- end
242
-
243
- test "exists? returns expected value" do
244
- setup_task
245
- assert_true(@ts.exists?(@task))
246
- assert_false(@ts.exists?('bogusXYZ'))
247
- end
248
-
249
- test "exists? method requires a single argument" do
250
- assert_raise(ArgumentError){ @ts.exists? }
251
- assert_raise(ArgumentError){ @ts.exists?('foo', 'bar') }
252
- end
253
-
254
- test "exit_code basic functionality" do
255
- setup_task
256
- assert_respond_to(@ts, :exit_code)
257
- assert_nothing_raised{ @ts.exit_code }
258
- assert_kind_of(Fixnum, @ts.exit_code)
259
- end
260
-
261
- test "exit_code takes no arguments" do
262
- assert_raise(ArgumentError){ @ts.exit_code(true) }
263
- assert_raise(NoMethodError){ @ts.exit_code = 1 }
264
- end
265
-
266
- test "machine= basic functionality" do
267
- assert_respond_to(@ts, :machine=)
268
- end
269
-
270
- test "machine= works as expected" do
271
- omit_unless(@@elevated)
272
- setup_task
273
- assert_nothing_raised{ @ts.machine = @@host }
274
- assert_equal(@@host, @ts.machine)
275
- end
276
-
277
- test "host= is an alias for machine=" do
278
- assert_alias_method(@ts, :machine=, :host=)
279
- end
280
-
281
- test "set_machine basic functionality" do
282
- assert_respond_to(@ts, :set_machine)
283
- end
284
-
285
- test "set_host is an alias for set_machine" do
286
- assert_alias_method(@ts, :set_machine, :set_host)
287
- end
288
-
289
- test "max_run_time basic functionality" do
290
- assert_respond_to(@ts, :max_run_time)
291
- end
292
-
293
- test "max_run_time works as expected" do
294
- setup_task
295
- assert_nothing_raised{ @ts.max_run_time }
296
- assert_kind_of(Fixnum, @ts.max_run_time)
297
- end
298
-
299
- test "max_run_time accepts no arguments" do
300
- assert_raise(ArgumentError){ @ts.max_run_time(true) }
301
- end
302
-
303
- test "max_run_time= basic functionality" do
304
- assert_respond_to(@ts, :max_run_time=)
305
- end
306
-
307
- test "max_run_time= works as expected" do
308
- setup_task
309
- assert_nothing_raised{ @ts.max_run_time = 20000 }
310
- assert_equal(20000, @ts.max_run_time)
311
- end
312
-
313
- test "max_run_time= requires a numeric argument" do
314
- assert_raise(TypeError){ @ts.max_run_time = true }
315
- end
316
-
317
- test "most_recent_run_time basic functionality" do
318
- setup_task
319
- assert_respond_to(@ts, :most_recent_run_time)
320
- assert_nothing_raised{ @ts.most_recent_run_time }
321
- end
322
-
323
- test "most_recent_run_time is nil if task hasn't run" do
324
- setup_task
325
- assert_nil(@ts.most_recent_run_time)
326
- end
327
-
328
- test "most_recent_run_time does not accept any arguments" do
329
- assert_raise(ArgumentError){ @ts.most_recent_run_time(true) }
330
- assert_raise(NoMethodError){ @ts.most_recent_run_time = Time.now }
331
- end
332
-
333
- test "new_work_item basic functionality" do
334
- assert_respond_to(@ts, :new_work_item)
335
- end
336
-
337
- test "new_work_item accepts a trigger/hash" do
338
- assert_nothing_raised{ @ts.new_work_item('bar', @trigger) }
339
- end
340
-
341
- test "new_work_item fails if a bogus trigger key is present" do
342
- assert_raise(ArgumentError){ @ts.new_work_item('test', {:bogus => 1}) }
343
- end
344
-
345
- test "new_task is an alias for new_work_item" do
346
- assert_respond_to(@ts, :new_task)
347
- assert_alias_method(@ts, :new_task, :new_work_item)
348
- end
349
-
350
- test "new_work_item requires a task name and a trigger" do
351
- assert_raise(ArgumentError){ @ts.new_work_item }
352
- assert_raise(ArgumentError){ @ts.new_work_item('bar') }
353
- end
354
-
355
- test "new_work_item expects a string for the first argument" do
356
- assert_raise(TypeError){ @ts.new_work_item(1, @trigger) }
357
- end
358
-
359
- test "new_work_item expects a hash for the second argument" do
360
- assert_raise(TypeError){ @ts.new_work_item(@task, 1) }
361
- end
362
-
363
- test "next_run_time basic functionality" do
364
- assert_respond_to(@ts, :next_run_time)
365
- end
366
-
367
- test "next_run_time returns a Time object" do
368
- setup_task
369
- assert_nothing_raised{ @ts.next_run_time }
370
- assert_kind_of(Time, @ts.next_run_time)
371
- end
372
-
373
- test "next_run_time does not take any arguments" do
374
- assert_raise(ArgumentError){ @ts.next_run_time(true) }
375
- assert_raise(NoMethodError){ @ts.next_run_time = Time.now }
376
- end
377
-
378
- test "parameters basic functionality" do
379
- setup_task
380
- assert_respond_to(@ts, :parameters)
381
- assert_nothing_raised{ @ts.parameters }
382
- end
383
-
384
- test "parameters method does not take any arguments" do
385
- assert_raise(ArgumentError){ @ts.parameters('test') }
386
- end
387
-
388
- test "parameters= basic functionality" do
389
- assert_respond_to(@ts, :parameters=)
390
- end
391
-
392
- test "parameters= works as expected" do
393
- setup_task
394
- assert_nothing_raised{ @ts.parameters = "somefile.txt" }
395
- assert_equal("somefile.txt", @ts.parameters)
396
- end
397
-
398
- test "parameters= requires a string argument" do
399
- assert_raise(ArgumentError){ @ts.send(:parameters=) }
400
- assert_raise(TypeError){ @ts.parameters = 1 }
401
- end
402
-
403
- test "priority basic functionality" do
404
- assert_respond_to(@ts, :priority)
405
- end
406
-
407
- test "priority returns the expected value" do
408
- setup_task
409
- assert_nothing_raised{ @ts.priority }
410
- assert_kind_of(String, @ts.priority)
411
- end
412
-
413
- test "priority method does not accept any arguments" do
414
- assert_raise(ArgumentError){ @ts.priority(true) }
415
- end
416
-
417
- test "priority= basic functionality" do
418
- assert_respond_to(@ts, :priority=)
419
- end
420
-
421
- test "priority= works as expected" do
422
- setup_task
423
- assert_nothing_raised{ @ts.priority = TaskScheduler::NORMAL }
424
- assert_equal('normal', @ts.priority)
425
- end
426
-
427
- test "priority= requires a numeric argument" do
428
- assert_raise(TypeError){ @ts.priority = 'alpha' }
429
- end
430
-
431
- # TODO: Find a harmless way to test this.
432
- test "run basic functionality" do
433
- assert_respond_to(@ts, :run)
434
- end
435
-
436
- test "run does not accept any arguments" do
437
- assert_raise(ArgumentError){ @ts.run(true) }
438
- assert_raise(NoMethodError){ @ts.run = true }
439
- end
440
-
441
- test "save basic functionality" do
442
- assert_respond_to(@ts, :save)
443
- end
444
-
445
- test "status basic functionality" do
446
- setup_task
447
- assert_respond_to(@ts, :status)
448
- assert_nothing_raised{ @ts.status }
449
- assert_kind_of(String, @ts.status)
450
- end
451
-
452
- test "status returns the expected value" do
453
- setup_task
454
- assert_equal('ready', @ts.status)
455
- end
456
-
457
- test "status does not accept any arguments" do
458
- assert_raise(ArgumentError){ @ts.status(true) }
459
- end
460
-
461
- test "terminate basic functionality" do
462
- assert_respond_to(@ts, :terminate)
463
- end
464
-
465
- test "terminate does not accept any arguments" do
466
- assert_raise(ArgumentError){ @ts.terminate(true) }
467
- assert_raise(NoMethodError){ @ts.terminate = true }
468
- end
469
-
470
- test "calling terminate on a task that isn't running raises an error" do
471
- assert_raise(TaskScheduler::Error){ @ts.terminate }
472
- end
473
-
474
- test "trigger basic functionality" do
475
- setup_task
476
- assert_respond_to(@ts, :trigger)
477
- assert_nothing_raised{ @ts.trigger(0) }
478
- end
479
-
480
- test "trigger returns a hash object" do
481
- setup_task
482
- assert_kind_of(Hash, @ts.trigger(0))
483
- end
484
-
485
- test "trigger requires an index" do
486
- assert_raises(ArgumentError){ @ts.trigger }
487
- end
488
-
489
- test "trigger raises an error if the index is invalid" do
490
- assert_raises(TaskScheduler::Error){ @ts.trigger(9999) }
491
- end
492
-
493
- test "trigger= basic functionality" do
494
- assert_respond_to(@ts, :trigger=)
495
- end
496
-
497
- test "trigger= works as expected" do
498
- setup_task
499
- assert_nothing_raised{ @ts.trigger = @trigger }
500
- end
501
-
502
- test "trigger= requires a hash argument" do
503
- assert_raises(TypeError){ @ts.trigger = 'blah' }
504
- end
505
-
506
- test "add_trigger basic functionality" do
507
- assert_respond_to(@ts, :add_trigger)
508
- end
509
-
510
- test "add_trigger works as expected" do
511
- setup_task
512
- assert_nothing_raised{ @ts.add_trigger(0, @trigger) }
513
- end
514
-
515
- test "add_trigger requires two arguments" do
516
- assert_raises(ArgumentError){ @ts.add_trigger }
517
- assert_raises(ArgumentError){ @ts.add_trigger(0) }
518
- end
519
-
520
- test "add_trigger reqiuires an integer for the first argument" do
521
- assert_raises(TypeError){ @ts.add_trigger('foo', @trigger) }
522
- end
523
-
524
- test "add_trigger reqiuires a hash for the second argument" do
525
- assert_raises(TypeError){ @ts.add_trigger(0, 'foo') }
526
- end
527
-
528
- test "trigger_count basic functionality" do
529
- setup_task
530
- assert_respond_to(@ts, :trigger_count)
531
- assert_nothing_raised{ @ts.trigger_count }
532
- assert_kind_of(Fixnum, @ts.trigger_count)
533
- end
534
-
535
- test "trigger_count returns the expected value" do
536
- setup_task
537
- assert_equal(1, @ts.trigger_count)
538
- end
539
-
540
- test "trigger_count does not accept any arguments" do
541
- assert_raise(ArgumentError){ @ts.trigger_count(true) }
542
- assert_raise(NoMethodError){ @ts.trigger_count = 1 }
543
- end
544
-
545
- test "delete_trigger basic functionality" do
546
- assert_respond_to(@ts, :delete_trigger)
547
- end
548
-
549
- test "delete_trigger works as expected" do
550
- setup_task
551
- assert_nothing_raised{ @ts.delete_trigger(0) }
552
- assert_equal(0, @ts.trigger_count)
553
- end
554
-
555
- test "passing a bad index to delete_trigger will raise an error" do
556
- assert_raise(TaskScheduler::Error){ @ts.delete_trigger(9999) }
557
- end
558
-
559
- test "delete_trigger requires at least one argument" do
560
- assert_raise(ArgumentError){ @ts.delete_trigger }
561
- end
562
-
563
- test "trigger_string basic functionality" do
564
- setup_task
565
- assert_respond_to(@ts, :trigger_string)
566
- assert_nothing_raised{ @ts.trigger_string(0) }
567
- end
568
-
569
- test "trigger_string returns the expected value" do
570
- setup_task
571
- assert_equal('Starting 2015-04-11T07:14:00', @ts.trigger_string(0))
572
- end
573
-
574
- test "trigger_string requires a single argument" do
575
- assert_raise(ArgumentError){ @ts.trigger_string }
576
- assert_raise(ArgumentError){ @ts.trigger_string(0, 0) }
577
- end
578
-
579
- test "trigger_string requires a numeric argument" do
580
- assert_raise(TypeError){ @ts.trigger_string('alpha') }
581
- end
582
-
583
- test "trigger_string raises an error if the index is invalid" do
584
- assert_raise(TaskScheduler::Error){ @ts.trigger_string(9999) }
585
- end
586
-
587
- test "working_directory basic functionality" do
588
- setup_task
589
- assert_respond_to(@ts, :working_directory)
590
- assert_nothing_raised{ @ts.working_directory }
591
- assert_kind_of(String, @ts.working_directory)
592
- end
593
-
594
- test "working_directory takes no arguments" do
595
- assert_raise(ArgumentError){ @ts.working_directory(true) }
596
- end
597
-
598
- test "working_directory= basic functionality" do
599
- assert_respond_to(@ts, :working_directory=)
600
- end
601
-
602
- test "working_directory= works as expected" do
603
- setup_task
604
- assert_nothing_raised{ @ts.working_directory = "C:\\" }
605
- end
606
-
607
- test "working_directory= requires a string argument" do
608
- setup_task
609
- assert_raise(TypeError){ @ts.working_directory = 1 }
610
- end
611
-
612
- test "expected day constants are defined" do
613
- assert_not_nil(TaskScheduler::MONDAY)
614
- assert_not_nil(TaskScheduler::TUESDAY)
615
- assert_not_nil(TaskScheduler::WEDNESDAY)
616
- assert_not_nil(TaskScheduler::THURSDAY)
617
- assert_not_nil(TaskScheduler::FRIDAY)
618
- assert_not_nil(TaskScheduler::SATURDAY)
619
- assert_not_nil(TaskScheduler::SUNDAY)
620
- end
621
-
622
- test "expected month constants are defined" do
623
- assert_not_nil(TaskScheduler::JANUARY)
624
- assert_not_nil(TaskScheduler::FEBRUARY)
625
- assert_not_nil(TaskScheduler::MARCH)
626
- assert_not_nil(TaskScheduler::APRIL)
627
- assert_not_nil(TaskScheduler::MAY)
628
- assert_not_nil(TaskScheduler::JUNE)
629
- assert_not_nil(TaskScheduler::JULY)
630
- assert_not_nil(TaskScheduler::AUGUST)
631
- assert_not_nil(TaskScheduler::SEPTEMBER)
632
- assert_not_nil(TaskScheduler::OCTOBER)
633
- assert_not_nil(TaskScheduler::NOVEMBER)
634
- assert_not_nil(TaskScheduler::DECEMBER)
635
- end
636
-
637
- test "expected repeat constants are defined" do
638
- assert_not_nil(TaskScheduler::ONCE)
639
- assert_not_nil(TaskScheduler::DAILY)
640
- assert_not_nil(TaskScheduler::WEEKLY)
641
- assert_not_nil(TaskScheduler::MONTHLYDATE)
642
- assert_not_nil(TaskScheduler::MONTHLYDOW)
643
- end
644
-
645
- test "expected start constants are defined" do
646
- assert_not_nil(TaskScheduler::ON_IDLE)
647
- assert_not_nil(TaskScheduler::AT_SYSTEMSTART)
648
- assert_not_nil(TaskScheduler::AT_LOGON)
649
- end
650
-
651
- test "expected flag constants are defined" do
652
- assert_not_nil(TaskScheduler::INTERACTIVE)
653
- assert_not_nil(TaskScheduler::DELETE_WHEN_DONE)
654
- assert_not_nil(TaskScheduler::DISABLED)
655
- assert_not_nil(TaskScheduler::START_ONLY_IF_IDLE)
656
- assert_not_nil(TaskScheduler::KILL_ON_IDLE_END)
657
- assert_not_nil(TaskScheduler::DONT_START_IF_ON_BATTERIES)
658
- assert_not_nil(TaskScheduler::KILL_IF_GOING_ON_BATTERIES)
659
- assert_not_nil(TaskScheduler::HIDDEN)
660
- assert_not_nil(TaskScheduler::RESTART_ON_IDLE_RESUME)
661
- assert_not_nil(TaskScheduler::SYSTEM_REQUIRED)
662
- assert_not_nil(TaskScheduler::FLAG_HAS_END_DATE)
663
- assert_not_nil(TaskScheduler::FLAG_KILL_AT_DURATION_END)
664
- assert_not_nil(TaskScheduler::FLAG_DISABLED)
665
- assert_not_nil(TaskScheduler::MAX_RUN_TIMES)
666
- end
667
-
668
- test "expected priority constants are defined" do
669
- assert_not_nil(TaskScheduler::IDLE)
670
- assert_not_nil(TaskScheduler::NORMAL)
671
- assert_not_nil(TaskScheduler::HIGH)
672
- assert_not_nil(TaskScheduler::REALTIME)
673
- assert_not_nil(TaskScheduler::ABOVE_NORMAL)
674
- assert_not_nil(TaskScheduler::BELOW_NORMAL)
675
- end
676
-
677
- def teardown
678
- @ts.delete(@task) if @ts.exists?(@task)
679
- @ts.delete('bar') if @ts.exists?('bar')
680
- @ts = nil
681
- @task = nil
682
- @trigger = nil
683
- end
684
-
685
- def self.shutdown
686
- @@host = nil
687
- @@user = nil
688
- @@elevated = nil
689
- end
690
- end