teamlab 0.3.10 → 0.3.11

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,800 @@
1
+ require_relative '../spec_helper'
2
+
3
+ describe '[Project]' do
4
+
5
+ before :all do
6
+ Teamlab.configure do |config|
7
+ config.server = SERVER
8
+ config.username = USERNAME
9
+ config.password = PASSWORD
10
+ end
11
+ end
12
+
13
+ let(:teamlab_module) { :project }
14
+
15
+ describe '#add_user' do
16
+ it_should_behave_like 'an api request' do
17
+ let(:teamlab_module) { :people }
18
+ let(:command) { :add_user }
19
+ let(:args) { [false, random_email, random_word.capitalize, random_word.capitalize] }
20
+ let(:add_data_to_collector) { true }
21
+ let(:data_param) { :user_ids }
22
+ let(:param_names) { %w(id) }
23
+ end
24
+ end
25
+
26
+ describe '#create_project' do
27
+ it_should_behave_like 'an api request' do
28
+ let(:teamlab_module) { :project }
29
+ let(:command) { :create_project }
30
+ let(:args) { [random_word, random_word, random_id(:user), random_word(3), random_bool] }
31
+ let(:add_data_to_collector) { true }
32
+ let(:data_param) { :project_ids }
33
+ let(:param_names) { %w(id) }
34
+ end
35
+ end
36
+
37
+ describe '#get_my_files' do
38
+ it_should_behave_like 'an api request' do
39
+ let(:teamlab_module) { :files }
40
+ let(:command) { :get_my_files }
41
+ let(:add_data_to_collector) { true }
42
+ let(:data_param) { :my_documents_ids }
43
+ let(:param_names) { %w(current id) }
44
+ end
45
+ end
46
+
47
+ describe '#create_file' do
48
+ it_should_behave_like 'an api request' do
49
+ let(:teamlab_module) { :files }
50
+ let(:command) { :create_file }
51
+ let(:args) { [random_id(:my_documents), random_word] }
52
+ let(:add_data_to_collector) { true }
53
+ let(:data_param) { :file_ids }
54
+ let(:param_names) { %w(id) }
55
+ end
56
+ end
57
+
58
+ describe '#add_importing_url_to_queue' do
59
+ it_should_behave_like 'an api request' do
60
+ let(:command) { :add_importing_url_to_queue }
61
+ let(:args) { [BASECAMP_URL, BASECAMP_LOGIN, BASECAMP_PSW, IMPORT_CLOSED_PROJECTS, DISABLE_NOTIFICATONS, IMPORT_USERS_AS_COLLABORATORS] }
62
+ end
63
+ end
64
+
65
+ describe '#get_projects_for_import' do
66
+ it_should_behave_like 'an api request' do
67
+ let(:command) { :get_projects_for_import }
68
+ let(:args) { [BASECAMP_URL, BASECAMP_LOGIN, BASECAMP_PSW] }
69
+ end
70
+ end
71
+
72
+ describe '#get_import_status' do
73
+ it_should_behave_like 'an api request' do
74
+ let(:command) { :get_import_status }
75
+ end
76
+ end
77
+
78
+ describe '#create_project' do
79
+ it_should_behave_like 'an api request' do
80
+ let(:command) { :create_project }
81
+ let(:args) { [random_word, random_word, random_id(:user), random_word(3), random_bool, {participants: DATA_COLLECTOR[:user_ids]}] }
82
+ let(:add_data_to_collector) { true }
83
+ let(:data_param) { :new_project_ids }
84
+ let(:param_names) { %w(id) }
85
+ end
86
+ end
87
+
88
+ describe '#add_message' do
89
+ it_should_behave_like 'an api request' do
90
+ let(:command) { :add_message }
91
+ let(:args) { [random_id(:new_project), random_word, random_word, DATA_COLLECTOR[:user_ids].join(',')] }
92
+ let(:add_data_to_collector) { true }
93
+ let(:data_param) { :discussion_ids }
94
+ let(:param_names) { %w(id) }
95
+ end
96
+ end
97
+
98
+ describe '#create_template' do
99
+ it_should_behave_like 'an api request' do
100
+ let(:command) { :create_template }
101
+ let(:args) { [random_word] }
102
+ let(:add_data_to_collector) { true }
103
+ let(:data_param) { :project_template_ids }
104
+ let(:param_names) { %w(id) }
105
+ end
106
+ end
107
+
108
+ describe '#add_task' do
109
+ it_should_behave_like 'an api request' do
110
+ let(:command) { :add_task }
111
+ let(:args) { [random_id(:new_project), random_word] }
112
+ let(:add_data_to_collector) { true }
113
+ let(:data_param) { :project_task_ids }
114
+ let(:param_names) { %w(id) }
115
+ end
116
+ end
117
+
118
+ describe '#add_task_from_discussion' do
119
+ it_should_behave_like 'an api request' do
120
+ let(:command) { :add_task_from_discussion }
121
+ let(:args) { [random_id(:new_project), random_id(:discussion)] }
122
+ end
123
+ end
124
+
125
+ describe '#create_subtask' do
126
+ it_should_behave_like 'an api request' do
127
+ let(:command) { :create_subtask }
128
+ let(:args) { [DATA_COLLECTOR[:project_task_ids].last, random_id(:user), random_word] }
129
+ let(:add_data_to_collector) { true }
130
+ let(:data_param) { :project_subtask_ids }
131
+ let(:param_names) { %w(id) }
132
+ end
133
+ end
134
+
135
+ describe '#add_task_time' do
136
+ it_should_behave_like 'an api request' do
137
+ let(:command) { :add_task_time }
138
+ let(:args) { [random_id(:project_task), Time.now.strftime('%Y-%m-%-d'), random_id(:user), DATA_COLLECTOR[:new_project_ids].last] }
139
+ let(:add_data_to_collector) { true }
140
+ let(:data_param) { :project_task_time_ids }
141
+ let(:param_names) { %w(id) }
142
+ end
143
+ end
144
+
145
+ describe '#upload_file_to_task' do
146
+ it_should_behave_like 'an api request' do
147
+ let(:command) { :upload_file_to_task }
148
+ let(:args) { [random_id(:project_task), [random_id(:file)]] }
149
+ end
150
+ end
151
+
152
+ describe '#upload_file_to_message' do
153
+ it_should_behave_like 'an api request' do
154
+ let(:command) { :upload_file_to_message }
155
+ let(:args) { [random_id(:discussion), [random_id(:file)]] }
156
+ end
157
+ end
158
+
159
+ describe '#add_milestone' do
160
+ it_should_behave_like 'an api request' do
161
+ let(:command) { :add_milestone }
162
+ let(:args) { [random_id(:new_project), random_word, DateTime.commercial(2015).to_s, random_id(:user)] }
163
+ let(:add_data_to_collector) { true }
164
+ let(:data_param) { :project_milestone_ids }
165
+ let(:param_names) { %w(id) }
166
+ end
167
+ end
168
+
169
+ describe '#add_task_comment' do
170
+ it_should_behave_like 'an api request' do
171
+ let(:command) { :add_task_comment }
172
+ let(:args) { [random_id(:project_task), random_word] }
173
+ let(:add_data_to_collector) { true }
174
+ let(:data_param) { :comment_ids }
175
+ let(:param_names) { %w(id) }
176
+ end
177
+ end
178
+
179
+ describe '#add_message_comment' do
180
+ it_should_behave_like 'an api request' do
181
+ let(:command) { :add_message_comment }
182
+ let(:args) { [random_id(:project_task), random_word] }
183
+ let(:add_data_to_collector) { true }
184
+ let(:data_param) { :comment_ids }
185
+ let(:param_names) { %w(id) }
186
+ end
187
+ end
188
+
189
+ describe '#get_latest_discussion_messages' do
190
+ it_should_behave_like 'an api request' do
191
+ let(:command) { :get_latest_discussion_messages }
192
+ end
193
+ end
194
+
195
+ describe '#get_message_by_filter' do
196
+ it_should_behave_like 'an api request' do
197
+ let(:command) { :get_message_by_filter }
198
+ let(:args) { [{projectId: random_id(:new_project)}] }
199
+ end
200
+ end
201
+
202
+ describe '#get_messages' do
203
+ it_should_behave_like 'an api request' do
204
+ let(:command) { :get_messages }
205
+ let(:args) { [random_id(:new_project)] }
206
+ end
207
+ end
208
+
209
+ describe '#check_subscription_to_discussion' do
210
+ it_should_behave_like 'an api request' do
211
+ let(:command) { :check_subscription_to_discussion }
212
+ let(:args) { [random_id(:discussion)] }
213
+ end
214
+ end
215
+
216
+ describe '#update_message' do
217
+ it_should_behave_like 'an api request' do
218
+ let(:command) { :update_message }
219
+ let(:args) { [random_id(:discussion), random_id(:new_project), random_word, random_word] }
220
+ end
221
+ end
222
+
223
+ describe '#subscribe_to_message_action' do
224
+ it_should_behave_like 'an api request' do
225
+ let(:command) { :subscribe_to_message_action }
226
+ let(:args) { [random_id(:discussion)] }
227
+ end
228
+ end
229
+
230
+ describe '#get_task_files' do
231
+ it_should_behave_like 'an api request' do
232
+ let(:command) { :get_task_files }
233
+ let(:args) { [random_id(:project_task)] }
234
+ end
235
+ end
236
+
237
+ describe '#get_entity_files' do
238
+ it_should_behave_like 'an api request' do
239
+ let(:command) { :get_entity_files }
240
+ let(:args) { [random_id(:project_task), 'Task'] }
241
+ end
242
+ end
243
+
244
+ describe '#get_message_files' do
245
+ it_should_behave_like 'an api request' do
246
+ let(:command) { :get_message_files }
247
+ let(:args) { [random_id(:discussion)] }
248
+ end
249
+ end
250
+
251
+ describe '#get_comment' do
252
+ it_should_behave_like 'an api request' do
253
+ let(:command) { :get_comment }
254
+ let(:args) { [random_id(:comment)] }
255
+ end
256
+ end
257
+
258
+ describe '#get_task_comments' do
259
+ it_should_behave_like 'an api request' do
260
+ let(:command) { :get_task_comments }
261
+ let(:args) { [random_id(:project_task)] }
262
+ end
263
+ end
264
+
265
+ describe '#get_message_comments' do
266
+ it_should_behave_like 'an api request' do
267
+ let(:command) { :get_message_comments }
268
+ let(:args) { [random_id(:discussion)] }
269
+ end
270
+ end
271
+
272
+ describe '#update_comment' do
273
+ it_should_behave_like 'an api request' do
274
+ let(:command) { :update_comment }
275
+ let(:args) { [random_id(:comment), random_word] }
276
+ end
277
+ end
278
+
279
+ describe '#create_report_template' do
280
+ it_should_behave_like 'an api request' do
281
+ let(:command) { :create_report_template }
282
+ let(:args) { [random_word] }
283
+ let(:add_data_to_collector) { true }
284
+ let(:data_param) { :report_template_ids }
285
+ let(:param_names) { %w(id) }
286
+ end
287
+ end
288
+
289
+ describe '#update_report_template' do
290
+ it_should_behave_like 'an api request' do
291
+ let(:command) { :update_report_template }
292
+ let(:args) { [random_id(:report_template), random_word] }
293
+ end
294
+ end
295
+
296
+ describe '#delete_report_template' do
297
+ it_should_behave_like 'an api request' do
298
+ let(:command) { :delete_report_template }
299
+ let(:args) { [DATA_COLLECTOR[:report_template_ids].pop] }
300
+ end
301
+ end
302
+
303
+ describe '#get_projects' do
304
+ it_should_behave_like 'an api request' do
305
+ let(:command) { :get_projects }
306
+ end
307
+ end
308
+
309
+ describe '#get_project' do
310
+ it_should_behave_like 'an api request' do
311
+ let(:command) { :get_project }
312
+ let(:args) { [random_id(:new_project)] }
313
+ end
314
+ end
315
+
316
+ describe '#get_participated_projects' do
317
+ it_should_behave_like 'an api request' do
318
+ let(:command) { :get_participated_projects }
319
+ end
320
+ end
321
+
322
+ describe '#filter_projects' do
323
+ it_should_behave_like 'an api request' do
324
+ let(:command) { :filter_projects }
325
+ end
326
+ end
327
+
328
+ describe '#get_followed_projects' do
329
+ it_should_behave_like 'an api request' do
330
+ let(:command) { :get_followed_projects }
331
+ end
332
+ end
333
+
334
+ describe '#get_project_by_status' do
335
+ it_should_behave_like 'an api request' do
336
+ let(:command) { :get_project_by_status }
337
+ let(:args) { [PROJECT_STATUSES.sample] }
338
+ end
339
+ end
340
+
341
+ describe '#get_templates' do
342
+ it_should_behave_like 'an api request' do
343
+ let(:command) { :get_templates }
344
+ end
345
+ end
346
+
347
+ describe '#get_spent_time' do
348
+ it_should_behave_like 'an api request' do
349
+ let(:command) { :get_spent_time }
350
+ let(:args) { [random_id(:new_project)] }
351
+ end
352
+ end
353
+
354
+ describe '#get_project_files' do
355
+ it_should_behave_like 'an api request' do
356
+ let(:command) { :get_project_files }
357
+ let(:args) { [random_id(:new_project)] }
358
+ end
359
+ end
360
+
361
+ describe '#get_template' do
362
+ it_should_behave_like 'an api request' do
363
+ pending 'http://bugzserver/show_bug.cgi?id=23875'
364
+ let(:command) { :get_template }
365
+ let(:args) { [random_id(:project_template)] }
366
+ end
367
+ end
368
+
369
+ describe '#get_milestones' do
370
+ it_should_behave_like 'an api request' do
371
+ let(:command) { :get_milestones }
372
+ let(:args) { [random_id(:new_project)] }
373
+ end
374
+ end
375
+
376
+ describe '#search_all_projects' do
377
+ it_should_behave_like 'an api request' do
378
+ let(:command) { :search_all_projects }
379
+ let(:args) { [random_word] }
380
+ end
381
+ end
382
+
383
+ describe '#search_project' do
384
+ it_should_behave_like 'an api request' do
385
+ let(:command) { :search_project }
386
+ let(:args) { [random_id(:new_project), random_word] }
387
+ end
388
+ end
389
+
390
+ describe '#get_milestones_with_status' do
391
+ it_should_behave_like 'an api request' do
392
+ let(:command) { :get_milestones_with_status }
393
+ let(:args) { [random_id(:new_project), PROJECT_MILESTONE_STATUSES.sample] }
394
+ end
395
+ end
396
+
397
+ describe '#update_project_tags' do
398
+ it_should_behave_like 'an api request' do
399
+ let(:command) { :update_project_tags }
400
+ let(:args) { [random_id(:new_project), random_word(3)] }
401
+ end
402
+ end
403
+
404
+ describe '#update_project_status' do
405
+ it_should_behave_like 'an api request' do
406
+ let(:command) { :update_project_status }
407
+ let(:args) { [random_id(:new_project), PROJECT_STATUSES.sample] }
408
+ end
409
+ end
410
+
411
+ describe '#update_template' do
412
+ it_should_behave_like 'an api request' do
413
+ let(:command) { :update_template }
414
+ let(:args) { [random_id(:project_template), random_word] }
415
+ end
416
+ end
417
+
418
+ describe '#follow_unfollow_project' do
419
+ it_should_behave_like 'an api request' do
420
+ let(:command) { :follow_unfollow_project }
421
+ let(:args) { [random_id(:new_project)] }
422
+ end
423
+ end
424
+
425
+ describe '#get_tasks_by_ids' do
426
+ it_should_behave_like 'an api request' do
427
+ let(:command) { :get_tasks_by_ids }
428
+ let(:args) { [DATA_COLLECTOR[:project_task_ids].sample(rand(2..4))] }
429
+ end
430
+ end
431
+
432
+ describe '#get_task_order' do
433
+ it_should_behave_like 'an api request' do
434
+ let(:command) { :get_task_order }
435
+ let(:args) { [random_id(:new_project)] }
436
+ end
437
+ end
438
+
439
+ describe '#get_simple_task_by_filter' do
440
+ it_should_behave_like 'an api request' do
441
+ let(:command) { :get_simple_task_by_filter }
442
+ let(:args) { [random_id(:new_project)] }
443
+ end
444
+ end
445
+
446
+ describe '#add_link' do
447
+ it_should_behave_like 'an api request' do
448
+ pending 'http://bugzserver/show_bug.cgi?id=23861'
449
+ let(:command) { :add_link }
450
+ let(:args) { [random_id(:project_task), random_id(:project_task), PROJECT_TASK_LINK_TYPES.sample] }
451
+ end
452
+ end
453
+
454
+ describe '#update_project' do
455
+ it_should_behave_like 'an api request' do
456
+ let(:command) { :update_project }
457
+ let(:args) { [random_id(:new_project), random_word, random_id(:user), {private: random_bool, notify: random_bool}] }
458
+ end
459
+ end
460
+
461
+ describe '#set_task_order' do
462
+ it_should_behave_like 'an api request' do
463
+ let(:command) { :set_task_order }
464
+ let(:args) { [random_id(:new_project), '123456'] }
465
+ end
466
+ end
467
+
468
+ describe '#update_project_task' do
469
+ it_should_behave_like 'an api request' do
470
+ let(:command) { :update_project_task }
471
+ let(:args) { [random_id(:project_task), random_word] }
472
+ end
473
+ end
474
+
475
+ describe '#get_project_team' do
476
+ it_should_behave_like 'an api request' do
477
+ let(:command) { :get_project_team }
478
+ let(:args) { [random_id(:new_project)] }
479
+ end
480
+ end
481
+
482
+ describe '#get_projects_teams' do
483
+ it_should_behave_like 'an api request' do
484
+ let(:command) { :get_projects_teams }
485
+ let(:args) { [DATA_COLLECTOR[:new_project_ids].sample(rand(2..4))] }
486
+ end
487
+ end
488
+
489
+ describe '#add_to_team' do
490
+ it_should_behave_like 'an api request' do
491
+ let(:command) { :add_to_team }
492
+ let(:args) { [random_id(:new_project), random_id(:user)] }
493
+ end
494
+ end
495
+
496
+ describe '#update_project_team' do
497
+ it_should_behave_like 'an api request' do
498
+ let(:command) { :update_project_team }
499
+ let(:args) { [random_id(:new_project), DATA_COLLECTOR[:user_ids].sample(rand(2..4)), {notify: random_bool}] }
500
+ end
501
+ end
502
+
503
+ describe '#set_team_security' do
504
+ it_should_behave_like 'an api request' do
505
+ let(:command) { :set_team_security }
506
+ let(:args) { [random_id(:new_project), random_id(:user), PROJECT_SECURITY_RIGHTS.sample] }
507
+ end
508
+ end
509
+
510
+ describe '#remove_from_team' do
511
+ it_should_behave_like 'an api request' do
512
+ let(:command) { :remove_from_team }
513
+ let(:args) { [random_id(:new_project), random_id(:user)] }
514
+ end
515
+ end
516
+
517
+ describe '#get_my_tasks' do
518
+ it_should_behave_like 'an api request' do
519
+ let(:command) { :get_my_tasks }
520
+ end
521
+ end
522
+
523
+ describe '#get_task_by_filter' do
524
+ it_should_behave_like 'an api request' do
525
+ let(:command) { :get_task_by_filter }
526
+ let(:args) { [{participant: random_id(:user)}] }
527
+ end
528
+ end
529
+
530
+ describe '#get_task' do
531
+ it_should_behave_like 'an api request' do
532
+ let(:command) { :get_task }
533
+ let(:args) { [random_id(:project_task)] }
534
+ end
535
+ end
536
+
537
+ describe '#get_tasks' do
538
+ it_should_behave_like 'an api request' do
539
+ let(:command) { :get_tasks }
540
+ let(:args) { [random_id(:new_project)] }
541
+ end
542
+ end
543
+
544
+ describe '#get_my_tasks_by_status' do
545
+ it_should_behave_like 'an api request' do
546
+ let(:command) { :get_my_tasks_by_status }
547
+ let(:args) { [PROJECT_TASKS_STATUSES.sample] }
548
+ end
549
+ end
550
+
551
+ describe '#notify_task_responsible' do
552
+ it_should_behave_like 'an api request' do
553
+ let(:command) { :notify_task_responsible }
554
+ let(:args) { [random_id(:project_task)] }
555
+ end
556
+ end
557
+
558
+ describe '#get_all_tasks' do
559
+ it_should_behave_like 'an api request' do
560
+ let(:command) { :get_all_tasks }
561
+ let(:args) { [random_id(:new_project)] }
562
+ end
563
+ end
564
+
565
+ describe '#get_tasks_with_status' do
566
+ it_should_behave_like 'an api request' do
567
+ let(:command) { :get_tasks_with_status }
568
+ let(:args) { [random_id(:new_project), PROJECT_TASKS_STATUSES.sample] }
569
+ end
570
+ end
571
+
572
+ describe '#update_task_status' do
573
+ it_should_behave_like 'an api request' do
574
+ pending 'http://bugzserver/show_bug.cgi?id=23860'
575
+ let(:command) { :update_task_status }
576
+ let(:args) { [random_id(:project_task), PROJECT_TASKS_STATUSES.sample] }
577
+ end
578
+ end
579
+
580
+ describe '#update_subtask' do
581
+ it_should_behave_like 'an api request' do
582
+ pending 'http://bugzserver/show_bug.cgi?id=23860'
583
+ let(:command) { :update_subtask }
584
+ let(:args) { [DATA_COLLECTOR[:project_task_ids].last, random_id(:project_subtask), random_id(:user), random_word] }
585
+ end
586
+ end
587
+
588
+ describe '#update_subtask_status' do
589
+ it_should_behave_like 'an api request' do
590
+ let(:command) { :update_subtask_status }
591
+ let(:args) { [DATA_COLLECTOR[:project_task_ids].last, random_id(:project_subtask), PROJECT_TASKS_STATUSES.sample] }
592
+ end
593
+ end
594
+
595
+ describe '#add_project_contact' do
596
+ it_should_behave_like 'an api request' do
597
+ let(:command) { :add_project_contact }
598
+ let(:args) { [random_id(:new_project), random_id(:contact)] }
599
+ end
600
+ end
601
+
602
+ describe '#get_projects_for_contact' do
603
+ it_should_behave_like 'an api request' do
604
+ let(:command) { :get_projects_for_contact }
605
+ let(:args) { [random_id(:contact)] }
606
+ end
607
+ end
608
+
609
+ describe '#get_project_tags' do
610
+ it_should_behave_like 'an api request' do
611
+ let(:command) { :get_project_tags }
612
+ end
613
+ end
614
+
615
+ describe '#get_project_by_tag' do
616
+ it_should_behave_like 'an api request' do
617
+ let(:command) { :get_project_by_tag }
618
+ let(:args) { [random_word(4)] }
619
+ end
620
+ end
621
+
622
+ describe '#get_tags_by_name' do
623
+ it_should_behave_like 'an api request' do
624
+ let(:command) { :get_tags_by_name }
625
+ let(:args) { [random_word(4)] }
626
+ end
627
+ end
628
+
629
+ describe '#get_upcoming_milestones' do
630
+ it_should_behave_like 'an api request' do
631
+ let(:command) { :get_upcoming_milestones }
632
+ end
633
+ end
634
+
635
+ describe '#get_overdue_milestones' do
636
+ it_should_behave_like 'an api request' do
637
+ let(:command) { :get_overdue_milestones }
638
+ end
639
+ end
640
+
641
+ describe '#get_milestone' do
642
+ it_should_behave_like 'an api request' do
643
+ let(:command) { :get_milestone }
644
+ let(:args) { [random_id(:project_milestone)] }
645
+ end
646
+ end
647
+
648
+ describe '#get_milestones_by_filter' do
649
+ it_should_behave_like 'an api request' do
650
+ let(:command) { :get_milestones_by_filter }
651
+ let(:args) { [{projectid: random_id(:new_project)}] }
652
+ end
653
+ end
654
+
655
+ describe '#get_milestone_tasks' do
656
+ it_should_behave_like 'an api request' do
657
+ let(:command) { :get_milestone_tasks }
658
+ let(:args) { [random_id(:project_milestone)] }
659
+ end
660
+ end
661
+
662
+ describe '#get_milestones_by_month' do
663
+ it_should_behave_like 'an api request' do
664
+ let(:command) { :get_milestones_by_month }
665
+ let(:args) { [rand(2000..Time.now.year.to_i), rand(1..12)] }
666
+ end
667
+ end
668
+
669
+ describe '#get_milestones_by_full_date' do
670
+ it_should_behave_like 'an api request' do
671
+ let(:command) { :get_milestones_by_full_date }
672
+ let(:args) { [rand(2000..Time.now.year.to_i), rand(1..12), rand(1..31)] }
673
+ end
674
+ end
675
+
676
+ describe '#update_milestone' do
677
+ it_should_behave_like 'an api request' do
678
+ let(:command) { :update_milestone }
679
+ let(:args) { [random_id(:project_milestone), random_word, DateTime.commercial(2015).to_s] }
680
+ end
681
+ end
682
+
683
+ describe '#update_milestone_status' do
684
+ it_should_behave_like 'an api request' do
685
+ let(:command) { :update_milestone_status }
686
+ let(:args) { [random_id(:project_milestone), PROJECT_MILESTONE_STATUSES.sample] }
687
+ end
688
+ end
689
+
690
+ describe '#get_time_spent_by_filter' do
691
+ it_should_behave_like 'an api request' do
692
+ let(:command) { :get_time_spent_by_filter }
693
+ end
694
+ end
695
+
696
+ describe '#get_total_time_spent_by_filter' do
697
+ it_should_behave_like 'an api request' do
698
+ let(:command) { :get_total_time_spent_by_filter }
699
+ end
700
+ end
701
+
702
+ describe '#get_time_spent' do
703
+ it_should_behave_like 'an api request' do
704
+ let(:command) { :get_time_spent }
705
+ let(:args) { [random_id(:project_task)] }
706
+ end
707
+ end
708
+
709
+ describe '#update_task_time' do
710
+ it_should_behave_like 'an api request' do
711
+ let(:command) { :update_task_time }
712
+ let(:args) { [random_id(:project_task_time), Time.now.strftime('%Y-%m-%-d'), random_id(:user)] }
713
+ end
714
+ end
715
+
716
+ describe '#update_time_status_of_payment' do
717
+ it_should_behave_like 'an api request' do
718
+ let(:command) { :update_time_status_of_payment }
719
+ let(:args) { [DATA_COLLECTOR[:project_task_time_ids].sample(rand(2..4)), PROJECT_TASK_TIME_STATUSES.sample] }
720
+ end
721
+ end
722
+
723
+ describe '#delete_time_spents' do
724
+ it_should_behave_like 'an api request' do
725
+ let(:command) { :delete_time_spents }
726
+ let(:args) { [DATA_COLLECTOR[:project_task_time_ids].pop] }
727
+ end
728
+ end
729
+
730
+ describe '#delete_project_contact' do
731
+ it_should_behave_like 'an api request' do
732
+ let(:command) { :delete_project_contact }
733
+ let(:args) { [random_id(:new_project), random_id(:contact)] }
734
+ end
735
+ end
736
+
737
+ describe '#delete_subtask' do
738
+ it_should_behave_like 'an api request' do
739
+ let(:command) { :delete_subtask }
740
+ let(:args) { [DATA_COLLECTOR[:project_task_ids].last, DATA_COLLECTOR[:project_subtask_ids].pop] }
741
+ end
742
+ end
743
+
744
+ describe '#detach_file_from_task' do
745
+ it_should_behave_like 'an api request' do
746
+ let(:command) { :detach_file_from_task }
747
+ let(:args) { [random_id(:project_task), random_id(:file)] }
748
+ end
749
+ end
750
+
751
+ describe '#detach_file_from_message' do
752
+ it_should_behave_like 'an api request' do
753
+ let(:command) { :detach_file_from_task }
754
+ let(:args) { [random_id(:discussion), random_id(:file)] }
755
+ end
756
+ end
757
+
758
+ describe '#delete_message_comments' do
759
+ it_should_behave_like 'an api request' do
760
+ let(:command) { :delete_comment }
761
+ let(:args) { [DATA_COLLECTOR[:comment_ids].pop] }
762
+ end
763
+ end
764
+
765
+ describe '#delete_milestone' do
766
+ it_should_behave_like 'an api request' do
767
+ let(:command) { :delete_milestone }
768
+ let(:args) { [DATA_COLLECTOR[:project_milestone_ids].pop] }
769
+ end
770
+ end
771
+
772
+ describe '#delete_task_comments' do
773
+ it_should_behave_like 'an api request' do
774
+ let(:command) { :delete_comment }
775
+ let(:args) { [DATA_COLLECTOR[:comment_ids].pop] }
776
+ end
777
+ end
778
+
779
+ describe '#delete_task' do
780
+ it_should_behave_like 'an api request' do
781
+ let(:command) { :delete_task }
782
+ let(:args) { [DATA_COLLECTOR[:project_task_ids].pop] }
783
+ end
784
+ end
785
+
786
+ describe '#delete_project' do
787
+ it_should_behave_like 'an api request' do
788
+ let(:command) { :delete_project }
789
+ let(:args) { [DATA_COLLECTOR[:new_project_ids].pop] }
790
+ end
791
+ end
792
+
793
+ describe '#delete_template' do
794
+ it_should_behave_like 'an api request' do
795
+ let(:command) { :delete_template }
796
+ let(:args) { [DATA_COLLECTOR[:project_template_ids].pop] }
797
+ end
798
+ end
799
+
800
+ end