pivotal-tracker 0.0.9.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.
Files changed (38) hide show
  1. data/.gitignore +7 -0
  2. data/Gemfile +16 -0
  3. data/LICENSE +20 -0
  4. data/README.rdoc +60 -0
  5. data/Rakefile +46 -0
  6. data/VERSION +1 -0
  7. data/lib/pivotal-tracker/activity.rb +45 -0
  8. data/lib/pivotal-tracker/client.rb +34 -0
  9. data/lib/pivotal-tracker/extensions.rb +11 -0
  10. data/lib/pivotal-tracker/iteration.rb +20 -0
  11. data/lib/pivotal-tracker/membership.rb +20 -0
  12. data/lib/pivotal-tracker/note.rb +17 -0
  13. data/lib/pivotal-tracker/project.rb +42 -0
  14. data/lib/pivotal-tracker/proxy.rb +65 -0
  15. data/lib/pivotal-tracker/story.rb +87 -0
  16. data/lib/pivotal-tracker/task.rb +48 -0
  17. data/lib/pivotal-tracker.rb +40 -0
  18. data/lib/pivotal_tracker.rb +2 -0
  19. data/pivotal-tracker.gemspec +95 -0
  20. data/spec/fixtures/activity.xml +176 -0
  21. data/spec/fixtures/created_story.xml +14 -0
  22. data/spec/fixtures/memberships.xml +29 -0
  23. data/spec/fixtures/project.xml +42 -0
  24. data/spec/fixtures/project_activity.xml +170 -0
  25. data/spec/fixtures/projects.xml +396 -0
  26. data/spec/fixtures/stale_fish.yml +58 -0
  27. data/spec/fixtures/stories.xml +66 -0
  28. data/spec/fixtures/tasks.xml +24 -0
  29. data/spec/spec.opts +1 -0
  30. data/spec/spec_helper.rb +27 -0
  31. data/spec/support/stale_fish_fixtures.rb +43 -0
  32. data/spec/unit/pivotal-tracker/activity_spec.rb +23 -0
  33. data/spec/unit/pivotal-tracker/iteration_spec.rb +8 -0
  34. data/spec/unit/pivotal-tracker/membership_spec.rb +20 -0
  35. data/spec/unit/pivotal-tracker/project_spec.rb +47 -0
  36. data/spec/unit/pivotal-tracker/story_spec.rb +27 -0
  37. data/spec/unit/pivotal-tracker/task_spec.rb +21 -0
  38. metadata +162 -0
@@ -0,0 +1,396 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <projects type="array">
3
+ <project>
4
+ <id>4165</id>
5
+ <name>Audi IMS</name>
6
+ <iteration_length type="integer">1</iteration_length>
7
+ <week_start_day>Monday</week_start_day>
8
+ <point_scale>0,1,2,3,5,8</point_scale>
9
+ <account>JZ // Factory Labs</account>
10
+ <velocity_scheme>Average of 2 iterations</velocity_scheme>
11
+ <current_velocity>7</current_velocity>
12
+ <initial_velocity>10</initial_velocity>
13
+ <number_of_done_iterations_to_show>12</number_of_done_iterations_to_show>
14
+ <labels>ab_test,admin,backend,blocked,cloud migration,cms,dag,data issues,dealer,design,discuss,duplicate,enhancement,export,import,invalid,is,pending,spiff,verify</labels>
15
+ <last_activity_at type="datetime">2010/02/25 10:25:08 MST</last_activity_at>
16
+ <allow_attachments>true</allow_attachments>
17
+ <public>false</public>
18
+ <use_https>false</use_https>
19
+ <bugs_and_chores_are_estimatable>false</bugs_and_chores_are_estimatable>
20
+ <commit_mode>true</commit_mode>
21
+ <memberships>
22
+ <membership>
23
+ <id>62553</id>
24
+ <person>
25
+ <email>jay.zeschin@factorylabs.com</email>
26
+ <name>Jay Zeschin</name>
27
+ <initials>JZ</initials>
28
+ </person>
29
+ <role>Owner</role>
30
+ </membership>
31
+ <membership>
32
+ <id>62554</id>
33
+ <person>
34
+ <email>gabe.varela@factorylabs.com</email>
35
+ <name>Gabe Varela</name>
36
+ <initials>GV</initials>
37
+ </person>
38
+ <role>Owner</role>
39
+ </membership>
40
+ <membership>
41
+ <id>73972</id>
42
+ <person>
43
+ <email>sean.heckethorn@factorylabs.com</email>
44
+ <name>Sean Heckethorn</name>
45
+ <initials>SH</initials>
46
+ </person>
47
+ <role>Owner</role>
48
+ </membership>
49
+ <membership>
50
+ <id>75962</id>
51
+ <person>
52
+ <email>ross.maupin@factorylabs.com</email>
53
+ <name>Ross Maupin</name>
54
+ <initials>RM</initials>
55
+ </person>
56
+ <role>Owner</role>
57
+ </membership>
58
+ <membership>
59
+ <id>76927</id>
60
+ <person>
61
+ <email>bree@factorylabs.com</email>
62
+ <name>Bree Rossi</name>
63
+ <initials>BR</initials>
64
+ </person>
65
+ <role>Owner</role>
66
+ </membership>
67
+ <membership>
68
+ <id>82072</id>
69
+ <person>
70
+ <email>matt.kitt@factorylabs.com</email>
71
+ <name>Matthew Kitt</name>
72
+ <initials>MK</initials>
73
+ </person>
74
+ <role>Owner</role>
75
+ </membership>
76
+ <membership>
77
+ <id>83996</id>
78
+ <person>
79
+ <email>craig@factorylabs.com</email>
80
+ <name>Craig Partin</name>
81
+ <initials>cp</initials>
82
+ </person>
83
+ <role>Owner</role>
84
+ </membership>
85
+ <membership>
86
+ <id>87636</id>
87
+ <person>
88
+ <email>grant@factorylabs.com</email>
89
+ <name>Grant Davis</name>
90
+ <initials>GD</initials>
91
+ </person>
92
+ <role>Owner</role>
93
+ </membership>
94
+ <membership>
95
+ <id>92467</id>
96
+ <person>
97
+ <email>jeremy@factorylabs.com</email>
98
+ <name>Jeremy Jackson</name>
99
+ <initials>JJ</initials>
100
+ </person>
101
+ <role>Owner</role>
102
+ </membership>
103
+ <membership>
104
+ <id>93302</id>
105
+ <person>
106
+ <email>justin.smestad@factorylabs.com</email>
107
+ <name>Justin Smestad</name>
108
+ <initials>JS</initials>
109
+ </person>
110
+ <role>Owner</role>
111
+ </membership>
112
+ <membership>
113
+ <id>94356</id>
114
+ <person>
115
+ <email>ryan.boyajian@factorylabs.com</email>
116
+ <name>Ryan Boyajian</name>
117
+ <initials>RB</initials>
118
+ </person>
119
+ <role>Owner</role>
120
+ </membership>
121
+ <membership>
122
+ <id>109877</id>
123
+ <person>
124
+ <email>sam@factorylabs.com</email>
125
+ <name>Sam Kuhlmann</name>
126
+ <initials>SamK</initials>
127
+ </person>
128
+ <role>Owner</role>
129
+ </membership>
130
+ <membership>
131
+ <id>133358</id>
132
+ <person>
133
+ <email>kat.grider@factorylabs.com</email>
134
+ <name>Kat</name>
135
+ <initials>KG</initials>
136
+ </person>
137
+ <role>Owner</role>
138
+ </membership>
139
+ <membership>
140
+ <id>136705</id>
141
+ <person>
142
+ <email>peter.gornell@factorylabs.com</email>
143
+ <name>Peter Gornell</name>
144
+ <initials>PG</initials>
145
+ </person>
146
+ <role>Owner</role>
147
+ </membership>
148
+ <membership>
149
+ <id>152809</id>
150
+ <person>
151
+ <email>michael.tully@factorylabs.com</email>
152
+ <name>Michael Tully</name>
153
+ <initials>MT</initials>
154
+ </person>
155
+ <role>Owner</role>
156
+ </membership>
157
+ <membership>
158
+ <id>158208</id>
159
+ <person>
160
+ <email>drew.finkbeiner@factorylabs.com</email>
161
+ <name>Drew Finkbeiner</name>
162
+ <initials>DF</initials>
163
+ </person>
164
+ <role>Owner</role>
165
+ </membership>
166
+ <membership>
167
+ <id>162762</id>
168
+ <person>
169
+ <email>jennifer.kolling@factorylabs.com</email>
170
+ <name>Jen Kolling</name>
171
+ <initials>JK</initials>
172
+ </person>
173
+ <role>Owner</role>
174
+ </membership>
175
+ <membership>
176
+ <id>164347</id>
177
+ <person>
178
+ <email>parker.fleming@factorylabs.com</email>
179
+ <name>Parker Fleming</name>
180
+ <initials>PF</initials>
181
+ </person>
182
+ <role>Owner</role>
183
+ </membership>
184
+ </memberships>
185
+ <integrations>
186
+ <integration>
187
+ <id type="integer">217</id>
188
+ <title>JIRA</title>
189
+ <active>true</active>
190
+ </integration>
191
+ </integrations>
192
+ </project>
193
+ <project>
194
+ <id>52381</id>
195
+ <name>brewery</name>
196
+ <iteration_length type="integer">1</iteration_length>
197
+ <week_start_day>Monday</week_start_day>
198
+ <point_scale>0,1,2,3</point_scale>
199
+ <account>Justin Smestad</account>
200
+ <velocity_scheme>Average of 3 iterations</velocity_scheme>
201
+ <current_velocity>10</current_velocity>
202
+ <initial_velocity>10</initial_velocity>
203
+ <number_of_done_iterations_to_show>12</number_of_done_iterations_to_show>
204
+ <labels></labels>
205
+ <allow_attachments>true</allow_attachments>
206
+ <public>false</public>
207
+ <use_https>false</use_https>
208
+ <bugs_and_chores_are_estimatable>false</bugs_and_chores_are_estimatable>
209
+ <commit_mode>false</commit_mode>
210
+ <memberships>
211
+ <membership>
212
+ <id>188319</id>
213
+ <person>
214
+ <email>justin.smestad@factorylabs.com</email>
215
+ <name>Justin Smestad</name>
216
+ <initials>JS</initials>
217
+ </person>
218
+ <role>Owner</role>
219
+ </membership>
220
+ </memberships>
221
+ <integrations>
222
+ </integrations>
223
+ </project>
224
+ <project>
225
+ <id>21978</id>
226
+ <name>Brown Bag</name>
227
+ <iteration_length type="integer">1</iteration_length>
228
+ <week_start_day>Monday</week_start_day>
229
+ <point_scale>0,1,2,3</point_scale>
230
+ <account>Justin Smestad</account>
231
+ <velocity_scheme>Average of 3 iterations</velocity_scheme>
232
+ <current_velocity>10</current_velocity>
233
+ <initial_velocity>10</initial_velocity>
234
+ <number_of_done_iterations_to_show>12</number_of_done_iterations_to_show>
235
+ <labels>app-dev,ui-dev</labels>
236
+ <last_activity_at type="datetime">2009/10/14 13:45:39 MDT</last_activity_at>
237
+ <allow_attachments>true</allow_attachments>
238
+ <public>false</public>
239
+ <use_https>false</use_https>
240
+ <bugs_and_chores_are_estimatable>false</bugs_and_chores_are_estimatable>
241
+ <commit_mode>false</commit_mode>
242
+ <memberships>
243
+ <membership>
244
+ <id>107889</id>
245
+ <person>
246
+ <email>justin.smestad@factorylabs.com</email>
247
+ <name>Justin Smestad</name>
248
+ <initials>JS</initials>
249
+ </person>
250
+ <role>Owner</role>
251
+ </membership>
252
+ <membership>
253
+ <id>107890</id>
254
+ <person>
255
+ <email>gabe.varela@factorylabs.com</email>
256
+ <name>Gabe Varela</name>
257
+ <initials>GV</initials>
258
+ </person>
259
+ <role>Owner</role>
260
+ </membership>
261
+ <membership>
262
+ <id>107891</id>
263
+ <person>
264
+ <email>jay.zeschin@factorylabs.com</email>
265
+ <name>Jay Zeschin</name>
266
+ <initials>JZ</initials>
267
+ </person>
268
+ <role>Member</role>
269
+ </membership>
270
+ <membership>
271
+ <id>107892</id>
272
+ <person>
273
+ <email>matt.kitt@factorylabs.com</email>
274
+ <name>Matthew Kitt</name>
275
+ <initials>MK</initials>
276
+ </person>
277
+ <role>Owner</role>
278
+ </membership>
279
+ <membership>
280
+ <id>107893</id>
281
+ <person>
282
+ <email>justin.gitlin@factorylabs.com</email>
283
+ <name>Justin Gitlin</name>
284
+ <initials>JG</initials>
285
+ </person>
286
+ <role>Member</role>
287
+ </membership>
288
+ <membership>
289
+ <id>107894</id>
290
+ <person>
291
+ <email>craig@factorylabs.com</email>
292
+ <name>Craig Partin</name>
293
+ <initials>cp</initials>
294
+ </person>
295
+ <role>Member</role>
296
+ </membership>
297
+ <membership>
298
+ <id>107895</id>
299
+ <person>
300
+ <email>ryan.boyajian@factorylabs.com</email>
301
+ <name>Ryan Boyajian</name>
302
+ <initials>RB</initials>
303
+ </person>
304
+ <role>Member</role>
305
+ </membership>
306
+ <membership>
307
+ <id>107896</id>
308
+ <person>
309
+ <email>grant@factorylabs.com</email>
310
+ <name>Grant Davis</name>
311
+ <initials>GD</initials>
312
+ </person>
313
+ <role>Member</role>
314
+ </membership>
315
+ <membership>
316
+ <id>113057</id>
317
+ <person>
318
+ <email>kris.collins@factorylabs.com</email>
319
+ <name>Kris Collins</name>
320
+ <initials>KC</initials>
321
+ </person>
322
+ <role>Member</role>
323
+ </membership>
324
+ <membership>
325
+ <id>116351</id>
326
+ <person>
327
+ <email>sean.dougherty@factorylabs.com</email>
328
+ <name>Sean Dougherty</name>
329
+ <initials>scd</initials>
330
+ </person>
331
+ <role>Member</role>
332
+ </membership>
333
+ <membership>
334
+ <id>116371</id>
335
+ <person>
336
+ <email>jeremy@factorylabs.com</email>
337
+ <name>Jeremy Jackson</name>
338
+ <initials>JJ</initials>
339
+ </person>
340
+ <role>Member</role>
341
+ </membership>
342
+ <membership>
343
+ <id>116372</id>
344
+ <person>
345
+ <email>todd.sheridan@factorylabs.com</email>
346
+ <name>Todd Sheridan</name>
347
+ <initials>TS</initials>
348
+ </person>
349
+ <role>Owner</role>
350
+ </membership>
351
+ </memberships>
352
+ <integrations>
353
+ </integrations>
354
+ </project>
355
+ <project>
356
+ <id>59022</id>
357
+ <name>pivotal-tracker gem</name>
358
+ <iteration_length type="integer">1</iteration_length>
359
+ <week_start_day>Monday</week_start_day>
360
+ <point_scale>0,1,2,3</point_scale>
361
+ <account>Justin Smestad</account>
362
+ <velocity_scheme>Average of 3 iterations</velocity_scheme>
363
+ <current_velocity>10</current_velocity>
364
+ <initial_velocity>10</initial_velocity>
365
+ <number_of_done_iterations_to_show>12</number_of_done_iterations_to_show>
366
+ <labels>test_dependent</labels>
367
+ <last_activity_at type="datetime">2010/02/25 11:55:44 MST</last_activity_at>
368
+ <allow_attachments>true</allow_attachments>
369
+ <public>true</public>
370
+ <use_https>false</use_https>
371
+ <bugs_and_chores_are_estimatable>false</bugs_and_chores_are_estimatable>
372
+ <commit_mode>false</commit_mode>
373
+ <memberships>
374
+ <membership>
375
+ <id>207328</id>
376
+ <person>
377
+ <email>justin.smestad@factorylabs.com</email>
378
+ <name>Justin Smestad</name>
379
+ <initials>JS</initials>
380
+ </person>
381
+ <role>Owner</role>
382
+ </membership>
383
+ <membership>
384
+ <id>207330</id>
385
+ <person>
386
+ <email>hone02@gmail.com</email>
387
+ <name>Terence Lee</name>
388
+ <initials>TL</initials>
389
+ </person>
390
+ <role>Owner</role>
391
+ </membership>
392
+ </memberships>
393
+ <integrations>
394
+ </integrations>
395
+ </project>
396
+ </projects>
@@ -0,0 +1,58 @@
1
+ --- !omap
2
+ - stale:
3
+ - memberships:
4
+ file: 'memberships.xml'
5
+ update_interval: 2.weeks
6
+ check_against: http://www.pivotaltracker.com/services/v3/projects/59022/memberships
7
+ request_type: GET
8
+ update_method: StaleFishFixtures.update_memberships_fixture
9
+ last_updated_at: 2010-02-25T12:30:45-07:00
10
+ - projects:
11
+ file: 'projects.xml'
12
+ update_interval: 2.weeks
13
+ check_against: http://www.pivotaltracker.com/services/v3/projects
14
+ request_type: GET
15
+ update_method: StaleFishFixtures.update_projects_fixture
16
+ last_updated_at: 2010-02-25T12:30:44-07:00
17
+ - tasks:
18
+ file: 'tasks.xml'
19
+ update_interval: 2.weeks
20
+ check_against: http://www.pivotaltracker.com/services/v3/projects/59022/stories/2606200/tasks
21
+ request_type: GET
22
+ update_method: StaleFishFixtures.update_tasks_fixture
23
+ last_updated_at: 2010-02-25T12:30:43-07:00
24
+ - project:
25
+ file: 'project.xml'
26
+ update_interval: 2.weeks
27
+ check_against: http://www.pivotaltracker.com/services/v3/projects/59022
28
+ request_type: GET
29
+ update_method: StaleFishFixtures.update_project_fixture
30
+ last_updated_at: 2010-02-25T12:30:44-07:00
31
+ - activity:
32
+ file: 'activity.xml'
33
+ update_interval: 2.weeks
34
+ check_against: http://www.pivotaltracker.com/services/v3/activities
35
+ request_type: GET
36
+ update_method: StaleFishFixtures.update_activity_fixture
37
+ last_updated_at: 2010-02-25T12:31:21-07:00
38
+ - stories:
39
+ file: 'stories.xml'
40
+ update_interval: 2.weeks
41
+ check_against: http://www.pivotaltracker.com/services/v3/projects/59022/stories
42
+ request_type: GET
43
+ update_method: StaleFishFixtures.update_stories_fixture
44
+ last_updated_at: 2010-02-25T12:30:44-07:00
45
+ - project_activity:
46
+ file: 'project_activity.xml'
47
+ update_interval: 2.weeks
48
+ check_against: http://www.pivotaltracker.com/services/v3/projects/59022/activities
49
+ request_type: GET
50
+ update_method: StaleFishFixtures.update_project_activity_fixture
51
+ last_updated_at: 2010-02-25T12:30:45-07:00
52
+ - create_story:
53
+ file: 'created_story.xml'
54
+ update_interval: 2.weeks
55
+ check_against: http://www.pivotaltracker.com/services/v3/projects/59022/stories
56
+ request_type: POST
57
+ update_method: StaleFishFixtures.create_new_story
58
+ last_updated_at: 2010-03-10T11:40:34-07:00
@@ -0,0 +1,66 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <stories type="array" count="3" limit="20" total="3">
3
+ <story>
4
+ <id type="integer">2606200</id>
5
+ <story_type>feature</story_type>
6
+ <url>http://www.pivotaltracker.com/story/show/2606200</url>
7
+ <estimate type="integer">2</estimate>
8
+ <current_state>unstarted</current_state>
9
+ <description>This is just some description.</description>
10
+ <name>Tasks Test</name>
11
+ <requested_by>Justin Smestad</requested_by>
12
+ <owned_by>Terence Lee</owned_by>
13
+ <created_at type="datetime">2010/02/25 11:54:51 MST</created_at>
14
+ <updated_at type="datetime">2010/02/25 11:55:30 MST</updated_at>
15
+ <labels>test_dependent</labels>
16
+ <tasks type="array">
17
+ <task>
18
+ <id type="integer">179024</id>
19
+ <description>Task number 1</description>
20
+ <position>1</position>
21
+ <complete>false</complete>
22
+ <created_at type="datetime">2010/02/25 11:55:00 MST</created_at>
23
+ </task>
24
+ <task>
25
+ <id type="integer">179025</id>
26
+ <description>Number 2 Task</description>
27
+ <position>2</position>
28
+ <complete>false</complete>
29
+ <created_at type="datetime">2010/02/25 11:55:04 MST</created_at>
30
+ </task>
31
+ <task>
32
+ <id type="integer">179026</id>
33
+ <description>3rd task is a charm</description>
34
+ <position>3</position>
35
+ <complete>true</complete>
36
+ <created_at type="datetime">2010/02/25 11:55:09 MST</created_at>
37
+ </task>
38
+ </tasks>
39
+ </story>
40
+ <story>
41
+ <id type="integer">2524690</id>
42
+ <story_type>feature</story_type>
43
+ <url>http://www.pivotaltracker.com/story/show/2524690</url>
44
+ <estimate type="integer">3</estimate>
45
+ <current_state>unstarted</current_state>
46
+ <description></description>
47
+ <name>another gem</name>
48
+ <requested_by>Justin Smestad</requested_by>
49
+ <created_at type="datetime">2010/02/17 15:42:58 MST</created_at>
50
+ <updated_at type="datetime">2010/02/17 15:43:07 MST</updated_at>
51
+ <labels>test_dependent</labels>
52
+ </story>
53
+ <story>
54
+ <id type="integer">2524689</id>
55
+ <story_type>feature</story_type>
56
+ <url>http://www.pivotaltracker.com/story/show/2524689</url>
57
+ <estimate type="integer">2</estimate>
58
+ <current_state>unstarted</current_state>
59
+ <description></description>
60
+ <name>some gem</name>
61
+ <requested_by>Justin Smestad</requested_by>
62
+ <created_at type="datetime">2010/02/17 15:42:52 MST</created_at>
63
+ <updated_at type="datetime">2010/02/17 15:43:06 MST</updated_at>
64
+ <labels>test_dependent</labels>
65
+ </story>
66
+ </stories>
@@ -0,0 +1,24 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <tasks type="array">
3
+ <task>
4
+ <id type="integer">179024</id>
5
+ <description>Task number 1</description>
6
+ <position>1</position>
7
+ <complete>false</complete>
8
+ <created_at type="datetime">2010/02/25 11:55:00 MST</created_at>
9
+ </task>
10
+ <task>
11
+ <id type="integer">179025</id>
12
+ <description>Number 2 Task</description>
13
+ <position>2</position>
14
+ <complete>false</complete>
15
+ <created_at type="datetime">2010/02/25 11:55:04 MST</created_at>
16
+ </task>
17
+ <task>
18
+ <id type="integer">179026</id>
19
+ <description>3rd task is a charm</description>
20
+ <position>3</position>
21
+ <complete>true</complete>
22
+ <created_at type="datetime">2010/02/25 11:55:09 MST</created_at>
23
+ </task>
24
+ </tasks>
data/spec/spec.opts ADDED
@@ -0,0 +1 @@
1
+ --color
@@ -0,0 +1,27 @@
1
+ Bundler.require(:default, :runtime, :test)
2
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
3
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
4
+
5
+ require 'pivotal-tracker'
6
+ require 'spec'
7
+ require 'spec/autorun'
8
+
9
+ # PROJECT_ID = ENV['PROJECT_ID'] || "59022"
10
+
11
+ TOKEN = 'a40c739c5c2499461fcae008dda48b8c'
12
+ #PROJECT_ID = '59022'
13
+
14
+ # Requires supporting files with custom matchers and macros, etc,
15
+ # in ./support/ and its subdirectories.
16
+ Dir[File.expand_path(File.join(File.dirname(__FILE__),'support','**','*.rb'))].each {|f| require f}
17
+
18
+ StaleFish.setup(File.join(File.dirname(__FILE__), 'fixtures', 'stale_fish.yml'))
19
+
20
+ Spec::Runner.configure do |config|
21
+ # config.include(Rack::Test::Methods)
22
+
23
+ config.before :suite do
24
+ StaleFish.update_stale
25
+ end
26
+
27
+ end
@@ -0,0 +1,43 @@
1
+ module StaleFishFixtures
2
+ class << self
3
+
4
+ def update_projects_fixture
5
+ connection["/projects"].get
6
+ end
7
+
8
+ def update_project_fixture
9
+ connection["/projects/59022"].get
10
+ end
11
+
12
+ def update_stories_fixture
13
+ connection["/projects/59022/stories?limit=20"].get
14
+ end
15
+
16
+ def update_memberships_fixture
17
+ connection["/projects/59022/memberships"].get
18
+ end
19
+
20
+ def update_tasks_fixture
21
+ connection["/projects/59022/stories/2606200/tasks"].get
22
+ end
23
+
24
+ def update_activity_fixture
25
+ connection["/activities"].get
26
+ end
27
+
28
+ def update_project_activity_fixture
29
+ connection["/projects/59022/activities"].get
30
+ end
31
+
32
+ def create_new_story
33
+ connection["/projects/59022/stories"].post("<story><name>Create stuff</name></story>", :content_type => 'application/xml')
34
+ end
35
+
36
+ protected
37
+
38
+ def connection
39
+ @connection ||= RestClient::Resource.new('http://www.pivotaltracker.com/services/v3', :headers => {'X-TrackerToken' => TOKEN, 'Content-Type' => 'application/xml'})
40
+ end
41
+
42
+ end
43
+ end
@@ -0,0 +1,23 @@
1
+ require File.join(File.dirname(__FILE__), '..', '..', 'spec_helper')
2
+
3
+ describe PivotalTracker::Activity do
4
+
5
+ context "without a specified project" do
6
+ it "should return an array of activities" do
7
+ PivotalTracker::Activity.all.should be_a(Array)
8
+ PivotalTracker::Activity.all.first.should be_a(PivotalTracker::Activity)
9
+ end
10
+ end
11
+
12
+ context "with a specified project" do
13
+ before do
14
+ @project = PivotalTracker::Project.find(59022)
15
+ end
16
+
17
+ it "should return an array of activities" do
18
+ @project.activities.all.should be_a(Array)
19
+ @project.activities.all.first.should be_a(PivotalTracker::Activity)
20
+ end
21
+ end
22
+
23
+ end
@@ -0,0 +1,8 @@
1
+ require File.join(File.dirname(__FILE__), '..', '..', 'spec_helper')
2
+
3
+ describe PivotalTracker::Iteration do
4
+
5
+ it "should have real tests"
6
+
7
+ end
8
+
@@ -0,0 +1,20 @@
1
+ require File.join(File.dirname(__FILE__), '..', '..', 'spec_helper')
2
+
3
+ describe PivotalTracker::Project do
4
+ before do
5
+ @project = PivotalTracker::Project.find(59022)
6
+ end
7
+
8
+ context ".all" do
9
+ it "should return an array of memberships" do
10
+ @project.memberships.all.should be_a(Array)
11
+ @project.memberships.all.first.should be_a(PivotalTracker::Membership)
12
+ end
13
+ end
14
+
15
+ context ".find" do
16
+ it "should return the given membership" do
17
+ @project.memberships.find(207328).should be_a(PivotalTracker::Membership)
18
+ end
19
+ end
20
+ end