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,37 +0,0 @@
1
- require_relative '../../../../test_helper'
2
-
3
- module Troo
4
- module Commands
5
- module Default
6
- describe Card do
7
- let(:described_class) { Card }
8
- let(:id) { '1' }
9
-
10
- before do
11
- @card = Fabricate.build(:card)
12
- Retrieval::Card.stubs(:retrieve).returns(resource)
13
- end
14
-
15
- describe '.dispatch' do
16
- subject { described_class.dispatch(id) }
17
-
18
- context 'when the resource exists' do
19
- let(:resource) { @card }
20
-
21
- it 'sets the default and returns a polite message' do
22
- subject.must_match(/set as default/)
23
- end
24
- end
25
-
26
- context 'when the resource does not exist' do
27
- let(:resource) {}
28
-
29
- it 'returns a polite message' do
30
- subject.must_match(/cannot be found/)
31
- end
32
- end
33
- end
34
- end
35
- end
36
- end
37
- end
@@ -1,37 +0,0 @@
1
- require_relative '../../../../test_helper'
2
-
3
- module Troo
4
- module Commands
5
- module Default
6
- describe List do
7
- let(:described_class) { List }
8
- let(:id) { '1' }
9
-
10
- before do
11
- @list = Fabricate.build(:list)
12
- Retrieval::List.stubs(:retrieve).returns(resource)
13
- end
14
-
15
- describe '.dispatch' do
16
- subject { described_class.dispatch(id) }
17
-
18
- context 'when the resource exists' do
19
- let(:resource) { @list }
20
-
21
- it 'sets the default and returns a polite message' do
22
- subject.must_match(/set as default/)
23
- end
24
- end
25
-
26
- context 'when the resource does not exist' do
27
- let(:resource) {}
28
-
29
- it 'returns a polite message' do
30
- subject.must_match(/cannot be found/)
31
- end
32
- end
33
- end
34
- end
35
- end
36
- end
37
- end
@@ -1,20 +0,0 @@
1
- require_relative '../../../../test_helper'
2
-
3
- module Troo
4
- module Commands
5
- module Default
6
- describe Resource do
7
- let(:described_class) { Resource }
8
- let(:id) {}
9
-
10
- describe '#initialize' do
11
- subject { described_class.new(id) }
12
-
13
- it 'assigns the id to an instance variable' do
14
- subject.instance_variable_get('@id').must_equal(id)
15
- end
16
- end
17
- end
18
- end
19
- end
20
- end
@@ -1,39 +0,0 @@
1
- require_relative '../../../../test_helper'
2
-
3
- module Troo
4
- module Commands
5
- module Refresh
6
- describe All do
7
- let(:described_class) { All }
8
-
9
- before do
10
- @board = Fabricate.build(:board)
11
- @list = Fabricate.build(:list)
12
- @card = Fabricate.build(:card)
13
-
14
- External::Board.stubs(:fetch).returns([@board])
15
- External::List.stubs(:fetch).returns([@list])
16
- External::Card.stubs(:fetch).returns([@card])
17
- External::Comment.stubs(:fetch).returns([])
18
- External::Member.stubs(:fetch).returns([])
19
- end
20
-
21
- describe '.dispatch' do
22
- subject { described_class.dispatch }
23
-
24
- context 'when all the resources are refreshed' do
25
- it 'returns a polite message' do
26
- subject.must_match(/All local data refreshed/)
27
- end
28
- end
29
-
30
- context 'when all the resources are not refreshed' do
31
- it 'returns a polite message' do
32
- skip('Not implemented yet.')
33
- end
34
- end
35
- end
36
- end
37
- end
38
- end
39
- end
@@ -1,62 +0,0 @@
1
- require_relative '../../../../test_helper'
2
-
3
- module Troo
4
- module Commands
5
- module Refresh
6
- describe Board do
7
- let(:described_class) { Board }
8
- let(:id) { '1' }
9
- let(:resource) {}
10
- let(:retrieved) {}
11
-
12
- before do
13
- @board = Fabricate.build(:board)
14
- Retrieval::Board.stubs(:retrieve).returns(resource)
15
- External::Board.stubs(:fetch).returns(retrieved)
16
- end
17
-
18
- after { database_cleanup }
19
-
20
- describe '.dispatch' do
21
- subject { described_class.dispatch(id) }
22
-
23
- context 'when the resource exists' do
24
- let(:resource) { @board }
25
- let(:retrieved) { [@board] }
26
-
27
- context 'and the resource is refreshed' do
28
- it 'returns a polite message' do
29
- subject.must_match(/refreshed/)
30
- end
31
- end
32
-
33
- context 'and multiple resources are refreshed' do
34
- let(:retrieved) { [@board, @board] }
35
-
36
- it 'returns a polite message' do
37
- subject.must_match(/Multiple/)
38
- end
39
- end
40
- end
41
-
42
- context 'when the resource does not exist' do
43
- let(:resource) {}
44
-
45
- it 'returns a polite message' do
46
- subject.must_match(/Board cannot be found/)
47
- end
48
- end
49
-
50
- context 'and the default resource does not exist' do
51
- let(:id) {}
52
- let(:resource) {}
53
-
54
- it 'returns a polite message' do
55
- subject.must_match(/Default board cannot be found/)
56
- end
57
- end
58
- end
59
- end
60
- end
61
- end
62
- end
@@ -1,62 +0,0 @@
1
- require_relative '../../../../test_helper'
2
-
3
- module Troo
4
- module Commands
5
- module Refresh
6
- describe Card do
7
- let(:described_class) { Card }
8
- let(:id) { '1' }
9
- let(:resource) {}
10
- let(:retrieved) {}
11
-
12
- before do
13
- @card = Fabricate.build(:card)
14
- Retrieval::Card.stubs(:retrieve).returns(resource)
15
- External::Card.stubs(:fetch).returns(retrieved)
16
- end
17
-
18
- after { database_cleanup }
19
-
20
- describe '.dispatch' do
21
- subject { described_class.dispatch(id) }
22
-
23
- context 'when the resource exists' do
24
- let(:resource) { @card }
25
- let(:retrieved) { [@card] }
26
-
27
- context 'and the resource is refreshed' do
28
- it 'returns a polite message' do
29
- subject.must_match(/refreshed/)
30
- end
31
- end
32
-
33
- context 'and multiple resources are refreshed' do
34
- let(:retrieved) { [@card, @card] }
35
-
36
- it 'returns a polite message' do
37
- subject.must_match(/Multiple/)
38
- end
39
- end
40
- end
41
-
42
- context 'when the resource does not exist' do
43
- let(:resource) {}
44
-
45
- it 'returns a polite message' do
46
- subject.must_match(/Card cannot be found/)
47
- end
48
- end
49
-
50
- context 'and the default resource does not exist' do
51
- let(:id) {}
52
- let(:resource) {}
53
-
54
- it 'returns a polite message' do
55
- subject.must_match(/Default card cannot be found/)
56
- end
57
- end
58
- end
59
- end
60
- end
61
- end
62
- end
@@ -1,62 +0,0 @@
1
- require_relative '../../../../test_helper'
2
-
3
- module Troo
4
- module Commands
5
- module Refresh
6
- describe List do
7
- let(:described_class) { List }
8
- let(:id) { '1' }
9
- let(:resource) {}
10
- let(:retrieved) {}
11
-
12
- before do
13
- @list = Fabricate.build(:list)
14
- Retrieval::List.stubs(:retrieve).returns(resource)
15
- External::List.stubs(:fetch).returns(retrieved)
16
- end
17
-
18
- after { database_cleanup }
19
-
20
- describe '.dispatch' do
21
- subject { described_class.dispatch(id) }
22
-
23
- context 'when the resource exists' do
24
- let(:resource) { @list }
25
- let(:retrieved) { [@list] }
26
-
27
- context 'and the resource is refreshed' do
28
- it 'returns a polite message' do
29
- subject.must_match(/refreshed/)
30
- end
31
- end
32
-
33
- context 'and multiple resources are refreshed' do
34
- let(:retrieved) { [@list, @list] }
35
-
36
- it 'returns a polite message' do
37
- subject.must_match(/Multiple/)
38
- end
39
- end
40
- end
41
-
42
- context 'when the resource does not exist' do
43
- let(:resource) {}
44
-
45
- it 'returns a polite message' do
46
- subject.must_match(/List cannot be found/)
47
- end
48
- end
49
-
50
- context 'and the default resource does not exist' do
51
- let(:id) {}
52
- let(:resource) {}
53
-
54
- it 'returns a polite message' do
55
- subject.must_match(/Default list cannot be found/)
56
- end
57
- end
58
- end
59
- end
60
- end
61
- end
62
- end
@@ -1,20 +0,0 @@
1
- require_relative '../../../../test_helper'
2
-
3
- module Troo
4
- module Commands
5
- module Refresh
6
- describe Resource do
7
- let(:described_class) { Resource }
8
- let(:id) {}
9
-
10
- describe '#initialize' do
11
- subject { described_class.new(id) }
12
-
13
- it 'assigns the id to an instance variable' do
14
- subject.instance_variable_get('@id').must_equal(id)
15
- end
16
- end
17
- end
18
- end
19
- end
20
- end
@@ -1,65 +0,0 @@
1
- require_relative '../../../../test_helper'
2
- require 'thor'
3
-
4
- module Troo
5
- module Commands
6
- module Show
7
- describe Board do
8
- let(:described_class) { Board }
9
- let(:type) { :board }
10
- let(:id) { '1' }
11
- let(:default) { false }
12
- let(:resource) {}
13
- let(:presenter) { stub }
14
-
15
- before do
16
- @board = Fabricate.build(:board, default: default)
17
- Retrieval::Board.stubs(:retrieve).returns(resource)
18
- Presenters::Board.stubs(:new).returns(presenter)
19
- presenter.stubs(:show).returns(@board.name)
20
- end
21
-
22
- after { database_cleanup }
23
-
24
- describe '.dispatch' do
25
- subject { described_class.dispatch(type, id) }
26
-
27
- context 'when a resource ID is provided' do
28
- context 'and the resource exists' do
29
- let(:resource) { @board }
30
-
31
- it 'presents the board' do
32
- subject.must_match(/#{@board.name}/)
33
- end
34
- end
35
-
36
- context 'but the resource does not exist' do
37
- it 'returns a polite message' do
38
- subject.must_match(/Board cannot be found/)
39
- end
40
- end
41
- end
42
-
43
- context 'when a resource ID is not provided' do
44
- let(:id) {}
45
-
46
- context 'and a default resource is set' do
47
- let(:default) { true }
48
- let(:resource) { @board }
49
-
50
- it 'presents the board' do
51
- subject.must_match(/#{@board.name}/)
52
- end
53
- end
54
-
55
- context 'and a default resource is not set' do
56
- it 'returns a polite message' do
57
- subject.must_match(/to set a default board first/)
58
- end
59
- end
60
- end
61
- end
62
- end
63
- end
64
- end
65
- end
@@ -1,36 +0,0 @@
1
- require_relative '../../../../test_helper'
2
-
3
- module Troo
4
- module Commands
5
- module Show
6
- describe Boards do
7
- let(:described_class) { Boards }
8
- let(:resources) { [] }
9
-
10
- before do
11
- @board = Fabricate.build(:board)
12
- Retrieval::Board.stubs(:all).returns(resources)
13
- Presenters::Board.stubs(:all).returns(@board.name)
14
- end
15
-
16
- describe '.dispatch' do
17
- subject { described_class.dispatch }
18
-
19
- context 'when boards exist' do
20
- let(:resources) { [@board] }
21
-
22
- it 'presents the boards' do
23
- subject.must_match(/#{@board.name}/)
24
- end
25
- end
26
-
27
- context 'when no boards exist' do
28
- it 'returns a polite message' do
29
- subject.must_match(/Boards cannot be found/)
30
- end
31
- end
32
- end
33
- end
34
- end
35
- end
36
- end