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,5 +1,5 @@
1
- common:
2
- api_url: test-yml-rails-common.7digital.com
3
-
4
- development:
5
- api_url: test-yml-development.7digital.com
1
+ common:
2
+ api_url: test-yml-rails-common.7digital.com
3
+
4
+ development:
5
+ api_url: test-yml-development.7digital.com
@@ -1,5 +1,5 @@
1
- common:
2
- api_url: test-yml-common.7digital.com
3
-
4
- development:
5
- api_url: test-yml-development.7digital.com
1
+ common:
2
+ api_url: test-yml-common.7digital.com
3
+
4
+ development:
5
+ api_url: test-yml-development.7digital.com
@@ -1,2 +1,2 @@
1
- api_url: test-yml-simple.7digital.com
1
+ api_url: test-yml-simple.7digital.com
2
2
  api_version: yml-simple
@@ -1,92 +1,92 @@
1
- require File.expand_path('../../spec_helper', __FILE__)
2
-
3
- describe "ApiResponseDigestor" do
4
-
5
- before do
6
- @api_response_digestor = Sevendigital::ApiResponseDigestor.new(nil)
7
- end
8
-
9
- it "should create a response with body from http ok response" do
10
-
11
- stub_http_response = stub(Net::HTTPSuccess)
12
- stub_http_response.stub!(:is_a?).with(Net::HTTPSuccess).and_return(true)
13
- stub_http_response.stub!(:body).and_return('<response status="ok"></response>')
14
- stub_http_response.stub!(:header).and_return(nil)
15
-
16
- response = @api_response_digestor.from_http_response(stub_http_response)
17
- response.error_code.should == 0
18
- end
19
-
20
- it "should create an error response from http non-ok response" do
21
- expected_message = 'Authorisation failed'
22
- expected_error_code = 401
23
-
24
- stub_http_response = stub(Net::HTTPSuccess)
25
- stub_http_response.stub!(:is_a?).with(Net::HTTPSuccess).and_return(false)
26
- stub_http_response.stub!(:code).and_return(expected_error_code.to_s)
27
- stub_http_response.stub!(:body).and_return(expected_message)
28
- stub_http_response.stub!(:header).and_return(nil)
29
-
30
- response = @api_response_digestor.from_http_response(stub_http_response)
31
- response.error_code.should == 401
32
- response.error_message.should == expected_message
33
-
34
- end
35
-
36
-
37
- it "should store headers from http response" do
38
-
39
- stub_http_response = stub(Net::HTTPSuccess)
40
- stub_http_response.stub!(:is_a?).with(Net::HTTPSuccess).and_return(true)
41
- stub_http_response.stub!(:body).and_return('<response status="ok"></response>')
42
- stub_http_response.stub!(:header).and_return({"cache-control" => "test", "date" => "now"})
43
-
44
- response = @api_response_digestor.from_http_response(stub_http_response)
45
- response.headers["cache-control"].should == "test"
46
- response.headers["date"].should == "now"
47
- end
48
-
49
-
50
- it "should create a response with body from xml ok response" do
51
-
52
- xml_response = <<XML
53
- <response status="ok"><test>aaa</test></response>
54
- XML
55
- response = @api_response_digestor.from_xml(xml_response)
56
- response.error_code.should == 0
57
- response.content.test.should_not == nil
58
- response.content.nothing.should == nil
59
- end
60
-
61
-
62
- it "should create a response with error details from xml error response" do
63
-
64
- xml_response = '<response status="error"><error code="1000"><errorMessage>expected error message</errorMessage></error></response>'
65
- response = @api_response_digestor.from_xml(xml_response)
66
- response.error_code.should == 1000
67
- response.error_message.should == 'expected error message'
68
- end
69
-
70
- it "should create a response with error details from invalid xml response" do
71
-
72
- xml_response = '<wrongresponse status="ok"><test /></wrongresponse>'
73
- response = @api_response_digestor.from_xml(xml_response)
74
- response.error_code.should == 10000
75
- response.error_message.should == 'Invalid 7digital API response'
76
-
77
- xml_response = '<response><test /></response>'
78
- response = @api_response_digestor.from_xml(xml_response)
79
- response.error_code.should == 10000
80
- response.error_message.should == 'Invalid 7digital API response'
81
- end
82
-
83
-
84
- it "should create a response with error details from valid xml response with invalid status" do
85
-
86
- xml_response = '<response status="unkown"><test></test></response>'
87
- response = @api_response_digestor.from_xml(xml_response)
88
- response.error_code.should == 10000
89
- response.error_message.should == 'Invalid 7digital API response'
90
- end
91
-
92
- end
1
+ require File.expand_path('../../spec_helper', __FILE__)
2
+
3
+ describe "ApiResponseDigestor" do
4
+
5
+ before do
6
+ @api_response_digestor = Sevendigital::ApiResponseDigestor.new(nil)
7
+ end
8
+
9
+ it "should create a response with body from http ok response" do
10
+
11
+ stub_http_response = stub(Net::HTTPSuccess)
12
+ stub_http_response.stub!(:is_a?).with(Net::HTTPSuccess).and_return(true)
13
+ stub_http_response.stub!(:body).and_return('<response status="ok"></response>')
14
+ stub_http_response.stub!(:header).and_return(nil)
15
+
16
+ response = @api_response_digestor.from_http_response(stub_http_response)
17
+ response.error_code.should == 0
18
+ end
19
+
20
+ it "should create an error response from http non-ok response" do
21
+ expected_message = 'Authorisation failed'
22
+ expected_error_code = 401
23
+
24
+ stub_http_response = stub(Net::HTTPSuccess)
25
+ stub_http_response.stub!(:is_a?).with(Net::HTTPSuccess).and_return(false)
26
+ stub_http_response.stub!(:code).and_return(expected_error_code.to_s)
27
+ stub_http_response.stub!(:body).and_return(expected_message)
28
+ stub_http_response.stub!(:header).and_return(nil)
29
+
30
+ response = @api_response_digestor.from_http_response(stub_http_response)
31
+ response.error_code.should == 401
32
+ response.error_message.should == expected_message
33
+
34
+ end
35
+
36
+
37
+ it "should store headers from http response" do
38
+
39
+ stub_http_response = stub(Net::HTTPSuccess)
40
+ stub_http_response.stub!(:is_a?).with(Net::HTTPSuccess).and_return(true)
41
+ stub_http_response.stub!(:body).and_return('<response status="ok"></response>')
42
+ stub_http_response.stub!(:header).and_return({"cache-control" => "test", "date" => "now"})
43
+
44
+ response = @api_response_digestor.from_http_response(stub_http_response)
45
+ response.headers["cache-control"].should == "test"
46
+ response.headers["date"].should == "now"
47
+ end
48
+
49
+
50
+ it "should create a response with body from xml ok response" do
51
+
52
+ xml_response = <<XML
53
+ <response status="ok"><test>aaa</test></response>
54
+ XML
55
+ response = @api_response_digestor.from_xml(xml_response)
56
+ response.error_code.should == 0
57
+ response.content.test.should_not == nil
58
+ response.content.nothing.should == nil
59
+ end
60
+
61
+
62
+ it "should create a response with error details from xml error response" do
63
+
64
+ xml_response = '<response status="error"><error code="1000"><errorMessage>expected error message</errorMessage></error></response>'
65
+ response = @api_response_digestor.from_xml(xml_response)
66
+ response.error_code.should == 1000
67
+ response.error_message.should == 'expected error message'
68
+ end
69
+
70
+ it "should create a response with error details from invalid xml response" do
71
+
72
+ xml_response = '<wrongresponse status="ok"><test /></wrongresponse>'
73
+ response = @api_response_digestor.from_xml(xml_response)
74
+ response.error_code.should == 10000
75
+ response.error_message.should == 'Invalid 7digital API response'
76
+
77
+ xml_response = '<response><test /></response>'
78
+ response = @api_response_digestor.from_xml(xml_response)
79
+ response.error_code.should == 10000
80
+ response.error_message.should == 'Invalid 7digital API response'
81
+ end
82
+
83
+
84
+ it "should create a response with error details from valid xml response with invalid status" do
85
+
86
+ xml_response = '<response status="unkown"><test></test></response>'
87
+ response = @api_response_digestor.from_xml(xml_response)
88
+ response.error_code.should == 10000
89
+ response.error_message.should == 'Invalid 7digital API response'
90
+ end
91
+
92
+ end
@@ -1,82 +1,82 @@
1
- require File.expand_path('../../spec_helper', __FILE__)
2
-
3
- describe "ArtistDigestor" do
4
-
5
- before do
6
- @artist_digestor = Sevendigital::ArtistDigestor.new(Sevendigital::Client.new(nil))
7
- end
8
-
9
- it "should not digest from invalid xml but throw up (exception)" do
10
-
11
- xml_response = <<XML
12
- <release id="123">
13
- <name>expected artist name</name>
14
- </release>
15
- XML
16
-
17
- running {@artist_digestor.from_xml(xml_response)}.should raise_error(Sevendigital::DigestiveProblem)
18
-
19
- end
20
-
21
- it "should digest artist xml and populate minimum available properties" do
22
-
23
- xml_response = <<XML
24
- <artist id="123">
25
- <name>expected artist name</name>
26
- </artist>
27
- XML
28
-
29
- artist = @artist_digestor.from_xml(xml_response)
30
- artist.id.should == 123
31
- artist.name.should == "expected artist name"
32
- end
33
-
34
- it "should digest artist xml and populate all available properties" do
35
-
36
- xml_response = load_sample_object_xml("artist")
37
-
38
- artist = @artist_digestor.from_xml(xml_response)
39
- artist.id.should == 123
40
- artist.name.should == "The Expected Artist"
41
- artist.sort_name.should == "Expected Artist, The"
42
- artist.appears_as.should == "The E.A."
43
- artist.image.should == "http://somewhere.com/tea.jpg"
44
- artist.url.should == "http://7digital.com/artists/tea?partner=1"
45
- end
46
-
47
- it "should digest xml containing list of artists and return a paginated array" do
48
-
49
- xml_response = load_sample_object_xml("artist_list")
50
-
51
- artists = @artist_digestor.list_from_xml(xml_response, :artists)
52
- artists[0].id.should == 14
53
- artists[1].id.should == 20
54
- artists[2].id.should == 106
55
- artists.size.should == 3
56
- artists.total_entries.should == 26
57
-
58
- end
59
-
60
- it "should digest xml containing empty list of releases and return an empty paginated array" do
61
-
62
- xml_response = load_sample_object_xml("artist_list_empty")
63
-
64
- artists = @artist_digestor.list_from_xml(xml_response, :artists)
65
- artists.size.should == 0
66
- artists.total_entries.should == 0
67
-
68
- end
69
-
70
- it "should not digest list from invalid xml but throw up (exception)" do
71
-
72
- xml_response = <<XML
73
- <release id="123">
74
- <name>expected artist name</name>
75
- </release>
76
- XML
77
-
78
- running {@artist_digestor.list_from_xml(xml_response)}.should raise_error(Sevendigital::DigestiveProblem)
79
-
80
- end
81
-
1
+ require File.expand_path('../../spec_helper', __FILE__)
2
+
3
+ describe "ArtistDigestor" do
4
+
5
+ before do
6
+ @artist_digestor = Sevendigital::ArtistDigestor.new(Sevendigital::Client.new(nil))
7
+ end
8
+
9
+ it "should not digest from invalid xml but throw up (exception)" do
10
+
11
+ xml_response = <<XML
12
+ <release id="123">
13
+ <name>expected artist name</name>
14
+ </release>
15
+ XML
16
+
17
+ running {@artist_digestor.from_xml(xml_response)}.should raise_error(Sevendigital::DigestiveProblem)
18
+
19
+ end
20
+
21
+ it "should digest artist xml and populate minimum available properties" do
22
+
23
+ xml_response = <<XML
24
+ <artist id="123">
25
+ <name>expected artist name</name>
26
+ </artist>
27
+ XML
28
+
29
+ artist = @artist_digestor.from_xml(xml_response)
30
+ artist.id.should == 123
31
+ artist.name.should == "expected artist name"
32
+ end
33
+
34
+ it "should digest artist xml and populate all available properties" do
35
+
36
+ xml_response = load_sample_object_xml("artist")
37
+
38
+ artist = @artist_digestor.from_xml(xml_response)
39
+ artist.id.should == 123
40
+ artist.name.should == "The Expected Artist"
41
+ artist.sort_name.should == "Expected Artist, The"
42
+ artist.appears_as.should == "The E.A."
43
+ artist.image.should == "http://somewhere.com/tea.jpg"
44
+ artist.url.should == "http://7digital.com/artists/tea?partner=1"
45
+ end
46
+
47
+ it "should digest xml containing list of artists and return a paginated array" do
48
+
49
+ xml_response = load_sample_object_xml("artist_list")
50
+
51
+ artists = @artist_digestor.list_from_xml(xml_response, :artists)
52
+ artists[0].id.should == 14
53
+ artists[1].id.should == 20
54
+ artists[2].id.should == 106
55
+ artists.size.should == 3
56
+ artists.total_entries.should == 26
57
+
58
+ end
59
+
60
+ it "should digest xml containing empty list of releases and return an empty paginated array" do
61
+
62
+ xml_response = load_sample_object_xml("artist_list_empty")
63
+
64
+ artists = @artist_digestor.list_from_xml(xml_response, :artists)
65
+ artists.size.should == 0
66
+ artists.total_entries.should == 0
67
+
68
+ end
69
+
70
+ it "should not digest list from invalid xml but throw up (exception)" do
71
+
72
+ xml_response = <<XML
73
+ <release id="123">
74
+ <name>expected artist name</name>
75
+ </release>
76
+ XML
77
+
78
+ running {@artist_digestor.list_from_xml(xml_response)}.should raise_error(Sevendigital::DigestiveProblem)
79
+
80
+ end
81
+
82
82
  end
@@ -1,32 +1,32 @@
1
- require File.expand_path('../../spec_helper', __FILE__)
2
-
3
- describe "BasketDigestor" do
4
-
5
- before do
6
- @basket_digestor = Sevendigital::BasketDigestor.new(Sevendigital::Client.new(nil))
7
- end
8
-
9
- it "should not digest from invalid xml but throw up (exception)" do
10
-
11
- xml_response = <<XML
12
- <zzz id="17">
13
- <fileFormat>MP3</fileFormat>
14
- <bitRate>320</bitRate>
15
- <drmFree>True</drmFree>
16
- </zzz>
17
- XML
18
-
19
- running {@basket_digestor.from_xml(xml_response)}.should raise_error(Sevendigital::DigestiveProblem)
20
- end
21
-
22
- it "should parse from Basket xml and populate all properties" do
23
-
24
- xml_response = load_sample_object_xml("basket")
25
-
26
- basket = @basket_digestor.from_xml(xml_response)
27
- basket.id.should == "00000000-0000-0000-0000-000000000000"
28
- basket.basket_items.size == 1
29
- basket.basket_items[0].id == 15284882
30
- end
31
-
1
+ require File.expand_path('../../spec_helper', __FILE__)
2
+
3
+ describe "BasketDigestor" do
4
+
5
+ before do
6
+ @basket_digestor = Sevendigital::BasketDigestor.new(Sevendigital::Client.new(nil))
7
+ end
8
+
9
+ it "should not digest from invalid xml but throw up (exception)" do
10
+
11
+ xml_response = <<XML
12
+ <zzz id="17">
13
+ <fileFormat>MP3</fileFormat>
14
+ <bitRate>320</bitRate>
15
+ <drmFree>True</drmFree>
16
+ </zzz>
17
+ XML
18
+
19
+ running {@basket_digestor.from_xml(xml_response)}.should raise_error(Sevendigital::DigestiveProblem)
20
+ end
21
+
22
+ it "should parse from Basket xml and populate all properties" do
23
+
24
+ xml_response = load_sample_object_xml("basket")
25
+
26
+ basket = @basket_digestor.from_xml(xml_response)
27
+ basket.id.should == "00000000-0000-0000-0000-000000000000"
28
+ basket.basket_items.size == 1
29
+ basket.basket_items[0].id == 15284882
30
+ end
31
+
32
32
  end
@@ -1,58 +1,58 @@
1
- # coding: utf-8
2
- require 'date'
3
- require File.expand_path('../../spec_helper', __FILE__)
4
-
5
- describe "BasketItemDigestor" do
6
-
7
- before do
8
- @basket_item_digestor = Sevendigital::BasketItemDigestor.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 {@basket_item_digestor.from_xml(xml_response)}.should raise_error(Sevendigital::DigestiveProblem)
20
- end
21
-
22
- it "should digest basket item xml and populate all properties" do
23
-
24
- xml_response = load_sample_object_xml("basket_item")
25
-
26
- basket_item = @basket_item_digestor.from_xml(xml_response)
27
- basket_item.id.should == 15284882
28
- basket_item.type.should == :track
29
- basket_item.item_name.should == "Test"
30
- basket_item.artist_name.should == "Ghetto"
31
- basket_item.track_id.should == 2458384
32
- basket_item.release_id.should == 224820
33
- basket_item.price.value.should == 0.99
34
- end
35
-
36
- it "should digest xml containing list of basket items and return an array" do
37
-
38
- xml_response = load_sample_object_xml("basket_item_list")
39
-
40
- basket_items = @basket_item_digestor.list_from_xml(xml_response)
41
- basket_items[0].id.should == 15284882
42
- basket_items[0].type.should == :track
43
- basket_items[1].id.should == 15284883
44
- basket_items[1].type.should == :release
45
- basket_items.size.should == 2
46
-
47
- end
48
-
49
- it "should digest xml containing empty list of releases and return an empty paginated array" do
50
-
51
- xml_response = load_sample_object_xml("basket_item_list_empty")
52
-
53
- basket_items = @basket_item_digestor.list_from_xml(xml_response)
54
- basket_items.size.should == 0
55
-
56
- end
57
-
58
- end
1
+ # coding: utf-8
2
+ require 'date'
3
+ require File.expand_path('../../spec_helper', __FILE__)
4
+
5
+ describe "BasketItemDigestor" do
6
+
7
+ before do
8
+ @basket_item_digestor = Sevendigital::BasketItemDigestor.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 {@basket_item_digestor.from_xml(xml_response)}.should raise_error(Sevendigital::DigestiveProblem)
20
+ end
21
+
22
+ it "should digest basket item xml and populate all properties" do
23
+
24
+ xml_response = load_sample_object_xml("basket_item")
25
+
26
+ basket_item = @basket_item_digestor.from_xml(xml_response)
27
+ basket_item.id.should == 15284882
28
+ basket_item.type.should == :track
29
+ basket_item.item_name.should == "Test"
30
+ basket_item.artist_name.should == "Ghetto"
31
+ basket_item.track_id.should == 2458384
32
+ basket_item.release_id.should == 224820
33
+ basket_item.price.value.should == 0.99
34
+ end
35
+
36
+ it "should digest xml containing list of basket items and return an array" do
37
+
38
+ xml_response = load_sample_object_xml("basket_item_list")
39
+
40
+ basket_items = @basket_item_digestor.list_from_xml(xml_response)
41
+ basket_items[0].id.should == 15284882
42
+ basket_items[0].type.should == :track
43
+ basket_items[1].id.should == 15284883
44
+ basket_items[1].type.should == :release
45
+ basket_items.size.should == 2
46
+
47
+ end
48
+
49
+ it "should digest xml containing empty list of releases and return an empty paginated array" do
50
+
51
+ xml_response = load_sample_object_xml("basket_item_list_empty")
52
+
53
+ basket_items = @basket_item_digestor.list_from_xml(xml_response)
54
+ basket_items.size.should == 0
55
+
56
+ end
57
+
58
+ end