troo 0.0.8 → 0.0.9

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 (316) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +3 -1
  3. data/.ruby-version +1 -1
  4. data/.trooconf.example +18 -0
  5. data/Gemfile.lock +178 -0
  6. data/README.md +77 -21
  7. data/Rakefile +1 -1
  8. data/bin/completion.bash +10 -0
  9. data/bin/completion.zsh +10 -0
  10. data/bin/init.sh +15 -0
  11. data/bin/troo +12 -3
  12. data/config/cucumber.yml +3 -3
  13. data/config/en.yml +29 -0
  14. data/config/trello_api.yml +19 -0
  15. data/features/add/board.feature +3 -19
  16. data/features/add/card.feature +14 -18
  17. data/features/add/comment.feature +14 -14
  18. data/features/add/list.feature +11 -14
  19. data/features/default/board.feature +4 -4
  20. data/features/default/card.feature +4 -4
  21. data/features/default/list.feature +4 -4
  22. data/features/move/card.feature +54 -0
  23. data/features/refresh/all.feature +8 -4
  24. data/features/refresh/board.feature +9 -6
  25. data/features/refresh/card.feature +9 -6
  26. data/features/refresh/list.feature +9 -6
  27. data/features/show/board.feature +7 -7
  28. data/features/show/boards.feature +19 -0
  29. data/features/show/card.feature +86 -15
  30. data/features/show/comment.feature +14 -12
  31. data/features/show/list.feature +19 -14
  32. data/features/status.feature +27 -13
  33. data/features/step_definitions/fabrication_steps.rb +43 -8
  34. data/features/step_definitions/troo_steps.rb +3 -2
  35. data/features/support/env.rb +1 -0
  36. data/features/troo.feature +0 -12
  37. data/lib/troo.rb +32 -29
  38. data/lib/troo/api/client.rb +117 -0
  39. data/lib/troo/api/endpoints.rb +39 -0
  40. data/lib/troo/api/headers.rb +44 -0
  41. data/lib/troo/api/oauth_settings.rb +36 -0
  42. data/lib/troo/api/request.rb +37 -0
  43. data/lib/troo/api/response.rb +31 -0
  44. data/lib/troo/cli/add.rb +8 -12
  45. data/lib/troo/cli/commands/add.rb +95 -0
  46. data/lib/troo/cli/commands/default.rb +44 -0
  47. data/lib/troo/cli/commands/move/card.rb +95 -0
  48. data/lib/troo/cli/commands/refresh.rb +80 -0
  49. data/lib/troo/cli/commands/refresh/all.rb +52 -0
  50. data/lib/troo/cli/commands/show.rb +56 -0
  51. data/lib/troo/cli/commands/show/show_boards.rb +36 -0
  52. data/lib/troo/cli/commands/show/show_comments.rb +54 -0
  53. data/lib/troo/cli/commands/status.rb +68 -0
  54. data/lib/troo/cli/default.rb +3 -3
  55. data/lib/troo/cli/main.rb +60 -9
  56. data/lib/troo/cli/refresh.rb +4 -4
  57. data/lib/troo/cli/show.rb +7 -7
  58. data/lib/troo/cli/thor_fixes.rb +1 -5
  59. data/lib/troo/configuration.rb +53 -0
  60. data/lib/troo/debug.rb +18 -0
  61. data/lib/troo/decorators/member.rb +2 -19
  62. data/lib/troo/decorators/resource.rb +130 -0
  63. data/lib/troo/helpers/decorator_helpers.rb +21 -74
  64. data/lib/troo/helpers/model_helpers.rb +19 -4
  65. data/lib/troo/helpers/remote_model_helpers.rb +54 -0
  66. data/lib/troo/models/board.rb +19 -11
  67. data/lib/troo/models/card.rb +20 -17
  68. data/lib/troo/models/comment.rb +28 -8
  69. data/lib/troo/models/list.rb +22 -14
  70. data/lib/troo/models/member.rb +21 -5
  71. data/lib/troo/models/refresh.rb +3 -4
  72. data/lib/troo/persistence/local.rb +63 -0
  73. data/lib/troo/presentation/formatter.rb +132 -0
  74. data/lib/troo/presentation/template.rb +0 -4
  75. data/lib/troo/presenters/board.rb +32 -51
  76. data/lib/troo/presenters/card.rb +4 -11
  77. data/lib/troo/presenters/comment.rb +30 -16
  78. data/lib/troo/presenters/list.rb +25 -21
  79. data/lib/troo/presenters/member.rb +1 -8
  80. data/lib/troo/remote/all.rb +16 -0
  81. data/lib/troo/remote/board.rb +64 -0
  82. data/lib/troo/remote/card.rb +81 -0
  83. data/lib/troo/remote/comment.rb +70 -0
  84. data/lib/troo/remote/comment_data.rb +11 -0
  85. data/lib/troo/remote/comment_data_board.rb +13 -0
  86. data/lib/troo/remote/comment_data_card.rb +15 -0
  87. data/lib/troo/remote/list.rb +49 -0
  88. data/lib/troo/remote/member.rb +75 -0
  89. data/lib/troo/remote/persistence/board.rb +57 -0
  90. data/lib/troo/remote/persistence/card.rb +59 -0
  91. data/lib/troo/remote/persistence/comment.rb +58 -0
  92. data/lib/troo/remote/persistence/list.rb +57 -0
  93. data/lib/troo/remote/persistence/move_card.rb +85 -0
  94. data/lib/troo/retrieval/local.rb +100 -0
  95. data/lib/troo/retrieval/remote.rb +91 -0
  96. data/lib/troo/troo.rb +42 -42
  97. data/lib/troo/version.rb +1 -1
  98. data/lib/troo/views/card.erb +8 -10
  99. data/lib/troo/views/comments.erb +4 -0
  100. data/test/cassettes/board_by_id.yml +21 -30
  101. data/test/cassettes/boards_all.yml +22 -90
  102. data/test/cassettes/card_by_id.yml +49 -0
  103. data/test/cassettes/cards_by_board_id.yml +22 -90
  104. data/test/cassettes/cards_by_list_id.yml +22 -87
  105. data/test/cassettes/comments_by_board_id.yml +22 -95
  106. data/test/cassettes/comments_by_card_id.yml +22 -87
  107. data/test/cassettes/create_board.yml +20 -32
  108. data/test/cassettes/create_card.yml +21 -35
  109. data/test/cassettes/create_comment.yml +19 -37
  110. data/test/cassettes/create_list.yml +18 -32
  111. data/test/cassettes/list_by_id.yml +46 -0
  112. data/test/cassettes/lists_by_board_id.yml +19 -91
  113. data/test/cassettes/member_by_id.yml +48 -0
  114. data/test/cassettes/members_by_board_id.yml +21 -82
  115. data/test/cassettes/move_card_board.yml +49 -0
  116. data/test/cassettes/move_card_list.yml +49 -0
  117. data/test/lib/troo/api/client_test.rb +75 -0
  118. data/test/lib/troo/api/endpoints_test.rb +48 -0
  119. data/test/lib/troo/api/headers_test.rb +27 -0
  120. data/test/lib/troo/api/oauth_settings_test.rb +10 -0
  121. data/test/lib/troo/api/request_test.rb +63 -0
  122. data/test/lib/troo/api/response_test.rb +15 -0
  123. data/test/lib/troo/cli/add_test.rb +113 -0
  124. data/test/lib/troo/cli/commands/add_test.rb +66 -0
  125. data/test/lib/troo/cli/commands/default_test.rb +39 -0
  126. data/test/lib/troo/cli/commands/move/card_test.rb +86 -0
  127. data/test/lib/troo/cli/commands/refresh/all_test.rb +37 -0
  128. data/test/lib/troo/cli/commands/refresh_test.rb +59 -0
  129. data/test/lib/troo/cli/commands/show/show_boards_test.rb +35 -0
  130. data/test/lib/troo/cli/commands/show/show_comments_test.rb +63 -0
  131. data/test/lib/troo/cli/commands/show_test.rb +65 -0
  132. data/test/lib/troo/cli/commands/status_test.rb +48 -0
  133. data/test/lib/troo/cli/default_test.rb +39 -0
  134. data/test/lib/troo/cli/main_test.rb +102 -0
  135. data/test/lib/troo/cli/refresh_test.rb +43 -0
  136. data/test/lib/troo/cli/show_test.rb +49 -0
  137. data/test/lib/troo/cli/thor_fixes_test.rb +38 -0
  138. data/test/lib/troo/configuration_test.rb +43 -0
  139. data/test/lib/troo/debug_test.rb +25 -0
  140. data/test/lib/troo/decorators/card_test.rb +105 -229
  141. data/test/lib/troo/decorators/member_test.rb +20 -35
  142. data/test/lib/troo/decorators/resource_test.rb +157 -0
  143. data/test/lib/troo/helpers/decorator_helpers_test.rb +10 -19
  144. data/test/lib/troo/helpers/model_helpers_test.rb +18 -8
  145. data/test/lib/troo/helpers/remote_model_helpers_test.rb +68 -0
  146. data/test/lib/troo/models/behaviours/set_default_test.rb +0 -10
  147. data/test/lib/troo/models/board_test.rb +2 -2
  148. data/test/lib/troo/models/card_test.rb +2 -2
  149. data/test/lib/troo/models/comment_test.rb +6 -2
  150. data/test/lib/troo/models/list_test.rb +2 -2
  151. data/test/lib/troo/models/member_test.rb +6 -2
  152. data/test/lib/troo/persistence/local_test.rb +31 -0
  153. data/test/lib/troo/presentation/formatter_test.rb +31 -0
  154. data/test/lib/troo/presentation/sentence_test.rb +0 -12
  155. data/test/lib/troo/presentation/template_test.rb +1 -14
  156. data/test/lib/troo/presenters/board_test.rb +17 -36
  157. data/test/lib/troo/presenters/card_test.rb +1 -31
  158. data/test/lib/troo/presenters/comment_test.rb +19 -19
  159. data/test/lib/troo/presenters/list_test.rb +18 -18
  160. data/test/lib/troo/presenters/member_test.rb +1 -14
  161. data/test/lib/troo/remote/board_test.rb +66 -0
  162. data/test/lib/troo/remote/card_test.rb +81 -0
  163. data/test/lib/troo/remote/comment_data_board.rb +9 -0
  164. data/test/lib/troo/remote/comment_data_card_test.rb +9 -0
  165. data/test/lib/troo/remote/comment_data_test.rb +9 -0
  166. data/test/lib/troo/remote/comment_test.rb +100 -0
  167. data/test/lib/troo/remote/list_test.rb +67 -0
  168. data/test/lib/troo/remote/member_test.rb +70 -0
  169. data/test/lib/troo/remote/persistence/board_test.rb +39 -0
  170. data/test/lib/troo/remote/persistence/card_test.rb +50 -0
  171. data/test/lib/troo/remote/persistence/comment_test.rb +45 -0
  172. data/test/lib/troo/remote/persistence/list_test.rb +45 -0
  173. data/test/lib/troo/remote/persistence/move_card_test.rb +78 -0
  174. data/test/lib/troo/retrieval/local_test.rb +192 -0
  175. data/test/lib/troo/retrieval/remote_test.rb +49 -0
  176. data/test/support/fabrication.rb +17 -17
  177. data/test/support/fake_trello/fake_response.rb +38 -0
  178. data/test/support/fake_trello/server.rb +124 -0
  179. data/test/support/remotes/all_boards.json +41 -0
  180. data/test/support/remotes/board.json +140 -0
  181. data/test/support/remotes/board_by_id.json +75 -0
  182. data/test/support/remotes/card.json +40 -0
  183. data/test/support/remotes/card_by_card_id.json +302 -0
  184. data/test/support/remotes/comment.json +27 -0
  185. data/test/support/remotes/create_board.json +38 -0
  186. data/test/support/remotes/list.json +7 -0
  187. data/test/support/remotes/member.json +50 -0
  188. data/test/system_test.sh +21 -1
  189. data/test/test_helper.rb +2 -1
  190. data/troo.gemspec +28 -20
  191. metadata +376 -269
  192. data/configuration.yml.example +0 -7
  193. data/features/cleanup.feature +0 -13
  194. data/lib/troo/actions/create_board.rb +0 -46
  195. data/lib/troo/actions/create_card.rb +0 -44
  196. data/lib/troo/actions/create_comment.rb +0 -46
  197. data/lib/troo/actions/create_list.rb +0 -42
  198. data/lib/troo/actions/move_card.rb +0 -37
  199. data/lib/troo/adaptors/board.rb +0 -32
  200. data/lib/troo/adaptors/card.rb +0 -67
  201. data/lib/troo/adaptors/comment.rb +0 -42
  202. data/lib/troo/adaptors/list.rb +0 -37
  203. data/lib/troo/adaptors/member.rb +0 -52
  204. data/lib/troo/adaptors/resource.rb +0 -17
  205. data/lib/troo/commands/add/board.rb +0 -26
  206. data/lib/troo/commands/add/card.rb +0 -33
  207. data/lib/troo/commands/add/comment.rb +0 -33
  208. data/lib/troo/commands/add/list.rb +0 -33
  209. data/lib/troo/commands/add/resource.rb +0 -21
  210. data/lib/troo/commands/commands.rb +0 -28
  211. data/lib/troo/commands/default/board.rb +0 -25
  212. data/lib/troo/commands/default/card.rb +0 -25
  213. data/lib/troo/commands/default/list.rb +0 -25
  214. data/lib/troo/commands/default/resource.rb +0 -26
  215. data/lib/troo/commands/refresh/all.rb +0 -41
  216. data/lib/troo/commands/refresh/board.rb +0 -28
  217. data/lib/troo/commands/refresh/card.rb +0 -29
  218. data/lib/troo/commands/refresh/list.rb +0 -29
  219. data/lib/troo/commands/refresh/resource.rb +0 -42
  220. data/lib/troo/commands/show/board.rb +0 -13
  221. data/lib/troo/commands/show/boards.rb +0 -35
  222. data/lib/troo/commands/show/card.rb +0 -13
  223. data/lib/troo/commands/show/comments.rb +0 -21
  224. data/lib/troo/commands/show/list.rb +0 -13
  225. data/lib/troo/commands/show/resource.rb +0 -41
  226. data/lib/troo/commands/status/board.rb +0 -30
  227. data/lib/troo/commands/status/card.rb +0 -30
  228. data/lib/troo/commands/status/list.rb +0 -30
  229. data/lib/troo/commands/status/resource.rb +0 -34
  230. data/lib/troo/decorators/board.rb +0 -66
  231. data/lib/troo/decorators/card.rb +0 -105
  232. data/lib/troo/decorators/comment.rb +0 -36
  233. data/lib/troo/decorators/list.rb +0 -60
  234. data/lib/troo/external/board.rb +0 -31
  235. data/lib/troo/external/card.rb +0 -31
  236. data/lib/troo/external/comment.rb +0 -27
  237. data/lib/troo/external/list.rb +0 -27
  238. data/lib/troo/external/member.rb +0 -27
  239. data/lib/troo/external/resource.rb +0 -42
  240. data/lib/troo/helpers/command_helpers.rb +0 -37
  241. data/lib/troo/models/persistence/board.rb +0 -19
  242. data/lib/troo/models/persistence/card.rb +0 -19
  243. data/lib/troo/models/persistence/comment.rb +0 -19
  244. data/lib/troo/models/persistence/list.rb +0 -19
  245. data/lib/troo/models/persistence/member.rb +0 -19
  246. data/lib/troo/models/persistence/resource.rb +0 -50
  247. data/lib/troo/models/remote/comment.rb +0 -21
  248. data/lib/troo/models/remote/resource.rb +0 -25
  249. data/lib/troo/models/retrieval/board.rb +0 -29
  250. data/lib/troo/models/retrieval/card.rb +0 -33
  251. data/lib/troo/models/retrieval/comment.rb +0 -25
  252. data/lib/troo/models/retrieval/list.rb +0 -29
  253. data/lib/troo/models/retrieval/member.rb +0 -25
  254. data/lib/troo/models/retrieval/resource.rb +0 -36
  255. data/lib/troo/views/comment.erb +0 -3
  256. data/test/cassettes/card_by_card_id.yml +0 -58
  257. data/test/cassettes/comments_by_list_id.yml +0 -109
  258. data/test/cassettes/list_by_list_id.yml +0 -56
  259. data/test/cassettes/member_by_member_id.yml +0 -60
  260. data/test/cassettes/move_card.yml +0 -61
  261. data/test/lib/troo/actions/create_board_test.rb +0 -66
  262. data/test/lib/troo/actions/create_card_test.rb +0 -71
  263. data/test/lib/troo/actions/create_comment_test.rb +0 -71
  264. data/test/lib/troo/actions/create_list_test.rb +0 -65
  265. data/test/lib/troo/actions/move_card_test.rb +0 -54
  266. data/test/lib/troo/adaptors/board_test.rb +0 -38
  267. data/test/lib/troo/adaptors/card_test.rb +0 -49
  268. data/test/lib/troo/adaptors/comment_test.rb +0 -41
  269. data/test/lib/troo/adaptors/list_test.rb +0 -38
  270. data/test/lib/troo/adaptors/member_test.rb +0 -44
  271. data/test/lib/troo/commands/add/board_test.rb +0 -43
  272. data/test/lib/troo/commands/add/card_test.rb +0 -44
  273. data/test/lib/troo/commands/add/comment_test.rb +0 -44
  274. data/test/lib/troo/commands/add/list_test.rb +0 -44
  275. data/test/lib/troo/commands/add/resource_test.rb +0 -25
  276. data/test/lib/troo/commands/default/board_test.rb +0 -37
  277. data/test/lib/troo/commands/default/card_test.rb +0 -37
  278. data/test/lib/troo/commands/default/list_test.rb +0 -37
  279. data/test/lib/troo/commands/default/resource_test.rb +0 -20
  280. data/test/lib/troo/commands/refresh/all_test.rb +0 -39
  281. data/test/lib/troo/commands/refresh/board_test.rb +0 -62
  282. data/test/lib/troo/commands/refresh/card_test.rb +0 -62
  283. data/test/lib/troo/commands/refresh/list_test.rb +0 -62
  284. data/test/lib/troo/commands/refresh/resource_test.rb +0 -20
  285. data/test/lib/troo/commands/show/board_test.rb +0 -65
  286. data/test/lib/troo/commands/show/boards_test.rb +0 -36
  287. data/test/lib/troo/commands/show/card_test.rb +0 -64
  288. data/test/lib/troo/commands/show/comments_test.rb +0 -64
  289. data/test/lib/troo/commands/show/list_test.rb +0 -64
  290. data/test/lib/troo/commands/show/resource_test.rb +0 -25
  291. data/test/lib/troo/commands/status/board_test.rb +0 -43
  292. data/test/lib/troo/commands/status/card_test.rb +0 -43
  293. data/test/lib/troo/commands/status/list_test.rb +0 -43
  294. data/test/lib/troo/commands/status/resource_test.rb +0 -19
  295. data/test/lib/troo/decorators/board_test.rb +0 -129
  296. data/test/lib/troo/decorators/comment_test.rb +0 -74
  297. data/test/lib/troo/decorators/list_test.rb +0 -102
  298. data/test/lib/troo/external/board_test.rb +0 -102
  299. data/test/lib/troo/external/card_test.rb +0 -131
  300. data/test/lib/troo/external/comment_test.rb +0 -109
  301. data/test/lib/troo/external/list_test.rb +0 -94
  302. data/test/lib/troo/external/member_test.rb +0 -94
  303. data/test/lib/troo/external/resource_test.rb +0 -25
  304. data/test/lib/troo/helpers/command_helpers_test.rb +0 -82
  305. data/test/lib/troo/models/persistence/board_test.rb +0 -62
  306. data/test/lib/troo/models/persistence/card_test.rb +0 -61
  307. data/test/lib/troo/models/persistence/comment_test.rb +0 -69
  308. data/test/lib/troo/models/persistence/list_test.rb +0 -60
  309. data/test/lib/troo/models/persistence/member_test.rb +0 -60
  310. data/test/lib/troo/models/remote/comment_test.rb +0 -56
  311. data/test/lib/troo/models/remote/resource_test.rb +0 -26
  312. data/test/lib/troo/models/retrieval/board_test.rb +0 -93
  313. data/test/lib/troo/models/retrieval/card_test.rb +0 -101
  314. data/test/lib/troo/models/retrieval/comment_test.rb +0 -46
  315. data/test/lib/troo/models/retrieval/list_test.rb +0 -93
  316. data/test/lib/troo/models/retrieval/member_test.rb +0 -58
@@ -1,60 +0,0 @@
1
- ---
2
- http_interactions:
3
- - request:
4
- method: get
5
- uri: https://api.trello.com/1/members/5195fdb5a8c01a2318004f5d
6
- body:
7
- encoding: US-ASCII
8
- string: ''
9
- headers:
10
- Accept:
11
- - "*/*; q=0.5, application/xml"
12
- Accept-Encoding:
13
- - gzip, deflate
14
- Authorization:
15
- - "<OAuth Credentials>"
16
- User-Agent:
17
- - Ruby
18
- response:
19
- status:
20
- code: 200
21
- message: OK
22
- headers:
23
- X-Powered-By:
24
- - Express
25
- Cache-Control:
26
- - max-age=0, must-revalidate, no-cache, no-store
27
- X-Content-Type-Options:
28
- - nosniff
29
- Strict-Transport-Security:
30
- - max-age=15768000
31
- X-Xss-Protection:
32
- - 1; mode=block
33
- X-Frame-Options:
34
- - DENY
35
- X-Server-Time:
36
- - '1389729857351'
37
- Expires:
38
- - Thu, 01 Jan 1970 00:00:00
39
- Content-Type:
40
- - application/json
41
- Access-Control-Allow-Origin:
42
- - "*"
43
- Access-Control-Allow-Methods:
44
- - GET, PUT, POST, DELETE
45
- Etag:
46
- - "\"-1309915436\""
47
- Vary:
48
- - Accept-Encoding
49
- Date:
50
- - Tue, 14 Jan 2014 20:04:17 GMT
51
- Transfer-Encoding:
52
- - chunked
53
- body:
54
- encoding: UTF-8
55
- string: "{\"id\":\"5195fdb5a8c01a2318004f5d\",\"avatarHash\":\"045fd924d84699c9ba451e181bba33a3\",\"bio\":\"\",\"bioData\":null,\"confirmed\":true,\"fullName\":\"Gavin
56
- Laking\",\"idPremOrgsAdmin\":[],\"initials\":\"GL\",\"memberType\":\"normal\",\"products\":[],\"status\":\"disconnected\",\"url\":\"<Trello
57
- URL>\",\"username\":\"gavinlaking1\",\"avatarSource\":\"gravatar\",\"email\":null,\"gravatarHash\":\"c9c47875936bed67032a12c047b468a8\",\"idBoards\":[\"526d8e130a14a9d846001d96\"],\"idOrganizations\":[],\"idOrganizationsInvited\":[],\"loginTypes\":null,\"newEmail\":null,\"oneTimeMessagesDismissed\":[],\"prefs\":{\"timezoneInfo\":{\"timezoneNext\":\"BST\",\"dateNext\":\"2014-03-30T01:00:00.000Z\",\"offsetNext\":-60,\"timezoneCurrent\":\"GMT\",\"offsetCurrent\":0},\"sendSummaries\":true,\"minutesBetweenSummaries\":60,\"minutesBeforeDeadlineToNotify\":1440,\"colorBlind\":false},\"trophies\":[\"Android\"],\"uploadedAvatarHash\":null,\"premiumFeatures\":[]}"
58
- http_version:
59
- recorded_at: Tue, 14 Jan 2014 20:04:16 GMT
60
- recorded_with: VCR 2.8.0
@@ -1,61 +0,0 @@
1
- ---
2
- http_interactions:
3
- - request:
4
- method: put
5
- uri: https://api.trello.com/1/cards/526d8f19ddb279532e005259/idList
6
- body:
7
- encoding: US-ASCII
8
- string: value=526d8e130a14a9d846001d98
9
- headers:
10
- Accept:
11
- - "*/*; q=0.5, application/xml"
12
- Accept-Encoding:
13
- - gzip, deflate
14
- Authorization:
15
- - "<OAuth Credentials>"
16
- Content-Length:
17
- - '30'
18
- Content-Type:
19
- - application/x-www-form-urlencoded
20
- User-Agent:
21
- - Ruby
22
- response:
23
- status:
24
- code: 200
25
- message: OK
26
- headers:
27
- X-Powered-By:
28
- - Express
29
- Cache-Control:
30
- - max-age=0, must-revalidate, no-cache, no-store
31
- X-Content-Type-Options:
32
- - nosniff
33
- Strict-Transport-Security:
34
- - max-age=15768000
35
- X-Xss-Protection:
36
- - 1; mode=block
37
- X-Frame-Options:
38
- - DENY
39
- X-Server-Time:
40
- - '1389729840225'
41
- Expires:
42
- - Thu, 01 Jan 1970 00:00:00
43
- Content-Type:
44
- - application/json
45
- Access-Control-Allow-Origin:
46
- - "*"
47
- Access-Control-Allow-Methods:
48
- - GET, PUT, POST, DELETE
49
- Content-Length:
50
- - '757'
51
- Vary:
52
- - Accept-Encoding
53
- Date:
54
- - Tue, 14 Jan 2014 20:04:00 GMT
55
- body:
56
- encoding: UTF-8
57
- string: "{\"id\":\"526d8f19ddb279532e005259\",\"badges\":{\"votes\":0,\"viewingMemberVoted\":false,\"subscribed\":false,\"fogbugz\":\"\",\"checkItems\":0,\"checkItemsChecked\":0,\"comments\":8,\"attachments\":0,\"description\":false,\"due\":null},\"checkItemStates\":[],\"closed\":false,\"dateLastActivity\":\"2014-01-14T20:04:00.195Z\",\"desc\":\"\",\"descData\":null,\"due\":null,\"idBoard\":\"526d8e130a14a9d846001d96\",\"idChecklists\":[],\"idList\":\"526d8e130a14a9d846001d98\",\"idMembers\":[\"5195fdb5a8c01a2318004f5d\"],\"idShort\":8,\"idAttachmentCover\":null,\"manualCoverAttachment\":false,\"labels\":[],\"name\":\"My
58
- Test Card\",\"pos\":589823,\"shortUrl\":\"<Trello URL>\",\"url\":\"<Trello URL>\"}"
59
- http_version:
60
- recorded_at: Tue, 14 Jan 2014 20:03:59 GMT
61
- recorded_with: VCR 2.8.0
@@ -1,66 +0,0 @@
1
- require_relative '../../../test_helper'
2
-
3
- module Troo
4
- describe CreateBoard do
5
- let(:described_class) { CreateBoard }
6
- let(:board_name) { 'My New Board' }
7
- let(:description) { 'A very brief description...' }
8
-
9
- before do
10
- @board = Fabricate(:board, name: board_name,
11
- description: description)
12
- Persistence::Board.stubs(:for).returns(@board)
13
- end
14
-
15
- after { database_cleanup }
16
-
17
- describe '.initialize' do
18
- subject { described_class.new(board_name, description) }
19
-
20
- it 'assigns the name to an instance variable' do
21
- subject.instance_variable_get('@name').must_equal(board_name)
22
- end
23
-
24
- it 'assigns the description to an instance variable' do
25
- subject.instance_variable_get('@description')
26
- .must_equal(description)
27
- end
28
- end
29
-
30
- describe '.with' do
31
- before do
32
- VCR.insert_cassette(:create_board,
33
- decode_compressed_response: true)
34
- end
35
-
36
- after { VCR.eject_cassette }
37
-
38
- subject { described_class.with(board_name, description) }
39
-
40
- context 'when the board was created' do
41
- it 'returns the new board' do
42
- subject.must_equal(@board)
43
- end
44
- end
45
-
46
- context 'when the board was not created' do
47
- before { Trello::Board.stubs(:create).raises(Trello::Error) }
48
-
49
- it { subject.must_equal false }
50
- end
51
-
52
- context 'when the access token is invalid' do
53
- before do
54
- Trello::Board.stubs(:create)
55
- .raises(Trello::InvalidAccessToken)
56
- end
57
-
58
- subject { described_class.with(board_name, description) }
59
-
60
- it 'catches the exception and re-raises' do
61
- proc { subject }.must_raise(Troo::InvalidAccessToken)
62
- end
63
- end
64
- end
65
- end
66
- end
@@ -1,71 +0,0 @@
1
- require_relative '../../../test_helper'
2
-
3
- module Troo
4
- describe CreateCard do
5
- let(:described_class) { CreateCard }
6
- let(:list_id) { '526d8e130a14a9d846001d97' }
7
- let(:card_name) { 'My New Card' }
8
- let(:description) { 'A description to get us started.' }
9
-
10
- before do
11
- @list = Fabricate(:list)
12
- @card = Fabricate(:card, name: card_name, desc: description)
13
- Persistence::Card.stubs(:for).returns(@card)
14
- end
15
-
16
- after { database_cleanup }
17
-
18
- describe '.initialize' do
19
- subject { described_class.new(@list, card_name, description) }
20
-
21
- it 'assigns the list to an instance variable' do
22
- subject.instance_variable_get('@list').must_equal(@list)
23
- end
24
-
25
- it 'assigns the name to an instance variable' do
26
- subject.instance_variable_get('@name').must_equal(card_name)
27
- end
28
-
29
- it 'assigns the description to an instance variable' do
30
- subject.instance_variable_get('@description')
31
- .must_equal(description)
32
- end
33
- end
34
-
35
- describe '.for' do
36
- before do
37
- VCR.insert_cassette(:create_card,
38
- decode_compressed_response: true)
39
- end
40
-
41
- after { VCR.eject_cassette }
42
-
43
- subject { described_class.for(@list, card_name, description) }
44
-
45
- context 'when the card was created' do
46
- it 'returns the new card' do
47
- subject.must_equal(@card)
48
- end
49
- end
50
-
51
- context 'when the card was not created' do
52
- before { Trello::Card.stubs(:create).raises(Trello::Error) }
53
-
54
- it { subject.must_equal false }
55
- end
56
-
57
- context 'when the access token is invalid' do
58
- before do
59
- Trello::Card.stubs(:create)
60
- .raises(Trello::InvalidAccessToken)
61
- end
62
-
63
- subject { described_class.for(@list, card_name, description) }
64
-
65
- it 'catches the exception and re-raises' do
66
- proc { subject }.must_raise(Troo::InvalidAccessToken)
67
- end
68
- end
69
- end
70
- end
71
- end
@@ -1,71 +0,0 @@
1
- require_relative '../../../test_helper'
2
-
3
- module Troo
4
- describe CreateComment do
5
- let(:described_class) { CreateComment }
6
- let(:card_id) { '526d8f19ddb279532e005259' }
7
- let(:comment) { 'Some much needed feedback...' }
8
-
9
- before do
10
- @card = Fabricate(:card)
11
- @comment = Fabricate(:comment, text: comment)
12
- Persistence::Comment.stubs(:for).returns(@comment)
13
- end
14
-
15
- after { database_cleanup }
16
-
17
- describe '.initialize' do
18
- subject { described_class.new(@card, comment) }
19
-
20
- it 'assigns the card to an instance variable' do
21
- subject.instance_variable_get('@card').must_equal(@card)
22
- end
23
-
24
- it 'assigns the comment to an instance variable' do
25
- subject.instance_variable_get('@comment').must_equal(comment)
26
- end
27
- end
28
-
29
- describe '.for' do
30
- before do
31
- VCR.insert_cassette(:create_comment,
32
- decode_compressed_response: true)
33
- end
34
-
35
- after { VCR.eject_cassette }
36
-
37
- subject { described_class.for(@card, comment) }
38
-
39
- context 'when the comment was created' do
40
- it 'returns the new comment' do
41
- subject.must_equal(@comment)
42
- end
43
- end
44
-
45
- context 'when the comment was not created' do
46
- before do
47
- Trello::Card.any_instance.stubs(:add_comment)
48
- .raises(Trello::Error)
49
- end
50
-
51
- it { subject.must_equal false }
52
- end
53
-
54
- context 'when the access token is invalid' do
55
- let(:card) { stub }
56
-
57
- before do
58
- Trello::Card.stubs(:new).returns(card)
59
- card.stubs(:update_fields).returns(card)
60
- card.stubs(:add_comment).raises(Trello::InvalidAccessToken)
61
- end
62
-
63
- subject { described_class.for(@card, comment) }
64
-
65
- it 'catches the exception and re-raises' do
66
- proc { subject }.must_raise(Troo::InvalidAccessToken)
67
- end
68
- end
69
- end
70
- end
71
- end
@@ -1,65 +0,0 @@
1
- require_relative '../../../test_helper'
2
-
3
- module Troo
4
- describe CreateList do
5
- let(:described_class) { CreateList }
6
- let(:board_id) { '526d8e130a14a9d846001d96' }
7
- let(:list_name) { 'My New List' }
8
-
9
- before do
10
- @board = Fabricate(:board)
11
- @list = Fabricate(:list, name: list_name)
12
- Persistence::List.stubs(:for).returns(@list)
13
- end
14
-
15
- after { database_cleanup }
16
-
17
- describe '.initialize' do
18
- subject { described_class.new(@board, list_name) }
19
-
20
- it 'assigns the board to an instance variable' do
21
- subject.instance_variable_get('@board').must_equal(@board)
22
- end
23
-
24
- it 'assigns the name to an instance variable' do
25
- subject.instance_variable_get('@name').must_equal(list_name)
26
- end
27
- end
28
-
29
- describe '.for' do
30
- before do
31
- VCR.insert_cassette(:create_list,
32
- decode_compressed_response: true)
33
- end
34
-
35
- after { VCR.eject_cassette }
36
-
37
- subject { described_class.for(@board, list_name) }
38
-
39
- context 'when the list was created' do
40
- it 'returns the new list' do
41
- subject.must_equal(@list)
42
- end
43
- end
44
-
45
- context 'when the list was not created' do
46
- before { Trello::List.stubs(:create).raises(Trello::Error) }
47
-
48
- it { subject.must_equal false }
49
- end
50
-
51
- context 'when the access token is invalid' do
52
- before do
53
- Trello::List.stubs(:create)
54
- .raises(Trello::InvalidAccessToken)
55
- end
56
-
57
- subject { described_class.for(@board, list_name) }
58
-
59
- it 'catches the exception and re-raises' do
60
- proc { subject }.must_raise(Troo::InvalidAccessToken)
61
- end
62
- end
63
- end
64
- end
65
- end
@@ -1,54 +0,0 @@
1
- require_relative '../../../test_helper'
2
-
3
- module Troo
4
- describe MoveCard do
5
- let(:described_class) { MoveCard }
6
- let(:id) { '526d8e130a14a9d846001d98' }
7
-
8
- before do
9
- @list = Fabricate(:list, external_list_id: id)
10
- @card = Fabricate(:card)
11
- Troo::External::Card.stubs(:fetch).returns(true)
12
- end
13
-
14
- after { database_cleanup }
15
-
16
- describe '.initialize' do
17
- subject { described_class.new(@card, @list) }
18
-
19
- it 'assigns the card to an instance variable' do
20
- subject.instance_variable_get('@card').must_equal(@card)
21
- end
22
-
23
- it 'assigns the list to an instance variable' do
24
- subject.instance_variable_get('@list').must_equal(@list)
25
- end
26
- end
27
-
28
- describe '#perform' do
29
- before do
30
- VCR.insert_cassette(:move_card,
31
- decode_compressed_response: true)
32
- end
33
-
34
- after { VCR.eject_cassette }
35
-
36
- subject { described_class.with(@card, @list) }
37
-
38
- context 'when the card was moved' do
39
- it 'returns a refresh of all cards for the board' do
40
- subject.wont_equal false
41
- end
42
- end
43
-
44
- context 'when the card was not moved' do
45
- before do
46
- Trello::Card.any_instance.stubs(:move_to_list)
47
- .raises(Trello::Error)
48
- end
49
-
50
- it { subject.must_equal false }
51
- end
52
- end
53
- end
54
- end