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,101 +1,101 @@
1
- # coding: utf-8
2
- require 'date'
3
- require File.expand_path('../../spec_helper', __FILE__)
4
-
5
- describe "ReleaseDigestor" do
6
-
7
- before do
8
- @release_digestor = Sevendigital::ReleaseDigestor.new(Sevendigital::Client.new(nil))
9
- end
10
-
11
- it "should not digest from invalid xml but throw up (exception)" do
12
-
13
- xml_response = <<XML
14
- <artist id="123">
15
- <name>expected artist name</name>
16
- </artist>
17
- XML
18
-
19
- running {@release_digestor.from_xml(xml_response)}.should raise_error(Sevendigital::DigestiveProblem)
20
- end
21
-
22
- it "should digest release xml and populate minimum available properties" do
23
-
24
- xml_response = <<XML
25
- <release id="123">
26
- <title>expected release title</title>
27
- <artist id="345">
28
- <name>expected artist name</name>
29
- <appearsAs>expected displayed artist name</appearsAs>
30
- </artist>
31
- </release>
32
- XML
33
-
34
- release = @release_digestor.from_xml(xml_response)
35
- release.id.should == 123
36
- release.title.should == "expected release title"
37
- release.artist.id.should == 345
38
- release.artist.name.should == "expected artist name"
39
- release.artist.appears_as == "expected displayed artist name"
40
- end
41
-
42
- it "should digest release xml and populate all available properties" do
43
-
44
- xml_response = load_sample_object_xml("release")
45
-
46
- release = @release_digestor.from_xml(xml_response)
47
-
48
- release.id.should == 155408
49
- release.title.should == "Dreams"
50
- release.version.should == "UK"
51
- release.type.should == :album
52
- release.barcode.should == "00602517512078"
53
- release.year.should == 2007
54
- release.explicit_content.should == false
55
- release.artist.id.should == 29755
56
- release.artist.name.should == "The Whitest Boy Alive"
57
- release.artist.appears_as.should == "The Whitest Boy Alive"
58
- release.release_date.should == DateTime.new(2007,10,22,0,0,0, 1.quo(24))
59
- release.added_date.should == DateTime.new(2007,10,11,11,18,29, 0)
60
- release.price.currency_code.should == :GBP
61
- release.price.currency_symbol.should == "£"
62
- release.price.value.should == 5
63
- release.price.formatted_price.should == "£5.00"
64
- release.price.rrp.should == 7.79
65
- release.price.formatted_rrp.should == "£7.79"
66
- release.price.on_sale.should == true
67
- release.formats.size.should == 2
68
- release.formats[0].id.should == 17
69
- release.formats[1].id.should == 1
70
- release.label.id.should == 40
71
- release.label.name.should == "Universal-Island Records Ltd."
72
- release.image.should == "http://cdn.7static.com/static/img/sleeveart/00/001/554/0000155408_50.jpg"
73
- release.url.should == "http://www.7digital.com/artists/the-whitest-boy-alive/dreams-(1)/?partner=123"
74
- release
75
- end
76
-
77
- it "should digest xml containing list of releases and return a paginated array" do
78
-
79
- xml_response = load_sample_object_xml("release_list")
80
-
81
- releases = @release_digestor.list_from_xml(xml_response, :results)
82
- releases[0].id.should == 123
83
- releases[0].artist.id.should == 345
84
- releases[1].id.should == 456
85
- releases[1].artist.id.should == 789
86
- releases.size.should == 2
87
- releases.total_entries.should == 50
88
-
89
- end
90
-
91
- it "should digest xml containing empty list of releases and return an empty paginated array" do
92
-
93
- xml_response = load_sample_object_xml("release_list_empty")
94
-
95
- releases = @release_digestor.list_from_xml(xml_response, :results)
96
- releases.size.should == 0
97
- releases.total_entries.should == 0
98
-
99
- end
100
-
101
- end
1
+ # coding: utf-8
2
+ require 'date'
3
+ require File.expand_path('../../spec_helper', __FILE__)
4
+
5
+ describe "ReleaseDigestor" do
6
+
7
+ before do
8
+ @release_digestor = Sevendigital::ReleaseDigestor.new(Sevendigital::Client.new(nil))
9
+ end
10
+
11
+ it "should not digest from invalid xml but throw up (exception)" do
12
+
13
+ xml_response = <<XML
14
+ <artist id="123">
15
+ <name>expected artist name</name>
16
+ </artist>
17
+ XML
18
+
19
+ running {@release_digestor.from_xml(xml_response)}.should raise_error(Sevendigital::DigestiveProblem)
20
+ end
21
+
22
+ it "should digest release xml and populate minimum available properties" do
23
+
24
+ xml_response = <<XML
25
+ <release id="123">
26
+ <title>expected release title</title>
27
+ <artist id="345">
28
+ <name>expected artist name</name>
29
+ <appearsAs>expected displayed artist name</appearsAs>
30
+ </artist>
31
+ </release>
32
+ XML
33
+
34
+ release = @release_digestor.from_xml(xml_response)
35
+ release.id.should == 123
36
+ release.title.should == "expected release title"
37
+ release.artist.id.should == 345
38
+ release.artist.name.should == "expected artist name"
39
+ release.artist.appears_as == "expected displayed artist name"
40
+ end
41
+
42
+ it "should digest release xml and populate all available properties" do
43
+
44
+ xml_response = load_sample_object_xml("release")
45
+
46
+ release = @release_digestor.from_xml(xml_response)
47
+
48
+ release.id.should == 155408
49
+ release.title.should == "Dreams"
50
+ release.version.should == "UK"
51
+ release.type.should == :album
52
+ release.barcode.should == "00602517512078"
53
+ release.year.should == 2007
54
+ release.explicit_content.should == false
55
+ release.artist.id.should == 29755
56
+ release.artist.name.should == "The Whitest Boy Alive"
57
+ release.artist.appears_as.should == "The Whitest Boy Alive"
58
+ release.release_date.should == DateTime.new(2007,10,22,0,0,0, 1.quo(24))
59
+ release.added_date.should == DateTime.new(2007,10,11,11,18,29, 0)
60
+ release.price.currency_code.should == :GBP
61
+ release.price.currency_symbol.should == "£"
62
+ release.price.value.should == 5
63
+ release.price.formatted_price.should == "£5.00"
64
+ release.price.rrp.should == 7.79
65
+ release.price.formatted_rrp.should == "£7.79"
66
+ release.price.on_sale.should == true
67
+ release.formats.size.should == 2
68
+ release.formats[0].id.should == 17
69
+ release.formats[1].id.should == 1
70
+ release.label.id.should == 40
71
+ release.label.name.should == "Universal-Island Records Ltd."
72
+ release.image.should == "http://cdn.7static.com/static/img/sleeveart/00/001/554/0000155408_50.jpg"
73
+ release.url.should == "http://www.7digital.com/artists/the-whitest-boy-alive/dreams-(1)/?partner=123"
74
+ release
75
+ end
76
+
77
+ it "should digest xml containing list of releases and return a paginated array" do
78
+
79
+ xml_response = load_sample_object_xml("release_list")
80
+
81
+ releases = @release_digestor.list_from_xml(xml_response, :results)
82
+ releases[0].id.should == 123
83
+ releases[0].artist.id.should == 345
84
+ releases[1].id.should == 456
85
+ releases[1].artist.id.should == 789
86
+ releases.size.should == 2
87
+ releases.total_entries.should == 50
88
+
89
+ end
90
+
91
+ it "should digest xml containing empty list of releases and return an empty paginated array" do
92
+
93
+ xml_response = load_sample_object_xml("release_list_empty")
94
+
95
+ releases = @release_digestor.list_from_xml(xml_response, :results)
96
+ releases.size.should == 0
97
+ releases.total_entries.should == 0
98
+
99
+ end
100
+
101
+ end
@@ -1,46 +1,46 @@
1
- # coding: utf-8
2
- require File.expand_path('../../spec_helper', __FILE__)
3
-
4
- describe "TagDigestor" do
5
-
6
- before do
7
- @tag_digestor = Sevendigital::TagDigestor.new(nil)
8
- end
9
-
10
- it "should not digest from invalid xml but throw up (exception)" do
11
-
12
- xml_response = <<XML
13
- <xxx>
14
- <text>pop</text>
15
- </xxx>
16
- XML
17
-
18
- running {@tag_digestor.from_xml(xml_response)}.should raise_error(Sevendigital::DigestiveProblem)
19
- end
20
-
21
- it "should parse from xml and populate minimum available properties" do
22
-
23
- xml_response = <<XML
24
- <tag id="rock">
25
- <text>ROCK</text>
26
- </tag>
27
- XML
28
-
29
- tag = @tag_digestor.from_xml(xml_response)
30
- tag.id.should == 'rock'
31
- tag.text.should == "ROCK"
32
-
33
- end
34
-
35
- it "should parse from xml and populate all properties" do
36
-
37
- xml_response = load_sample_object_xml("tag")
38
-
39
- tag = @tag_digestor.from_xml(xml_response)
40
- tag.id.should == "pop"
41
- tag.text.should == "pop"
42
- tag.url.should == "http://www.7digital.com/tags/pop?partner=123"
43
- tag.count.should == 90847
44
- end
45
-
46
- end
1
+ # coding: utf-8
2
+ require File.expand_path('../../spec_helper', __FILE__)
3
+
4
+ describe "TagDigestor" do
5
+
6
+ before do
7
+ @tag_digestor = Sevendigital::TagDigestor.new(nil)
8
+ end
9
+
10
+ it "should not digest from invalid xml but throw up (exception)" do
11
+
12
+ xml_response = <<XML
13
+ <xxx>
14
+ <text>pop</text>
15
+ </xxx>
16
+ XML
17
+
18
+ running {@tag_digestor.from_xml(xml_response)}.should raise_error(Sevendigital::DigestiveProblem)
19
+ end
20
+
21
+ it "should parse from xml and populate minimum available properties" do
22
+
23
+ xml_response = <<XML
24
+ <tag id="rock">
25
+ <text>ROCK</text>
26
+ </tag>
27
+ XML
28
+
29
+ tag = @tag_digestor.from_xml(xml_response)
30
+ tag.id.should == 'rock'
31
+ tag.text.should == "ROCK"
32
+
33
+ end
34
+
35
+ it "should parse from xml and populate all properties" do
36
+
37
+ xml_response = load_sample_object_xml("tag")
38
+
39
+ tag = @tag_digestor.from_xml(xml_response)
40
+ tag.id.should == "pop"
41
+ tag.text.should == "pop"
42
+ tag.url.should == "http://www.7digital.com/tags/pop?partner=123"
43
+ tag.count.should == 90847
44
+ end
45
+
46
+ end
@@ -1,105 +1,105 @@
1
- # coding: utf-8
2
- require 'date'
3
- require File.expand_path('../../spec_helper', __FILE__)
4
-
5
- describe "TrackDigestor" do
6
-
7
- before do
8
- @track_digestor = Sevendigital::TrackDigestor.new(Sevendigital::Client.new(nil))
9
- end
10
-
11
- it "should not digest from invalid xml but throw up (exception)" do
12
-
13
- xml_response = <<XML
14
- <artist id="123">
15
- <name>expected artist name</name>
16
- </artist>
17
- XML
18
-
19
- running {@track_digestor.from_xml(xml_response)}.should raise_error(Sevendigital::DigestiveProblem)
20
- end
21
-
22
- it "should digest track xml and populate minimum available properties" do
23
-
24
- xml_response = <<XML
25
- <track id="123">
26
- <title>expected track title</title>
27
- <artist id="345">
28
- <name>expected artist name</name>
29
- <appearsAs>expected displayed artist name</appearsAs>
30
- </artist>
31
- </track>
32
- XML
33
-
34
- track = @track_digestor.from_xml(xml_response)
35
- track.id.should == 123
36
- track.title.should == "expected track title"
37
- track.artist.id.should == 345
38
- track.artist.name.should == "expected artist name"
39
- track.artist.appears_as == "expected displayed artist name"
40
- end
41
-
42
- it "should digest track xml and populate all available properties" do
43
-
44
- xml_response = load_sample_object_xml("track")
45
-
46
- track = @track_digestor.from_xml(xml_response)
47
- track.id.should == 1628015
48
- track.title.should == "Burning"
49
- track.version.should == ""
50
- track.artist.id.should == 29755
51
- track.artist.name.should == "The Whitest Boy Alive"
52
- track.artist.appears_as.should == "The Whitest Boy Alive"
53
- track.track_number.should == 1
54
- track.duration.should == 189
55
- track.explicit_content.should == false
56
- track.isrc.should == "DED620600065"
57
- track.release.id.should == 155408
58
- track.release.title.should == "Dreams"
59
- track.price.currency_code.should == :GBP
60
- track.price.currency_symbol.should == "£"
61
- track.price.value.should == 0.79
62
- track.price.formatted_price.should == "£0.79"
63
- track.price.rrp.should == 0.79
64
- track.price.formatted_rrp.should == "£0.79"
65
- track.price.on_sale.should == false
66
- track.url.should == "http://www.7digital.com/artists/the-whitest-boy-alive/dreams-1/01-Burning/?partner=123"
67
- track
68
- end
69
-
70
- it "should digest xml containing list of tracks and return an array" do
71
-
72
- xml_response = <<XML
73
- <results>
74
- <page>1</page>
75
- <pageSize>2</pageSize>
76
- <totalItems>50</totalItems>
77
- <track id="123">
78
- <title>expected track title</title>
79
- <artist id="345">
80
- <name>expected artist name</name>
81
- <appearsAs>expected displayed artist name</appearsAs>
82
- </artist>
83
- </track>
84
- <track id="456">
85
- <title>expected track title</title>
86
- <artist id="789">
87
- <name>expected artist name</name>
88
- <appearsAs>expected displayed artist name</appearsAs>
89
- </artist>
90
- </track>
91
- </results>
92
- XML
93
-
94
- tracks = @track_digestor.list_from_xml(xml_response, :results)
95
- tracks[0].id.should == 123
96
- tracks[0].artist.id.should == 345
97
- tracks[1].id.should == 456
98
- tracks[1].artist.id.should == 789
99
- tracks.size.should == 2
100
- tracks.total_entries.should == 50
101
-
102
-
103
- end
104
-
1
+ # coding: utf-8
2
+ require 'date'
3
+ require File.expand_path('../../spec_helper', __FILE__)
4
+
5
+ describe "TrackDigestor" do
6
+
7
+ before do
8
+ @track_digestor = Sevendigital::TrackDigestor.new(Sevendigital::Client.new(nil))
9
+ end
10
+
11
+ it "should not digest from invalid xml but throw up (exception)" do
12
+
13
+ xml_response = <<XML
14
+ <artist id="123">
15
+ <name>expected artist name</name>
16
+ </artist>
17
+ XML
18
+
19
+ running {@track_digestor.from_xml(xml_response)}.should raise_error(Sevendigital::DigestiveProblem)
20
+ end
21
+
22
+ it "should digest track xml and populate minimum available properties" do
23
+
24
+ xml_response = <<XML
25
+ <track id="123">
26
+ <title>expected track title</title>
27
+ <artist id="345">
28
+ <name>expected artist name</name>
29
+ <appearsAs>expected displayed artist name</appearsAs>
30
+ </artist>
31
+ </track>
32
+ XML
33
+
34
+ track = @track_digestor.from_xml(xml_response)
35
+ track.id.should == 123
36
+ track.title.should == "expected track title"
37
+ track.artist.id.should == 345
38
+ track.artist.name.should == "expected artist name"
39
+ track.artist.appears_as == "expected displayed artist name"
40
+ end
41
+
42
+ it "should digest track xml and populate all available properties" do
43
+
44
+ xml_response = load_sample_object_xml("track")
45
+
46
+ track = @track_digestor.from_xml(xml_response)
47
+ track.id.should == 1628015
48
+ track.title.should == "Burning"
49
+ track.version.should == ""
50
+ track.artist.id.should == 29755
51
+ track.artist.name.should == "The Whitest Boy Alive"
52
+ track.artist.appears_as.should == "The Whitest Boy Alive"
53
+ track.track_number.should == 1
54
+ track.duration.should == 189
55
+ track.explicit_content.should == false
56
+ track.isrc.should == "DED620600065"
57
+ track.release.id.should == 155408
58
+ track.release.title.should == "Dreams"
59
+ track.price.currency_code.should == :GBP
60
+ track.price.currency_symbol.should == "£"
61
+ track.price.value.should == 0.79
62
+ track.price.formatted_price.should == "£0.79"
63
+ track.price.rrp.should == 0.79
64
+ track.price.formatted_rrp.should == "£0.79"
65
+ track.price.on_sale.should == false
66
+ track.url.should == "http://www.7digital.com/artists/the-whitest-boy-alive/dreams-1/01-Burning/?partner=123"
67
+ track
68
+ end
69
+
70
+ it "should digest xml containing list of tracks and return an array" do
71
+
72
+ xml_response = <<XML
73
+ <results>
74
+ <page>1</page>
75
+ <pageSize>2</pageSize>
76
+ <totalItems>50</totalItems>
77
+ <track id="123">
78
+ <title>expected track title</title>
79
+ <artist id="345">
80
+ <name>expected artist name</name>
81
+ <appearsAs>expected displayed artist name</appearsAs>
82
+ </artist>
83
+ </track>
84
+ <track id="456">
85
+ <title>expected track title</title>
86
+ <artist id="789">
87
+ <name>expected artist name</name>
88
+ <appearsAs>expected displayed artist name</appearsAs>
89
+ </artist>
90
+ </track>
91
+ </results>
92
+ XML
93
+
94
+ tracks = @track_digestor.list_from_xml(xml_response, :results)
95
+ tracks[0].id.should == 123
96
+ tracks[0].artist.id.should == 345
97
+ tracks[1].id.should == 456
98
+ tracks[1].artist.id.should == 789
99
+ tracks.size.should == 2
100
+ tracks.total_entries.should == 50
101
+
102
+
103
+ end
104
+
105
105
  end