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,49 +1,49 @@
1
- require File.expand_path('../../spec_helper', __FILE__)
2
- require 'time'
3
-
4
- describe "ApiResponse" do
5
-
6
- it "should be ok if error code is 0 and content is not empty" do
7
-
8
- response = Sevendigital::ApiResponse.new
9
- response.error_code = 0
10
- response.content = '<xml></xml>'
11
- response.ok?.should == true
12
-
13
- end
14
-
15
- it "should not be ok if error code is not 0" do
16
-
17
- response = Sevendigital::ApiResponse.new
18
- response.error_code = 5
19
- response.content = '<xml></xml>'
20
- response.ok?.should == false
21
-
22
- end
23
-
24
- it "should not be ok if response content is nil" do
25
-
26
- response = Sevendigital::ApiResponse.new
27
- response.error_code = 0
28
- response.ok?.should == false
29
-
30
- end
31
-
32
- it "should be serializable" do
33
- original_response = Sevendigital::ApiResponseDigestor.new(@client).from_xml\
34
- ("<response status='ok'><testElement id='123'>value</testElement></response>")
35
- original_response.error_code = 99
36
- original_response.headers = {"header" => "value"}
37
-
38
-
39
- tmp = Marshal.dump(original_response)
40
- restored_response = Marshal.load(tmp)
41
-
42
- restored_response.error_code.should == original_response.error_code
43
- restored_response.content.to_s.should == original_response.content.to_s
44
- restored_response.content.test_element.value.should == "value"
45
- restored_response.headers.should == original_response.headers
46
-
47
- end
48
-
1
+ require File.expand_path('../../spec_helper', __FILE__)
2
+ require 'time'
3
+
4
+ describe "ApiResponse" do
5
+
6
+ it "should be ok if error code is 0 and content is not empty" do
7
+
8
+ response = Sevendigital::ApiResponse.new
9
+ response.error_code = 0
10
+ response.content = '<xml></xml>'
11
+ response.ok?.should == true
12
+
13
+ end
14
+
15
+ it "should not be ok if error code is not 0" do
16
+
17
+ response = Sevendigital::ApiResponse.new
18
+ response.error_code = 5
19
+ response.content = '<xml></xml>'
20
+ response.ok?.should == false
21
+
22
+ end
23
+
24
+ it "should not be ok if response content is nil" do
25
+
26
+ response = Sevendigital::ApiResponse.new
27
+ response.error_code = 0
28
+ response.ok?.should == false
29
+
30
+ end
31
+
32
+ it "should be serializable" do
33
+ original_response = Sevendigital::ApiResponseDigestor.new(@client).from_xml\
34
+ ("<response status='ok'><testElement id='123'>value</testElement></response>")
35
+ original_response.error_code = 99
36
+ original_response.headers = {"header" => "value"}
37
+
38
+
39
+ tmp = Marshal.dump(original_response)
40
+ restored_response = Marshal.load(tmp)
41
+
42
+ restored_response.error_code.should == original_response.error_code
43
+ restored_response.content.to_s.should == original_response.content.to_s
44
+ restored_response.content.test_element.value.should == "value"
45
+ restored_response.headers.should == original_response.headers
46
+
47
+ end
48
+
49
49
  end
@@ -1,155 +1,155 @@
1
- require "date"
2
- require File.expand_path('../../spec_helper', __FILE__)
3
-
4
- describe "Artist" do
5
-
6
- before do
7
- @client = stub(Sevendigital::Client)
8
- @artist_manager = mock(Sevendigital::ArtistManager)
9
- @client.stub!(:artist).and_return @artist_manager
10
-
11
- @artist = Sevendigital::Artist.new(@client)
12
- @artist.id = 1234
13
- end
14
-
15
- it "get_details should get artist's basic details from manager" do
16
- expected_options = {:page => 2}
17
- fresh_artist = fake_artist_with_details
18
-
19
- @artist_manager.should_receive(:get_details) { |artist_id, options|
20
- artist_id.should == @artist.id
21
- (options.keys & expected_options.keys).should == expected_options.keys
22
- fresh_artist
23
- }
24
- @artist.get_details(expected_options)
25
-
26
- @artist.sort_name.should == fresh_artist.sort_name
27
- @artist.image.should == fresh_artist.image
28
- @artist.url.should == fresh_artist.url
29
-
30
- end
31
-
32
- it "get_releases should get releases from manager" do
33
- expected_options = {:page => 2}
34
-
35
- @artist_manager.should_receive(:get_releases) { |artist_id, options|
36
- artist_id.should == @artist.id
37
- (options.keys & expected_options.keys).should == expected_options.keys
38
- fake_release_list
39
- }
40
- @artist.get_releases(expected_options)
41
-
42
- end
43
-
44
- it "get_top_tracks should get tracks from manager" do
45
- expected_options = {:page => 2}
46
-
47
- @artist_manager.should_receive(:get_top_tracks) { |artist_id, options|
48
- artist_id.should == @artist.id
49
- (options.keys & expected_options.keys).should == expected_options.keys
50
- fake_track_list
51
- }
52
- @artist.get_top_tracks(expected_options)
53
-
54
- end
55
-
56
- it "get_similar should get similar artists from manager" do
57
- expected_options = {:page => 2}
58
-
59
- @artist_manager.should_receive(:get_similar) { |artist_id, options|
60
- artist_id.should == @artist.id
61
- (options.keys & expected_options.keys).should == expected_options.keys
62
- fake_artist_list
63
- }
64
- @artist.get_similar(expected_options)
65
-
66
- end
67
-
68
- it "get_tags should get tags from manager" do
69
- expected_options = {:page => 2}
70
-
71
- @artist_manager.should_receive(:get_tags) { |artist_id, options|
72
- artist_id.should == @artist.id
73
- (options.keys & expected_options.keys).should == expected_options.keys
74
- []
75
- }
76
- @artist.get_tags(expected_options)
77
-
78
- end
79
-
80
-
81
- it "should be a various artist if name contains various" do
82
-
83
- @artist.name = "various"
84
- @artist.various?.should == true
85
-
86
- end
87
-
88
- it "should be a various artist if appears as contains various" do
89
-
90
- @artist.name = "mr"
91
- @artist.appears_as = "mr various"
92
- @artist.various?.should == true
93
-
94
- end
95
-
96
- it "should be a various artist if resembles various artist" do
97
-
98
- @artist.name = "v.a."
99
- @artist.various?.should == true
100
- @artist.name = "vario"
101
- @artist.various?.should == true
102
- @artist.name = "vaious"
103
- @artist.various?.should == true
104
- @artist.name = "varios"
105
- @artist.various?.should == true
106
- @artist.name = "aaaa"
107
- @artist.various?.should == false
108
- @artist.name = "vaious"
109
- @artist.various?.should == true
110
- @artist.name = "varoius"
111
- @artist.various?.should == true
112
- @artist.name = "variuos"
113
- @artist.various?.should == true
114
-
115
- end
116
-
117
- it "should not be a various artist if it doesn't resemble various artist" do
118
-
119
- @artist.name = "mr small"
120
- @artist.appears_as = "mr big"
121
- @artist.various?.should == false
122
-
123
- end
124
-
125
-
126
-
127
- def fake_track_list
128
- tracks = Array.new
129
- tracks << Sevendigital::Track.new(@client)
130
- tracks << Sevendigital::Track.new(@client)
131
- tracks
132
- end
133
-
134
- def fake_release_list
135
- releases = Array.new
136
- releases << Sevendigital::Release.new(@client)
137
- releases << Sevendigital::Release.new(@client)
138
- releases
139
- end
140
-
141
- def fake_artist_list
142
- artists = Array.new
143
- artists << Sevendigital::Artist.new(@client)
144
- artists << Sevendigital::Artist.new(@client)
145
- artists
146
- end
147
-
148
- def fake_artist_with_details
149
- artist = Sevendigital::Artist.new(@client)
150
- artist.sort_name = "The, The"
151
- artist.image = "image"
152
- artist.url = "url"
153
- artist
154
- end
1
+ require "date"
2
+ require File.expand_path('../../spec_helper', __FILE__)
3
+
4
+ describe "Artist" do
5
+
6
+ before do
7
+ @client = stub(Sevendigital::Client)
8
+ @artist_manager = mock(Sevendigital::ArtistManager)
9
+ @client.stub!(:artist).and_return @artist_manager
10
+
11
+ @artist = Sevendigital::Artist.new(@client)
12
+ @artist.id = 1234
13
+ end
14
+
15
+ it "get_details should get artist's basic details from manager" do
16
+ expected_options = {:page => 2}
17
+ fresh_artist = fake_artist_with_details
18
+
19
+ @artist_manager.should_receive(:get_details) { |artist_id, options|
20
+ artist_id.should == @artist.id
21
+ (options.keys & expected_options.keys).should == expected_options.keys
22
+ fresh_artist
23
+ }
24
+ @artist.get_details(expected_options)
25
+
26
+ @artist.sort_name.should == fresh_artist.sort_name
27
+ @artist.image.should == fresh_artist.image
28
+ @artist.url.should == fresh_artist.url
29
+
30
+ end
31
+
32
+ it "get_releases should get releases from manager" do
33
+ expected_options = {:page => 2}
34
+
35
+ @artist_manager.should_receive(:get_releases) { |artist_id, options|
36
+ artist_id.should == @artist.id
37
+ (options.keys & expected_options.keys).should == expected_options.keys
38
+ fake_release_list
39
+ }
40
+ @artist.get_releases(expected_options)
41
+
42
+ end
43
+
44
+ it "get_top_tracks should get tracks from manager" do
45
+ expected_options = {:page => 2}
46
+
47
+ @artist_manager.should_receive(:get_top_tracks) { |artist_id, options|
48
+ artist_id.should == @artist.id
49
+ (options.keys & expected_options.keys).should == expected_options.keys
50
+ fake_track_list
51
+ }
52
+ @artist.get_top_tracks(expected_options)
53
+
54
+ end
55
+
56
+ it "get_similar should get similar artists from manager" do
57
+ expected_options = {:page => 2}
58
+
59
+ @artist_manager.should_receive(:get_similar) { |artist_id, options|
60
+ artist_id.should == @artist.id
61
+ (options.keys & expected_options.keys).should == expected_options.keys
62
+ fake_artist_list
63
+ }
64
+ @artist.get_similar(expected_options)
65
+
66
+ end
67
+
68
+ it "get_tags should get tags from manager" do
69
+ expected_options = {:page => 2}
70
+
71
+ @artist_manager.should_receive(:get_tags) { |artist_id, options|
72
+ artist_id.should == @artist.id
73
+ (options.keys & expected_options.keys).should == expected_options.keys
74
+ []
75
+ }
76
+ @artist.get_tags(expected_options)
77
+
78
+ end
79
+
80
+
81
+ it "should be a various artist if name contains various" do
82
+
83
+ @artist.name = "various"
84
+ @artist.various?.should == true
85
+
86
+ end
87
+
88
+ it "should be a various artist if appears as contains various" do
89
+
90
+ @artist.name = "mr"
91
+ @artist.appears_as = "mr various"
92
+ @artist.various?.should == true
93
+
94
+ end
95
+
96
+ it "should be a various artist if resembles various artist" do
97
+
98
+ @artist.name = "v.a."
99
+ @artist.various?.should == true
100
+ @artist.name = "vario"
101
+ @artist.various?.should == true
102
+ @artist.name = "vaious"
103
+ @artist.various?.should == true
104
+ @artist.name = "varios"
105
+ @artist.various?.should == true
106
+ @artist.name = "aaaa"
107
+ @artist.various?.should == false
108
+ @artist.name = "vaious"
109
+ @artist.various?.should == true
110
+ @artist.name = "varoius"
111
+ @artist.various?.should == true
112
+ @artist.name = "variuos"
113
+ @artist.various?.should == true
114
+
115
+ end
116
+
117
+ it "should not be a various artist if it doesn't resemble various artist" do
118
+
119
+ @artist.name = "mr small"
120
+ @artist.appears_as = "mr big"
121
+ @artist.various?.should == false
122
+
123
+ end
124
+
125
+
126
+
127
+ def fake_track_list
128
+ tracks = Array.new
129
+ tracks << Sevendigital::Track.new(@client)
130
+ tracks << Sevendigital::Track.new(@client)
131
+ tracks
132
+ end
133
+
134
+ def fake_release_list
135
+ releases = Array.new
136
+ releases << Sevendigital::Release.new(@client)
137
+ releases << Sevendigital::Release.new(@client)
138
+ releases
139
+ end
140
+
141
+ def fake_artist_list
142
+ artists = Array.new
143
+ artists << Sevendigital::Artist.new(@client)
144
+ artists << Sevendigital::Artist.new(@client)
145
+ artists
146
+ end
147
+
148
+ def fake_artist_with_details
149
+ artist = Sevendigital::Artist.new(@client)
150
+ artist.sort_name = "The, The"
151
+ artist.image = "image"
152
+ artist.url = "url"
153
+ artist
154
+ end
155
155
  end
@@ -1,63 +1,63 @@
1
- require File.expand_path('../../spec_helper', __FILE__)
2
-
3
- describe "Basket" do
4
-
5
- before do
6
- @client = stub(Sevendigital::Client)
7
- @basket_manager = mock(Sevendigital::BasketManager)
8
- @client.stub!(:basket).and_return @basket_manager
9
-
10
- @basket = Sevendigital::Basket.new(@client)
11
- @basket.id = "00000000-0000-0000-0000-000000000001"
12
- end
13
-
14
- it "add_item should should call add_item on basket manager and update the basket items" do
15
- expected_options = {:page => 2}
16
- a_track_id = 123
17
- a_release_id = 456
18
-
19
- a_basket_id = @basket.id
20
- an_updated_basket = fake_basket_with_items(@basket.id)
21
-
22
- @basket_manager.should_receive(:add_item) { |basket_id, release_id, track_id, options|
23
- basket_id.should == @basket.id
24
- release_id.should == a_release_id
25
- track_id.should == a_track_id
26
- (options.keys & expected_options.keys).should == expected_options.keys
27
- an_updated_basket
28
- }
29
- @basket.add_item(a_release_id, a_track_id, expected_options)
30
-
31
- @basket.id.should == a_basket_id
32
- @basket.basket_items.should == an_updated_basket.basket_items
33
-
34
- end
35
-
36
- it "remove_item should should call remove_item on basket manager and update the basket items" do
37
- expected_options = {:page => 2}
38
- an_item_id = 123
39
-
40
- a_basket_id = @basket.id
41
- an_updated_basket = fake_basket_with_items(@basket.id)
42
-
43
- @basket_manager.should_receive(:remove_item) { |basket_id, item_id, options|
44
- basket_id.should == @basket.id
45
- item_id.should == an_item_id
46
- (options.keys & expected_options.keys).should == expected_options.keys
47
- an_updated_basket
48
- }
49
- @basket.remove_item(an_item_id, expected_options)
50
-
51
- @basket.id.should == a_basket_id
52
- @basket.basket_items.should == an_updated_basket.basket_items
53
-
54
- end
55
-
56
-
57
- def fake_basket_with_items(id)
58
- basket = Sevendigital::Basket.new(@client)
59
- basket.id = id
60
- basket.basket_items = [Sevendigital::BasketItem.new(@client), Sevendigital::BasketItem.new(@client)]
61
- basket
62
- end
1
+ require File.expand_path('../../spec_helper', __FILE__)
2
+
3
+ describe "Basket" do
4
+
5
+ before do
6
+ @client = stub(Sevendigital::Client)
7
+ @basket_manager = mock(Sevendigital::BasketManager)
8
+ @client.stub!(:basket).and_return @basket_manager
9
+
10
+ @basket = Sevendigital::Basket.new(@client)
11
+ @basket.id = "00000000-0000-0000-0000-000000000001"
12
+ end
13
+
14
+ it "add_item should should call add_item on basket manager and update the basket items" do
15
+ expected_options = {:page => 2}
16
+ a_track_id = 123
17
+ a_release_id = 456
18
+
19
+ a_basket_id = @basket.id
20
+ an_updated_basket = fake_basket_with_items(@basket.id)
21
+
22
+ @basket_manager.should_receive(:add_item) { |basket_id, release_id, track_id, options|
23
+ basket_id.should == @basket.id
24
+ release_id.should == a_release_id
25
+ track_id.should == a_track_id
26
+ (options.keys & expected_options.keys).should == expected_options.keys
27
+ an_updated_basket
28
+ }
29
+ @basket.add_item(a_release_id, a_track_id, expected_options)
30
+
31
+ @basket.id.should == a_basket_id
32
+ @basket.basket_items.should == an_updated_basket.basket_items
33
+
34
+ end
35
+
36
+ it "remove_item should should call remove_item on basket manager and update the basket items" do
37
+ expected_options = {:page => 2}
38
+ an_item_id = 123
39
+
40
+ a_basket_id = @basket.id
41
+ an_updated_basket = fake_basket_with_items(@basket.id)
42
+
43
+ @basket_manager.should_receive(:remove_item) { |basket_id, item_id, options|
44
+ basket_id.should == @basket.id
45
+ item_id.should == an_item_id
46
+ (options.keys & expected_options.keys).should == expected_options.keys
47
+ an_updated_basket
48
+ }
49
+ @basket.remove_item(an_item_id, expected_options)
50
+
51
+ @basket.id.should == a_basket_id
52
+ @basket.basket_items.should == an_updated_basket.basket_items
53
+
54
+ end
55
+
56
+
57
+ def fake_basket_with_items(id)
58
+ basket = Sevendigital::Basket.new(@client)
59
+ basket.id = id
60
+ basket.basket_items = [Sevendigital::BasketItem.new(@client), Sevendigital::BasketItem.new(@client)]
61
+ basket
62
+ end
63
63
  end