7digital 0.0.6 → 0.0.7

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 (269) hide show
  1. data/README.rdoc +136 -136
  2. data/lib/sevendigital.rb +53 -53
  3. data/lib/sevendigital/api_operator.rb +130 -130
  4. data/lib/sevendigital/api_operator_cached.rb +41 -41
  5. data/lib/sevendigital/api_request.rb +65 -65
  6. data/lib/sevendigital/client.rb +113 -113
  7. data/lib/sevendigital/client_configuration.rb +86 -86
  8. data/lib/sevendigital/client_digestors.rb +107 -107
  9. data/lib/sevendigital/client_managers.rb +47 -47
  10. data/lib/sevendigital/digestion_tract/api_response_digestor.rb +58 -58
  11. data/lib/sevendigital/digestion_tract/artist_digestor.rb +32 -32
  12. data/lib/sevendigital/digestion_tract/basket_digestor.rb +19 -19
  13. data/lib/sevendigital/digestion_tract/basket_item_digestor.rb +26 -26
  14. data/lib/sevendigital/digestion_tract/chart_item_digestor.rb +28 -28
  15. data/lib/sevendigital/digestion_tract/digestor.rb +71 -71
  16. data/lib/sevendigital/digestion_tract/download_url_digestor.rb +20 -20
  17. data/lib/sevendigital/digestion_tract/format_digestor.rb +22 -22
  18. data/lib/sevendigital/digestion_tract/label_digestor.rb +20 -20
  19. data/lib/sevendigital/digestion_tract/locker_digestor.rb +18 -18
  20. data/lib/sevendigital/digestion_tract/locker_release_digestor.rb +20 -20
  21. data/lib/sevendigital/digestion_tract/locker_track_digestor.rb +22 -22
  22. data/lib/sevendigital/digestion_tract/oauth_access_token_digestor.rb +14 -14
  23. data/lib/sevendigital/digestion_tract/oauth_request_token_digestor.rb +14 -14
  24. data/lib/sevendigital/digestion_tract/pager_digestor.rb +24 -24
  25. data/lib/sevendigital/digestion_tract/price_digestor.rb +25 -25
  26. data/lib/sevendigital/digestion_tract/release_digestor.rb +53 -53
  27. data/lib/sevendigital/digestion_tract/tag_digestor.rb +22 -22
  28. data/lib/sevendigital/digestion_tract/track_digestor.rb +38 -38
  29. data/lib/sevendigital/digestion_tract/user_card_digestor.rb +23 -23
  30. data/lib/sevendigital/digestion_tract/user_digestor.rb +20 -20
  31. data/lib/sevendigital/management/artist_manager.rb +99 -99
  32. data/lib/sevendigital/management/basket_manager.rb +29 -29
  33. data/lib/sevendigital/management/manager.rb +12 -12
  34. data/lib/sevendigital/management/oauth_manager.rb +23 -23
  35. data/lib/sevendigital/management/release_manager.rb +56 -56
  36. data/lib/sevendigital/management/tag_manager.rb +10 -10
  37. data/lib/sevendigital/management/track_manager.rb +28 -28
  38. data/lib/sevendigital/management/user_card_manager.rb +26 -26
  39. data/lib/sevendigital/management/user_manager.rb +71 -71
  40. data/lib/sevendigital/model/api_response.rb +25 -25
  41. data/lib/sevendigital/model/artist.rb +94 -94
  42. data/lib/sevendigital/model/basket.rb +15 -15
  43. data/lib/sevendigital/model/basket_item.rb +14 -14
  44. data/lib/sevendigital/model/card.rb +11 -11
  45. data/lib/sevendigital/model/chart_item.rb +9 -9
  46. data/lib/sevendigital/model/download_url.rb +7 -7
  47. data/lib/sevendigital/model/format.rb +7 -7
  48. data/lib/sevendigital/model/label.rb +7 -7
  49. data/lib/sevendigital/model/locker.rb +4 -4
  50. data/lib/sevendigital/model/locker_release.rb +9 -9
  51. data/lib/sevendigital/model/locker_track.rb +9 -9
  52. data/lib/sevendigital/model/price.rb +9 -9
  53. data/lib/sevendigital/model/release.rb +52 -52
  54. data/lib/sevendigital/model/sevendigital_error.rb +11 -11
  55. data/lib/sevendigital/model/sevendigital_object.rb +57 -57
  56. data/lib/sevendigital/model/tag.rb +7 -7
  57. data/lib/sevendigital/model/track.rb +83 -83
  58. data/lib/sevendigital/model/user.rb +63 -63
  59. data/lib/sevendigital/pager.rb +23 -23
  60. data/lib/sevendigital/peachy_patchy.rb +9 -9
  61. data/lib/sevendigital/proxy_police.rb +27 -27
  62. data/lib/sevendigital/version.rb +5 -5
  63. data/spec/api_operator_cached_spec.rb +178 -178
  64. data/spec/api_operator_spec.rb +336 -336
  65. data/spec/api_request_spec.rb +31 -31
  66. data/spec/client_configuration_spec.rb +79 -74
  67. data/spec/client_spec.rb +162 -162
  68. data/spec/coverage/assets/0.3.9/app.js +66 -0
  69. data/spec/coverage/assets/0.3.9/fancybox/blank.gif +0 -0
  70. data/spec/coverage/assets/0.3.9/fancybox/fancy_close.png +0 -0
  71. data/spec/coverage/assets/0.3.9/fancybox/fancy_loading.png +0 -0
  72. data/spec/coverage/assets/0.3.9/fancybox/fancy_nav_left.png +0 -0
  73. data/spec/coverage/assets/0.3.9/fancybox/fancy_nav_right.png +0 -0
  74. data/spec/coverage/assets/0.3.9/fancybox/fancy_shadow_e.png +0 -0
  75. data/spec/coverage/assets/0.3.9/fancybox/fancy_shadow_n.png +0 -0
  76. data/spec/coverage/assets/0.3.9/fancybox/fancy_shadow_ne.png +0 -0
  77. data/spec/coverage/assets/0.3.9/fancybox/fancy_shadow_nw.png +0 -0
  78. data/spec/coverage/assets/0.3.9/fancybox/fancy_shadow_s.png +0 -0
  79. data/spec/coverage/assets/0.3.9/fancybox/fancy_shadow_se.png +0 -0
  80. data/spec/coverage/assets/0.3.9/fancybox/fancy_shadow_sw.png +0 -0
  81. data/spec/coverage/assets/0.3.9/fancybox/fancy_shadow_w.png +0 -0
  82. data/spec/coverage/assets/0.3.9/fancybox/fancy_title_left.png +0 -0
  83. data/spec/coverage/assets/0.3.9/fancybox/fancy_title_main.png +0 -0
  84. data/spec/coverage/assets/0.3.9/fancybox/fancy_title_over.png +0 -0
  85. data/spec/coverage/assets/0.3.9/fancybox/fancy_title_right.png +0 -0
  86. data/spec/coverage/assets/0.3.9/fancybox/fancybox-x.png +0 -0
  87. data/spec/coverage/assets/0.3.9/fancybox/fancybox-y.png +0 -0
  88. data/spec/coverage/assets/0.3.9/fancybox/fancybox.png +0 -0
  89. data/spec/coverage/assets/0.3.9/fancybox/jquery.fancybox-1.3.1.css +363 -0
  90. data/spec/coverage/assets/0.3.9/fancybox/jquery.fancybox-1.3.1.pack.js +44 -0
  91. data/spec/coverage/assets/0.3.9/favicon.png +0 -0
  92. data/spec/coverage/assets/0.3.9/jquery-1.4.2.min.js +155 -0
  93. data/spec/coverage/assets/0.3.9/jquery.dataTables.min.js +152 -0
  94. data/spec/coverage/assets/0.3.9/jquery.timeago.js +141 -0
  95. data/spec/coverage/assets/0.3.9/jquery.url.js +174 -0
  96. data/spec/coverage/assets/0.3.9/loading.gif +0 -0
  97. data/spec/coverage/assets/0.3.9/magnify.png +0 -0
  98. data/spec/coverage/assets/0.3.9/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  99. data/spec/coverage/assets/0.3.9/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  100. data/spec/coverage/assets/0.3.9/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  101. data/spec/coverage/assets/0.3.9/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  102. data/spec/coverage/assets/0.3.9/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  103. data/spec/coverage/assets/0.3.9/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  104. data/spec/coverage/assets/0.3.9/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  105. data/spec/coverage/assets/0.3.9/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  106. data/spec/coverage/assets/0.3.9/smoothness/images/ui-icons_222222_256x240.png +0 -0
  107. data/spec/coverage/assets/0.3.9/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
  108. data/spec/coverage/assets/0.3.9/smoothness/images/ui-icons_454545_256x240.png +0 -0
  109. data/spec/coverage/assets/0.3.9/smoothness/images/ui-icons_888888_256x240.png +0 -0
  110. data/spec/coverage/assets/0.3.9/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
  111. data/spec/coverage/assets/0.3.9/smoothness/jquery-ui-1.8.4.custom.css +295 -0
  112. data/spec/coverage/assets/0.3.9/stylesheet.css +341 -0
  113. data/spec/coverage/index.html +47481 -0
  114. data/spec/coverage/resultset.yml +3556 -0
  115. data/spec/data/config/sevendigital.yml +5 -5
  116. data/spec/data/configuration_env_override.yml +5 -5
  117. data/spec/data/configuration_override.yml +1 -1
  118. data/spec/digestion_tract/api_response_digestor_spec.rb +92 -92
  119. data/spec/digestion_tract/artist_digestor_spec.rb +81 -81
  120. data/spec/digestion_tract/basket_digestor_spec.rb +31 -31
  121. data/spec/digestion_tract/basket_item_digestor_spec.rb +58 -58
  122. data/spec/digestion_tract/chart_digestor_spec.rb +52 -52
  123. data/spec/digestion_tract/download_url_digestor_spec.rb +40 -40
  124. data/spec/digestion_tract/format_digestor_spec.rb +38 -38
  125. data/spec/digestion_tract/label_digestor_spec.rb +33 -33
  126. data/spec/digestion_tract/locker_digestor_spec.rb +30 -30
  127. data/spec/digestion_tract/locker_release_digestor_spec.rb +70 -70
  128. data/spec/digestion_tract/locker_track_digestor_spec.rb +56 -56
  129. data/spec/digestion_tract/oauth_access_token_digestor_spec.rb +34 -34
  130. data/spec/digestion_tract/oauth_request_token_digestor_spec.rb +34 -34
  131. data/spec/digestion_tract/pager_digestor_spec.rb +50 -50
  132. data/spec/digestion_tract/price_digestor_spec.rb +73 -73
  133. data/spec/digestion_tract/release_digestor_spec.rb +101 -101
  134. data/spec/digestion_tract/tag_digestor_spec.rb +46 -46
  135. data/spec/digestion_tract/track_digestor_spec.rb +104 -104
  136. data/spec/digestion_tract/user_card_digestor_spec.rb +58 -58
  137. data/spec/digestion_tract/user_digestor_spec.rb +44 -44
  138. data/spec/management/artist_manager_spec.rb +151 -151
  139. data/spec/management/basket_manager_spec.rb +77 -77
  140. data/spec/management/oauth_manager_spec.rb +72 -72
  141. data/spec/management/release_manager_spec.rb +200 -200
  142. data/spec/management/tag_manager_spec.rb +34 -34
  143. data/spec/management/track_manager_spec.rb +107 -107
  144. data/spec/management/user_card_manager_spec.rb +78 -78
  145. data/spec/management/user_manager_spec.rb +202 -202
  146. data/spec/model/api_response_spec.rb +48 -48
  147. data/spec/model/artist_spec.rb +154 -154
  148. data/spec/model/basket_spec.rb +62 -62
  149. data/spec/model/coverage/assets/0.3.9/app.js +66 -0
  150. data/spec/model/coverage/assets/0.3.9/fancybox/blank.gif +0 -0
  151. data/spec/model/coverage/assets/0.3.9/fancybox/fancy_close.png +0 -0
  152. data/spec/model/coverage/assets/0.3.9/fancybox/fancy_loading.png +0 -0
  153. data/spec/model/coverage/assets/0.3.9/fancybox/fancy_nav_left.png +0 -0
  154. data/spec/model/coverage/assets/0.3.9/fancybox/fancy_nav_right.png +0 -0
  155. data/spec/model/coverage/assets/0.3.9/fancybox/fancy_shadow_e.png +0 -0
  156. data/spec/model/coverage/assets/0.3.9/fancybox/fancy_shadow_n.png +0 -0
  157. data/spec/model/coverage/assets/0.3.9/fancybox/fancy_shadow_ne.png +0 -0
  158. data/spec/model/coverage/assets/0.3.9/fancybox/fancy_shadow_nw.png +0 -0
  159. data/spec/model/coverage/assets/0.3.9/fancybox/fancy_shadow_s.png +0 -0
  160. data/spec/model/coverage/assets/0.3.9/fancybox/fancy_shadow_se.png +0 -0
  161. data/spec/model/coverage/assets/0.3.9/fancybox/fancy_shadow_sw.png +0 -0
  162. data/spec/model/coverage/assets/0.3.9/fancybox/fancy_shadow_w.png +0 -0
  163. data/spec/model/coverage/assets/0.3.9/fancybox/fancy_title_left.png +0 -0
  164. data/spec/model/coverage/assets/0.3.9/fancybox/fancy_title_main.png +0 -0
  165. data/spec/model/coverage/assets/0.3.9/fancybox/fancy_title_over.png +0 -0
  166. data/spec/model/coverage/assets/0.3.9/fancybox/fancy_title_right.png +0 -0
  167. data/spec/model/coverage/assets/0.3.9/fancybox/fancybox-x.png +0 -0
  168. data/spec/model/coverage/assets/0.3.9/fancybox/fancybox-y.png +0 -0
  169. data/spec/model/coverage/assets/0.3.9/fancybox/fancybox.png +0 -0
  170. data/spec/model/coverage/assets/0.3.9/fancybox/jquery.fancybox-1.3.1.css +363 -0
  171. data/spec/model/coverage/assets/0.3.9/fancybox/jquery.fancybox-1.3.1.pack.js +44 -0
  172. data/spec/model/coverage/assets/0.3.9/favicon.png +0 -0
  173. data/spec/model/coverage/assets/0.3.9/jquery-1.4.2.min.js +155 -0
  174. data/spec/model/coverage/assets/0.3.9/jquery.dataTables.min.js +152 -0
  175. data/spec/model/coverage/assets/0.3.9/jquery.timeago.js +141 -0
  176. data/spec/model/coverage/assets/0.3.9/jquery.url.js +174 -0
  177. data/spec/model/coverage/assets/0.3.9/loading.gif +0 -0
  178. data/spec/model/coverage/assets/0.3.9/magnify.png +0 -0
  179. data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  180. data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  181. data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  182. data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  183. data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  184. data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  185. data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  186. data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  187. data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-icons_222222_256x240.png +0 -0
  188. data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
  189. data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-icons_454545_256x240.png +0 -0
  190. data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-icons_888888_256x240.png +0 -0
  191. data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
  192. data/spec/model/coverage/assets/0.3.9/smoothness/jquery-ui-1.8.4.custom.css +295 -0
  193. data/spec/model/coverage/assets/0.3.9/stylesheet.css +341 -0
  194. data/spec/model/coverage/index.html +8637 -0
  195. data/spec/model/coverage/resultset.yml +642 -0
  196. data/spec/model/release_spec.rb +122 -122
  197. data/spec/model/sevendigital_object_spec.rb +73 -73
  198. data/spec/model/track_spec.rb +144 -144
  199. data/spec/model/user_spec.rb +160 -160
  200. data/spec/pager_spec.rb +7 -7
  201. data/spec/peachy_spec_helper_patch.rb +6 -6
  202. data/spec/proxy_police_spec.rb +69 -69
  203. data/spec/sevendigital_spec.rb +51 -70
  204. data/spec/sevendigital_spec.yml +4 -4
  205. data/spec/spec_helper.rb +64 -64
  206. data/spec/test-xml/methods/artist/browse.xml +21 -21
  207. data/spec/test-xml/methods/artist/byTag/top.xml +50 -50
  208. data/spec/test-xml/methods/artist/chart.xml +30 -30
  209. data/spec/test-xml/methods/artist/details.xml +9 -9
  210. data/spec/test-xml/methods/artist/releases.xml +544 -544
  211. data/spec/test-xml/methods/artist/search.xml +18 -18
  212. data/spec/test-xml/methods/artist/similar.xml +39 -39
  213. data/spec/test-xml/methods/artist/tags.xml +11 -11
  214. data/spec/test-xml/methods/artist/toptracks.xml +279 -279
  215. data/spec/test-xml/methods/basket/additem.xml +23 -23
  216. data/spec/test-xml/methods/basket/create.xml +10 -10
  217. data/spec/test-xml/methods/basket/index.xml +23 -23
  218. data/spec/test-xml/methods/basket/removeitem.xml +10 -10
  219. data/spec/test-xml/methods/oauth/accesstoken.xml +5 -5
  220. data/spec/test-xml/methods/oauth/requesttoken.xml +5 -5
  221. data/spec/test-xml/methods/release/bydate.xml +173 -173
  222. data/spec/test-xml/methods/release/bytag/top.xml +150 -150
  223. data/spec/test-xml/methods/release/chart.xml +181 -181
  224. data/spec/test-xml/methods/release/details.xml +48 -48
  225. data/spec/test-xml/methods/release/recommend.xml +89 -89
  226. data/spec/test-xml/methods/release/search.xml +194 -194
  227. data/spec/test-xml/methods/release/tags.xml +27 -27
  228. data/spec/test-xml/methods/release/tracks.xml +28 -28
  229. data/spec/test-xml/methods/tag/index.xml +16 -16
  230. data/spec/test-xml/methods/track/chart.xml +149 -149
  231. data/spec/test-xml/methods/track/details.xml +30 -30
  232. data/spec/test-xml/methods/track/search.xml +159 -159
  233. data/spec/test-xml/methods/user/locker.xml +49 -49
  234. data/spec/test-xml/methods/user/payment/card/add.xml +7 -7
  235. data/spec/test-xml/methods/user/payment/card/index.xml +7 -7
  236. data/spec/test-xml/methods/user/purchase/basket.xml +49 -0
  237. data/spec/test-xml/methods/user/purchase/item.xml +48 -48
  238. data/spec/test-xml/methods/user/signUp.xml +5 -5
  239. data/spec/test-xml/objects/artist.xml +6 -6
  240. data/spec/test-xml/objects/artist_chart_item.xml +7 -7
  241. data/spec/test-xml/objects/artist_list.xml +22 -22
  242. data/spec/test-xml/objects/artist_list_empty.xml +4 -4
  243. data/spec/test-xml/objects/basket.xml +21 -21
  244. data/spec/test-xml/objects/basket_item.xml +11 -11
  245. data/spec/test-xml/objects/basket_item_list.xml +25 -25
  246. data/spec/test-xml/objects/basket_item_list_empty.xml +1 -1
  247. data/spec/test-xml/objects/download_url.xml +7 -7
  248. data/spec/test-xml/objects/locker.xml +47 -47
  249. data/spec/test-xml/objects/locker_release.xml +40 -40
  250. data/spec/test-xml/objects/locker_release_list.xml +87 -87
  251. data/spec/test-xml/objects/locker_release_list_empty.xml +4 -4
  252. data/spec/test-xml/objects/locker_release_one_item_list.xml +43 -43
  253. data/spec/test-xml/objects/locker_track.xml +25 -25
  254. data/spec/test-xml/objects/locker_track_list.xml +26 -26
  255. data/spec/test-xml/objects/locker_track_list_empty.xml +2 -2
  256. data/spec/test-xml/objects/oauth_access_token.xml +3 -3
  257. data/spec/test-xml/objects/oauth_request_token.xml +3 -3
  258. data/spec/test-xml/objects/price.xml +7 -7
  259. data/spec/test-xml/objects/release.xml +40 -40
  260. data/spec/test-xml/objects/release_chart_item.xml +39 -39
  261. data/spec/test-xml/objects/release_list.xml +18 -18
  262. data/spec/test-xml/objects/release_list_empty.xml +4 -4
  263. data/spec/test-xml/objects/response.xml +38 -38
  264. data/spec/test-xml/objects/tag.xml +4 -4
  265. data/spec/test-xml/objects/track.xml +33 -33
  266. data/spec/test-xml/objects/track_chart_item.xml +27 -27
  267. data/spec/test-xml/objects/user.xml +4 -4
  268. data/spec/test-xml/objects/user_payment_card.xml +5 -5
  269. metadata +193 -3
@@ -1,161 +1,161 @@
1
- require "date"
2
- require File.expand_path('../../spec_helper', __FILE__)
3
-
4
- describe "User" do
5
-
6
- before do
7
- @client = stub(Sevendigital::Client)
8
- @user_manager = mock(Sevendigital::UserManager)
9
- @user_card_manager = mock(Sevendigital::UserCardManager)
10
- @client.stub!(:user).and_return @user_manager
11
- @client.stub!(:user_payment_card).and_return @user_card_manager
12
-
13
- @user = Sevendigital::User.new(@client)
14
- end
15
-
16
- it "should not be authorised if does not have access_token" do
17
- @user.oauth_access_token = nil
18
- @user.authenticated?.should == false
19
- end
20
-
21
- it "should be authorised if does have access_token" do
22
- @user.oauth_access_token = "something"
23
- @user.authenticated?.should == true
24
- end
25
-
26
- it "should get user's locker from locker manager" do
27
- @user.oauth_access_token = OAuth::AccessToken.new(nil, "TOKEN", "SECRET")
28
- fake_locker = [Sevendigital::LockerRelease.new(@client)]
29
- expected_options = {:page => 2}
30
-
31
- @user_manager.should_receive(:get_locker) { |token, options|
32
- token.should == @user.oauth_access_token
33
- (options.keys & expected_options.keys).should == expected_options.keys
34
- fake_locker
35
- }
36
- locker = @user.get_locker(expected_options)
37
- locker.should == fake_locker
38
- end
39
-
40
- it "should get user's payment cards from user card manager" do
41
- @user.oauth_access_token = OAuth::AccessToken.new(nil, "TOKEN", "SECRET")
42
- fake_card_list = [Sevendigital::Card.new(@client)]
43
- expected_options = {:page => 2}
44
-
45
- @user_card_manager.should_receive(:get_card_list) { |token, options|
46
- token.should == @user.oauth_access_token
47
- (options.keys & expected_options.keys).should == expected_options.keys
48
- fake_card_list
49
- }
50
- cards = @user.get_cards(expected_options)
51
- cards.should == fake_card_list
52
- end
53
-
54
- it "should add payment card for user using user card manager" do
55
- @user.oauth_access_token = OAuth::AccessToken.new(nil, "TOKEN", "SECRET")
56
- card_number = "4444333322221111"
57
- card_type = "VISA"
58
- card_holder_name = "Mr John Simth"
59
- card_start_date = "200909"
60
- card_expiry_date = "201109"
61
- card_issue_number = "1"
62
- card_verification_code ="123"
63
- card_post_code = "EC2A 4HJ"
64
- card_country = "GB"
65
- fake_card = Sevendigital::Card.new(@client)
66
-
67
- @user_card_manager.should_receive(:add_card).with(
68
- card_number, card_type, card_holder_name, card_start_date, card_expiry_date, card_issue_number,
69
- card_verification_code, card_post_code, card_country, @user.oauth_access_token, {}).and_return(fake_card)
70
- card = @user.add_card(card_number, card_type, card_holder_name, card_start_date, card_expiry_date,
71
- card_issue_number, card_verification_code, card_post_code, card_country)
72
- card.should == fake_card
73
- end
74
-
75
- it "should select a default payment card for user using user card manager" do
76
- @user.oauth_access_token = OAuth::AccessToken.new(nil, "TOKEN", "SECRET")
77
- card_id = 123456
78
-
79
- @user_card_manager.should_receive(:select_card).with(
80
- card_id, @user.oauth_access_token, {}).and_return(true)
81
- @user.select_card(card_id).should == true
82
- end
83
-
84
-
85
- it "should purchase a track using user manger" do
86
- @user.oauth_access_token = OAuth::AccessToken.new(nil, "TOKEN", "SECRET")
87
- a_release_id = 123
88
- a_track_id = 456
89
- a_price = 1.29
90
- fake_locker = [Sevendigital::LockerRelease.new(@client)]
91
- expected_options = {:page => 2}
92
-
93
- @user_manager.should_receive(:purchase_item) { |release_id, track_id, price, token, options|
94
- token.should == @user.oauth_access_token
95
- release_id.should == a_release_id
96
- track_id.should == a_track_id
97
- price.should == a_price
98
- (options.keys & expected_options.keys).should == expected_options.keys
99
- fake_locker
100
- }
101
- purchase_locker = @user.purchase_item!(a_release_id, a_track_id, a_price, expected_options)
102
- purchase_locker.should == fake_locker
103
- end
104
-
105
- it "should purchase a basket using user manger" do
106
- @user.oauth_access_token = OAuth::AccessToken.new(nil, "TOKEN", "SECRET")
107
- a_basket_id = 123
108
- fake_locker = [Sevendigital::LockerRelease.new(@client)]
109
- expected_options = {:page => 2}
110
-
111
- @user_manager.should_receive(:purchase_basket) { |basket_id, token, options|
112
- token.should == @user.oauth_access_token
113
- basket_id.should == a_basket_id
114
- (options.keys & expected_options.keys).should == expected_options.keys
115
- fake_locker
116
- }
117
- purchase_locker = @user.purchase_basket!(a_basket_id, expected_options)
118
- purchase_locker.should == fake_locker
119
- end
120
-
121
- it "should get stream track url from user manager" do
122
- @user.oauth_access_token = OAuth::AccessToken.new(nil, "TOKEN", "SECRET")
123
- a_track_id = 456
124
- a_release_id = 123
125
- a_stream_track_url = "http://whatever"
126
- expected_options = {:page => 2}
127
-
128
- @user_manager.should_receive(:get_stream_track_url) { |release_id, track_id, token, options|
129
- token.should == @user.oauth_access_token
130
- track_id.should == a_track_id
131
- release_id.should == a_release_id
132
- (options.keys & expected_options.keys).should == expected_options.keys
133
- a_stream_track_url
134
- }
135
- @user.stream_track_url(a_release_id, a_track_id, expected_options).should == a_stream_track_url
136
- end
137
-
138
- it "should not get a stream tack url but raise Sevendigital::Error if user is not authenticated" do
139
- running {@user.get_locker}.should raise_error(Sevendigital::SevendigitalError)
140
- end
141
-
142
- it "should get an add card url from user manager" do
143
- @user.oauth_access_token = OAuth::AccessToken.new(nil, "TOKEN", "SECRET")
144
- a_stream_track_url = "http://whatever"
145
- a_return_url = "http://example.com"
146
- expected_options = {:page => 2}
147
-
148
- @user_manager.should_receive(:get_add_card_url) { |return_url, token, options|
149
- return_url.should == a_return_url
150
- token.should == @user.oauth_access_token
151
- (options.keys & expected_options.keys).should == expected_options.keys
152
- a_stream_track_url
153
- }
154
- @user.add_card_url(a_return_url, expected_options).should == a_stream_track_url
155
- end
156
-
157
- it "should not get a stream tack url but raise Sevendigital::Error if user is not authenticated" do
158
- running {@user.get_locker}.should raise_error(Sevendigital::SevendigitalError)
159
- end
160
-
1
+ require "date"
2
+ require File.expand_path('../../spec_helper', __FILE__)
3
+
4
+ describe "User" do
5
+
6
+ before do
7
+ @client = stub(Sevendigital::Client)
8
+ @user_manager = mock(Sevendigital::UserManager)
9
+ @user_card_manager = mock(Sevendigital::UserCardManager)
10
+ @client.stub!(:user).and_return @user_manager
11
+ @client.stub!(:user_payment_card).and_return @user_card_manager
12
+
13
+ @user = Sevendigital::User.new(@client)
14
+ end
15
+
16
+ it "should not be authorised if does not have access_token" do
17
+ @user.oauth_access_token = nil
18
+ @user.authenticated?.should == false
19
+ end
20
+
21
+ it "should be authorised if does have access_token" do
22
+ @user.oauth_access_token = "something"
23
+ @user.authenticated?.should == true
24
+ end
25
+
26
+ it "should get user's locker from locker manager" do
27
+ @user.oauth_access_token = OAuth::AccessToken.new(nil, "TOKEN", "SECRET")
28
+ fake_locker = [Sevendigital::LockerRelease.new(@client)]
29
+ expected_options = {:page => 2}
30
+
31
+ @user_manager.should_receive(:get_locker) { |token, options|
32
+ token.should == @user.oauth_access_token
33
+ (options.keys & expected_options.keys).should == expected_options.keys
34
+ fake_locker
35
+ }
36
+ locker = @user.get_locker(expected_options)
37
+ locker.should == fake_locker
38
+ end
39
+
40
+ it "should get user's payment cards from user card manager" do
41
+ @user.oauth_access_token = OAuth::AccessToken.new(nil, "TOKEN", "SECRET")
42
+ fake_card_list = [Sevendigital::Card.new(@client)]
43
+ expected_options = {:page => 2}
44
+
45
+ @user_card_manager.should_receive(:get_card_list) { |token, options|
46
+ token.should == @user.oauth_access_token
47
+ (options.keys & expected_options.keys).should == expected_options.keys
48
+ fake_card_list
49
+ }
50
+ cards = @user.get_cards(expected_options)
51
+ cards.should == fake_card_list
52
+ end
53
+
54
+ it "should add payment card for user using user card manager" do
55
+ @user.oauth_access_token = OAuth::AccessToken.new(nil, "TOKEN", "SECRET")
56
+ card_number = "4444333322221111"
57
+ card_type = "VISA"
58
+ card_holder_name = "Mr John Simth"
59
+ card_start_date = "200909"
60
+ card_expiry_date = "201109"
61
+ card_issue_number = "1"
62
+ card_verification_code ="123"
63
+ card_post_code = "EC2A 4HJ"
64
+ card_country = "GB"
65
+ fake_card = Sevendigital::Card.new(@client)
66
+
67
+ @user_card_manager.should_receive(:add_card).with(
68
+ card_number, card_type, card_holder_name, card_start_date, card_expiry_date, card_issue_number,
69
+ card_verification_code, card_post_code, card_country, @user.oauth_access_token, {}).and_return(fake_card)
70
+ card = @user.add_card(card_number, card_type, card_holder_name, card_start_date, card_expiry_date,
71
+ card_issue_number, card_verification_code, card_post_code, card_country)
72
+ card.should == fake_card
73
+ end
74
+
75
+ it "should select a default payment card for user using user card manager" do
76
+ @user.oauth_access_token = OAuth::AccessToken.new(nil, "TOKEN", "SECRET")
77
+ card_id = 123456
78
+
79
+ @user_card_manager.should_receive(:select_card).with(
80
+ card_id, @user.oauth_access_token, {}).and_return(true)
81
+ @user.select_card(card_id).should == true
82
+ end
83
+
84
+
85
+ it "should purchase a track using user manger" do
86
+ @user.oauth_access_token = OAuth::AccessToken.new(nil, "TOKEN", "SECRET")
87
+ a_release_id = 123
88
+ a_track_id = 456
89
+ a_price = 1.29
90
+ fake_locker = [Sevendigital::LockerRelease.new(@client)]
91
+ expected_options = {:page => 2}
92
+
93
+ @user_manager.should_receive(:purchase_item) { |release_id, track_id, price, token, options|
94
+ token.should == @user.oauth_access_token
95
+ release_id.should == a_release_id
96
+ track_id.should == a_track_id
97
+ price.should == a_price
98
+ (options.keys & expected_options.keys).should == expected_options.keys
99
+ fake_locker
100
+ }
101
+ purchase_locker = @user.purchase_item!(a_release_id, a_track_id, a_price, expected_options)
102
+ purchase_locker.should == fake_locker
103
+ end
104
+
105
+ it "should purchase a basket using user manger" do
106
+ @user.oauth_access_token = OAuth::AccessToken.new(nil, "TOKEN", "SECRET")
107
+ a_basket_id = 123
108
+ fake_locker = [Sevendigital::LockerRelease.new(@client)]
109
+ expected_options = {:page => 2}
110
+
111
+ @user_manager.should_receive(:purchase_basket) { |basket_id, token, options|
112
+ token.should == @user.oauth_access_token
113
+ basket_id.should == a_basket_id
114
+ (options.keys & expected_options.keys).should == expected_options.keys
115
+ fake_locker
116
+ }
117
+ purchase_locker = @user.purchase_basket!(a_basket_id, expected_options)
118
+ purchase_locker.should == fake_locker
119
+ end
120
+
121
+ it "should get stream track url from user manager" do
122
+ @user.oauth_access_token = OAuth::AccessToken.new(nil, "TOKEN", "SECRET")
123
+ a_track_id = 456
124
+ a_release_id = 123
125
+ a_stream_track_url = "http://whatever"
126
+ expected_options = {:page => 2}
127
+
128
+ @user_manager.should_receive(:get_stream_track_url) { |release_id, track_id, token, options|
129
+ token.should == @user.oauth_access_token
130
+ track_id.should == a_track_id
131
+ release_id.should == a_release_id
132
+ (options.keys & expected_options.keys).should == expected_options.keys
133
+ a_stream_track_url
134
+ }
135
+ @user.stream_track_url(a_release_id, a_track_id, expected_options).should == a_stream_track_url
136
+ end
137
+
138
+ it "should not get a stream tack url but raise Sevendigital::Error if user is not authenticated" do
139
+ running {@user.get_locker}.should raise_error(Sevendigital::SevendigitalError)
140
+ end
141
+
142
+ it "should get an add card url from user manager" do
143
+ @user.oauth_access_token = OAuth::AccessToken.new(nil, "TOKEN", "SECRET")
144
+ a_stream_track_url = "http://whatever"
145
+ a_return_url = "http://example.com"
146
+ expected_options = {:page => 2}
147
+
148
+ @user_manager.should_receive(:get_add_card_url) { |return_url, token, options|
149
+ return_url.should == a_return_url
150
+ token.should == @user.oauth_access_token
151
+ (options.keys & expected_options.keys).should == expected_options.keys
152
+ a_stream_track_url
153
+ }
154
+ @user.add_card_url(a_return_url, expected_options).should == a_stream_track_url
155
+ end
156
+
157
+ it "should not get a stream tack url but raise Sevendigital::Error if user is not authenticated" do
158
+ running {@user.get_locker}.should raise_error(Sevendigital::SevendigitalError)
159
+ end
160
+
161
161
  end
data/spec/pager_spec.rb CHANGED
@@ -1,7 +1,7 @@
1
- require "spec_helper"
2
-
3
- describe "Pager" do
4
-
5
- #it "should paginate list"
6
-
7
- end
1
+ require "spec_helper"
2
+
3
+ describe "Pager" do
4
+
5
+ #it "should paginate list"
6
+
7
+ end
@@ -1,7 +1,7 @@
1
- module Peachy
2
- class Proxy
3
- def ==(other_proxy)
4
- (to_s == other_proxy.to_s)
5
- end
6
- end
1
+ module Peachy
2
+ class Proxy
3
+ def ==(other_proxy)
4
+ (to_s == other_proxy.to_s)
5
+ end
6
+ end
7
7
  end
@@ -1,70 +1,70 @@
1
- # encoding: UTF-8
2
- require 'date'
3
- require "spec_helper"
4
-
5
- describe "Proxy Police" do
6
-
7
- it "should create a Peachy proxy from xml string with root element with given name" do
8
-
9
- xml = <<XML
10
- <rootElement id="123">
11
- <subElement>expected value</subElement>
12
- </rootElement>
13
- XML
14
-
15
- proxy = Sevendigital::ProxyPolice.create_release_proxy(xml, :root_element)
16
- proxy.kind_of?(Peachy::Proxy).should == true
17
- proxy.sub_element.value.should == "expected value"
18
- end
19
-
20
- it "should create a Peachy proxy from root of the xml string if no element name given" do
21
-
22
- xml = <<XML
23
- <rootElement id="123">
24
- <subElement>expected value</subElement>
25
- </rootElement>
26
- XML
27
-
28
- proxy = Sevendigital::ProxyPolice.create_release_proxy(xml, nil)
29
- proxy.kind_of?(Peachy::Proxy).should == true
30
- proxy.root_element.sub_element.value.should == "expected value"
31
-
32
- end
33
-
34
- it "should not create a Peachy proxy from xml string without root element with given name" do
35
-
36
- xml = <<XML
37
- <rootElement id="123">
38
- <subElement>expected value</subElement>
39
- </rootElement>
40
- XML
41
-
42
- proxy = Sevendigital::ProxyPolice.create_release_proxy(xml, :different_element)
43
- proxy.should == nil
44
-
45
- end
46
-
47
- it "should just return the input if passed in Peachy proxy " do
48
-
49
- xml = <<XML
50
- <rootElement id="123">
51
- <subElement>expected value</subElement>
52
- </rootElement>
53
- XML
54
- proxy = Peachy::Proxy.new(xml)
55
- checked_proxy = Sevendigital::ProxyPolice.ensure_is_proxy(proxy, nil)
56
- checked_proxy.should == proxy
57
-
58
- end
59
-
60
- it "should just return the input if passed in Peachy SimpleContent " do
61
-
62
- xml = "<element/>"
63
- proxy = Peachy::SimpleContent.new(xml)
64
- checked_proxy = Sevendigital::ProxyPolice.ensure_is_proxy(proxy, nil)
65
- checked_proxy.should == proxy
66
-
67
- end
68
-
69
-
1
+ # encoding: UTF-8
2
+ require 'date'
3
+ require "spec_helper"
4
+
5
+ describe "Proxy Police" do
6
+
7
+ it "should create a Peachy proxy from xml string with root element with given name" do
8
+
9
+ xml = <<XML
10
+ <rootElement id="123">
11
+ <subElement>expected value</subElement>
12
+ </rootElement>
13
+ XML
14
+
15
+ proxy = Sevendigital::ProxyPolice.create_release_proxy(xml, :root_element)
16
+ proxy.kind_of?(Peachy::Proxy).should == true
17
+ proxy.sub_element.value.should == "expected value"
18
+ end
19
+
20
+ it "should create a Peachy proxy from root of the xml string if no element name given" do
21
+
22
+ xml = <<XML
23
+ <rootElement id="123">
24
+ <subElement>expected value</subElement>
25
+ </rootElement>
26
+ XML
27
+
28
+ proxy = Sevendigital::ProxyPolice.create_release_proxy(xml, nil)
29
+ proxy.kind_of?(Peachy::Proxy).should == true
30
+ proxy.root_element.sub_element.value.should == "expected value"
31
+
32
+ end
33
+
34
+ it "should not create a Peachy proxy from xml string without root element with given name" do
35
+
36
+ xml = <<XML
37
+ <rootElement id="123">
38
+ <subElement>expected value</subElement>
39
+ </rootElement>
40
+ XML
41
+
42
+ proxy = Sevendigital::ProxyPolice.create_release_proxy(xml, :different_element)
43
+ proxy.should == nil
44
+
45
+ end
46
+
47
+ it "should just return the input if passed in Peachy proxy " do
48
+
49
+ xml = <<XML
50
+ <rootElement id="123">
51
+ <subElement>expected value</subElement>
52
+ </rootElement>
53
+ XML
54
+ proxy = Peachy::Proxy.new(xml)
55
+ checked_proxy = Sevendigital::ProxyPolice.ensure_is_proxy(proxy, nil)
56
+ checked_proxy.should == proxy
57
+
58
+ end
59
+
60
+ it "should just return the input if passed in Peachy SimpleContent " do
61
+
62
+ xml = "<element/>"
63
+ proxy = Peachy::SimpleContent.new(xml)
64
+ checked_proxy = Sevendigital::ProxyPolice.ensure_is_proxy(proxy, nil)
65
+ checked_proxy.should == proxy
66
+
67
+ end
68
+
69
+
70
70
  end