7digital 0.1.2 → 0.1.5

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 (197) hide show
  1. checksums.yaml +7 -0
  2. data/README.rdoc +143 -143
  3. data/lib/sevendigital.rb +55 -55
  4. data/lib/sevendigital/api_operator.rb +127 -127
  5. data/lib/sevendigital/api_operator_cached.rb +91 -62
  6. data/lib/sevendigital/api_request.rb +72 -62
  7. data/lib/sevendigital/client.rb +122 -122
  8. data/lib/sevendigital/client_configuration.rb +85 -83
  9. data/lib/sevendigital/client_digestors.rb +122 -122
  10. data/lib/sevendigital/client_managers.rb +57 -57
  11. data/lib/sevendigital/digestion_tract/api_response_digestor.rb +48 -48
  12. data/lib/sevendigital/digestion_tract/artist_digestor.rb +35 -35
  13. data/lib/sevendigital/digestion_tract/basket_digestor.rb +19 -19
  14. data/lib/sevendigital/digestion_tract/basket_item_digestor.rb +26 -26
  15. data/lib/sevendigital/digestion_tract/chart_item_digestor.rb +34 -34
  16. data/lib/sevendigital/digestion_tract/country_digestor.rb +15 -15
  17. data/lib/sevendigital/digestion_tract/digestor.rb +122 -122
  18. data/lib/sevendigital/digestion_tract/download_url_digestor.rb +23 -23
  19. data/lib/sevendigital/digestion_tract/format_digestor.rb +24 -24
  20. data/lib/sevendigital/digestion_tract/label_digestor.rb +21 -21
  21. data/lib/sevendigital/digestion_tract/list_digestor.rb +24 -24
  22. data/lib/sevendigital/digestion_tract/list_item_digestor.rb +26 -26
  23. data/lib/sevendigital/digestion_tract/locker_digestor.rb +22 -22
  24. data/lib/sevendigital/digestion_tract/locker_release_digestor.rb +26 -26
  25. data/lib/sevendigital/digestion_tract/locker_track_digestor.rb +26 -26
  26. data/lib/sevendigital/digestion_tract/oauth_access_token_digestor.rb +18 -18
  27. data/lib/sevendigital/digestion_tract/oauth_request_token_digestor.rb +18 -18
  28. data/lib/sevendigital/digestion_tract/pager_digestor.rb +28 -28
  29. data/lib/sevendigital/digestion_tract/price_digestor.rb +28 -28
  30. data/lib/sevendigital/digestion_tract/release_digestor.rb +45 -45
  31. data/lib/sevendigital/digestion_tract/tag_digestor.rb +23 -23
  32. data/lib/sevendigital/digestion_tract/track_digestor.rb +38 -37
  33. data/lib/sevendigital/digestion_tract/user_card_digestor.rb +24 -24
  34. data/lib/sevendigital/digestion_tract/user_digestor.rb +21 -21
  35. data/lib/sevendigital/management/artist_manager.rb +97 -97
  36. data/lib/sevendigital/management/basket_manager.rb +29 -29
  37. data/lib/sevendigital/management/country_manager.rb +10 -10
  38. data/lib/sevendigital/management/list_manager.rb +18 -18
  39. data/lib/sevendigital/management/manager.rb +12 -12
  40. data/lib/sevendigital/management/oauth_manager.rb +23 -23
  41. data/lib/sevendigital/management/release_manager.rb +54 -54
  42. data/lib/sevendigital/management/tag_manager.rb +10 -10
  43. data/lib/sevendigital/management/track_manager.rb +29 -27
  44. data/lib/sevendigital/management/user_card_manager.rb +26 -26
  45. data/lib/sevendigital/management/user_manager.rb +76 -76
  46. data/lib/sevendigital/model/api_response.rb +32 -32
  47. data/lib/sevendigital/model/artist.rb +104 -104
  48. data/lib/sevendigital/model/basket.rb +15 -15
  49. data/lib/sevendigital/model/basket_item.rb +14 -14
  50. data/lib/sevendigital/model/card.rb +11 -11
  51. data/lib/sevendigital/model/chart_item.rb +9 -9
  52. data/lib/sevendigital/model/download_url.rb +7 -7
  53. data/lib/sevendigital/model/format.rb +7 -7
  54. data/lib/sevendigital/model/label.rb +7 -7
  55. data/lib/sevendigital/model/list.rb +4 -4
  56. data/lib/sevendigital/model/list_item.rb +8 -8
  57. data/lib/sevendigital/model/locker.rb +4 -4
  58. data/lib/sevendigital/model/locker_release.rb +9 -9
  59. data/lib/sevendigital/model/locker_track.rb +9 -9
  60. data/lib/sevendigital/model/price.rb +9 -9
  61. data/lib/sevendigital/model/release.rb +57 -57
  62. data/lib/sevendigital/model/sevendigital_error.rb +11 -11
  63. data/lib/sevendigital/model/sevendigital_object.rb +57 -57
  64. data/lib/sevendigital/model/tag.rb +7 -7
  65. data/lib/sevendigital/model/track.rb +87 -83
  66. data/lib/sevendigital/model/user.rb +74 -74
  67. data/lib/sevendigital/pager.rb +20 -20
  68. data/lib/sevendigital/version.rb +5 -5
  69. data/spec/api_operator_cached_spec.rb +233 -178
  70. data/spec/api_operator_spec.rb +320 -320
  71. data/spec/api_request_spec.rb +46 -31
  72. data/spec/client_configuration_spec.rb +78 -78
  73. data/spec/client_spec.rb +161 -161
  74. data/spec/data/config/sevendigital.yml +5 -5
  75. data/spec/data/configuration_env_override.yml +5 -5
  76. data/spec/data/configuration_override.yml +1 -1
  77. data/spec/digestion_tract/api_response_digestor_spec.rb +93 -93
  78. data/spec/digestion_tract/artist_digestor_spec.rb +81 -81
  79. data/spec/digestion_tract/basket_digestor_spec.rb +31 -31
  80. data/spec/digestion_tract/basket_item_digestor_spec.rb +58 -58
  81. data/spec/digestion_tract/chart_digestor_spec.rb +52 -52
  82. data/spec/digestion_tract/country_digestor_spec.rb +33 -33
  83. data/spec/digestion_tract/digestor_spec.rb +33 -33
  84. data/spec/digestion_tract/download_url_digestor_spec.rb +40 -40
  85. data/spec/digestion_tract/format_digestor_spec.rb +38 -38
  86. data/spec/digestion_tract/label_digestor_spec.rb +33 -33
  87. data/spec/digestion_tract/list_digestor_spec.rb +31 -31
  88. data/spec/digestion_tract/list_item_digestor_spec.rb +80 -80
  89. data/spec/digestion_tract/locker_digestor_spec.rb +30 -30
  90. data/spec/digestion_tract/locker_release_digestor_spec.rb +70 -70
  91. data/spec/digestion_tract/locker_track_digestor_spec.rb +56 -56
  92. data/spec/digestion_tract/oauth_access_token_digestor_spec.rb +34 -34
  93. data/spec/digestion_tract/oauth_request_token_digestor_spec.rb +34 -34
  94. data/spec/digestion_tract/pager_digestor_spec.rb +50 -50
  95. data/spec/digestion_tract/price_digestor_spec.rb +73 -73
  96. data/spec/digestion_tract/release_digestor_spec.rb +115 -115
  97. data/spec/digestion_tract/tag_digestor_spec.rb +46 -46
  98. data/spec/digestion_tract/track_digestor_spec.rb +105 -104
  99. data/spec/digestion_tract/user_card_digestor_spec.rb +58 -58
  100. data/spec/digestion_tract/user_digestor_spec.rb +42 -42
  101. data/spec/integration/artist_spec.rb +99 -86
  102. data/spec/integration/country_spec.rb +18 -18
  103. data/spec/integration/list_spec.rb +22 -22
  104. data/spec/integration/purchasing_spec.rb +24 -24
  105. data/spec/integration/release_spec.rb +34 -34
  106. data/spec/integration/sevendigital_spec.yml +4 -4
  107. data/spec/integration/track_spec.rb +38 -23
  108. data/spec/integration/user_spec.rb +22 -22
  109. data/spec/management/artist_manager_spec.rb +172 -172
  110. data/spec/management/basket_manager_spec.rb +77 -77
  111. data/spec/management/country_manager_spec.rb +34 -34
  112. data/spec/management/list_manager_spec.rb +26 -26
  113. data/spec/management/oauth_manager_spec.rb +72 -72
  114. data/spec/management/release_manager_spec.rb +200 -200
  115. data/spec/management/tag_manager_spec.rb +34 -34
  116. data/spec/management/track_manager_spec.rb +111 -107
  117. data/spec/management/user_card_manager_spec.rb +78 -78
  118. data/spec/management/user_manager_spec.rb +218 -218
  119. data/spec/model/api_response_spec.rb +48 -48
  120. data/spec/model/artist_spec.rb +162 -162
  121. data/spec/model/basket_spec.rb +62 -62
  122. data/spec/model/release_spec.rb +133 -133
  123. data/spec/model/sevendigital_object_spec.rb +73 -73
  124. data/spec/model/track_spec.rb +146 -144
  125. data/spec/model/user_spec.rb +181 -181
  126. data/spec/spec_helper.rb +86 -84
  127. data/spec/test-xml/methods/artist/browse.xml +21 -21
  128. data/spec/test-xml/methods/artist/byTag/top.xml +50 -50
  129. data/spec/test-xml/methods/artist/chart.xml +30 -30
  130. data/spec/test-xml/methods/artist/details.xml +9 -9
  131. data/spec/test-xml/methods/artist/releases.xml +544 -544
  132. data/spec/test-xml/methods/artist/search.xml +18 -18
  133. data/spec/test-xml/methods/artist/similar.xml +39 -39
  134. data/spec/test-xml/methods/artist/tags.xml +11 -11
  135. data/spec/test-xml/methods/artist/toptracks.xml +279 -279
  136. data/spec/test-xml/methods/basket/additem.xml +23 -23
  137. data/spec/test-xml/methods/basket/create.xml +10 -10
  138. data/spec/test-xml/methods/basket/index.xml +23 -23
  139. data/spec/test-xml/methods/basket/removeitem.xml +10 -10
  140. data/spec/test-xml/methods/country/resolve.xml +6 -6
  141. data/spec/test-xml/methods/editorial/list.xml +170 -170
  142. data/spec/test-xml/methods/oauth/accesstoken.xml +5 -5
  143. data/spec/test-xml/methods/oauth/requesttoken.xml +5 -5
  144. data/spec/test-xml/methods/release/bydate.xml +173 -173
  145. data/spec/test-xml/methods/release/bytag/top.xml +150 -150
  146. data/spec/test-xml/methods/release/chart.xml +181 -181
  147. data/spec/test-xml/methods/release/details.xml +48 -48
  148. data/spec/test-xml/methods/release/recommend.xml +89 -89
  149. data/spec/test-xml/methods/release/search.xml +194 -194
  150. data/spec/test-xml/methods/release/tags.xml +27 -27
  151. data/spec/test-xml/methods/release/tracks.xml +28 -28
  152. data/spec/test-xml/methods/tag/index.xml +16 -16
  153. data/spec/test-xml/methods/track/chart.xml +149 -149
  154. data/spec/test-xml/methods/track/details.xml +30 -30
  155. data/spec/test-xml/methods/track/search.xml +159 -159
  156. data/spec/test-xml/methods/user/details.xml +4 -4
  157. data/spec/test-xml/methods/user/locker.xml +49 -49
  158. data/spec/test-xml/methods/user/payment/card/add.xml +7 -7
  159. data/spec/test-xml/methods/user/payment/card/index.xml +7 -7
  160. data/spec/test-xml/methods/user/purchase/basket.xml +48 -48
  161. data/spec/test-xml/methods/user/purchase/item.xml +48 -48
  162. data/spec/test-xml/methods/user/signUp.xml +5 -5
  163. data/spec/test-xml/objects/artist.xml +7 -7
  164. data/spec/test-xml/objects/artist_chart_item.xml +7 -7
  165. data/spec/test-xml/objects/artist_list.xml +22 -22
  166. data/spec/test-xml/objects/artist_list_empty.xml +4 -4
  167. data/spec/test-xml/objects/basket.xml +21 -21
  168. data/spec/test-xml/objects/basket_item.xml +11 -11
  169. data/spec/test-xml/objects/basket_item_list.xml +25 -25
  170. data/spec/test-xml/objects/basket_item_list_empty.xml +1 -1
  171. data/spec/test-xml/objects/download_url.xml +7 -7
  172. data/spec/test-xml/objects/list.xml +89 -89
  173. data/spec/test-xml/objects/list_item_list.xml +85 -85
  174. data/spec/test-xml/objects/list_item_release.xml +13 -13
  175. data/spec/test-xml/objects/locker.xml +47 -47
  176. data/spec/test-xml/objects/locker_release.xml +40 -40
  177. data/spec/test-xml/objects/locker_release_list.xml +87 -87
  178. data/spec/test-xml/objects/locker_release_list_empty.xml +4 -4
  179. data/spec/test-xml/objects/locker_release_one_item_list.xml +43 -43
  180. data/spec/test-xml/objects/locker_track.xml +25 -25
  181. data/spec/test-xml/objects/locker_track_list.xml +26 -26
  182. data/spec/test-xml/objects/locker_track_list_empty.xml +2 -2
  183. data/spec/test-xml/objects/nested_release_list.xml +22 -22
  184. data/spec/test-xml/objects/oauth_access_token.xml +3 -3
  185. data/spec/test-xml/objects/oauth_request_token.xml +3 -3
  186. data/spec/test-xml/objects/price.xml +7 -7
  187. data/spec/test-xml/objects/release.xml +40 -40
  188. data/spec/test-xml/objects/release_chart_item.xml +39 -39
  189. data/spec/test-xml/objects/release_list.xml +18 -18
  190. data/spec/test-xml/objects/release_list_empty.xml +4 -4
  191. data/spec/test-xml/objects/response.xml +38 -38
  192. data/spec/test-xml/objects/tag.xml +4 -4
  193. data/spec/test-xml/objects/track.xml +34 -33
  194. data/spec/test-xml/objects/track_chart_item.xml +27 -27
  195. data/spec/test-xml/objects/user.xml +4 -4
  196. data/spec/test-xml/objects/user_payment_card.xml +5 -5
  197. metadata +15 -25
@@ -1,32 +1,32 @@
1
- require File.expand_path('../../spec_helper', __FILE__)
2
-
3
- describe "ListDigestor" do
4
-
5
- before do
6
- @list_digestor = Sevendigital::ListDigestor.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
- <aaa>MP3</aaa>
14
- </zzz>
15
- XML
16
-
17
- running {@list_digestor.from_xml_string(xml_response)}.should raise_error(Sevendigital::DigestiveProblem)
18
- end
19
-
20
- it "should parse from xml and populate all properties" do
21
-
22
- xml_response = load_sample_object_xml("list")
23
-
24
- list = @list_digestor.from_xml_string(xml_response)
25
- list.id.should == 3202
26
- list.key.should == "featured_albums"
27
- list.list_items.size.should == 2
28
- list.list_items[0].release.id.should == 1879539
29
- list.list_items[1].release.id.should == 1879543
30
- end
31
-
1
+ require File.expand_path('../../spec_helper', __FILE__)
2
+
3
+ describe "ListDigestor" do
4
+
5
+ before do
6
+ @list_digestor = Sevendigital::ListDigestor.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
+ <aaa>MP3</aaa>
14
+ </zzz>
15
+ XML
16
+
17
+ running {@list_digestor.from_xml_string(xml_response)}.should raise_error(Sevendigital::DigestiveProblem)
18
+ end
19
+
20
+ it "should parse from xml and populate all properties" do
21
+
22
+ xml_response = load_sample_object_xml("list")
23
+
24
+ list = @list_digestor.from_xml_string(xml_response)
25
+ list.id.should == 3202
26
+ list.key.should == "featured_albums"
27
+ list.list_items.size.should == 2
28
+ list.list_items[0].release.id.should == 1879539
29
+ list.list_items[1].release.id.should == 1879543
30
+ end
31
+
32
32
  end
@@ -1,80 +1,80 @@
1
- # coding: utf-8
2
- require 'date'
3
- require File.expand_path('../../spec_helper', __FILE__)
4
-
5
- describe "ListItemDigestor" do
6
-
7
- before do
8
- @list_item_digestor = Sevendigital::ListItemDigestor.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
- <foo id="123">
15
- <bar>test</bar>
16
- </foo>
17
- XML
18
-
19
- running {@list_item_digestor.from_xml_doc(xml_response)}.should raise_error(Sevendigital::DigestiveProblem)
20
- end
21
-
22
- it "should digest list item xml and populate available properties" do
23
-
24
- xml_response = load_sample_object_xml("list_item_release")
25
-
26
- list_item = @list_item_digestor.from_xml_string(xml_response)
27
-
28
- list_item.id.should == 123456
29
- list_item.type.should == :release
30
- list_item.release.id.should == 1136112
31
- list_item.release.title.should == "Collapse Into Now"
32
- list_item.release.artist.id.should == 590
33
- list_item.release.artist.name.should == "R.E.M."
34
- list_item.release.artist.appears_as == "R.E.M."
35
- list_item.release.artist.url.should == "http://www.7digital.com/artists/r-e-m"
36
- list_item.release.url.should == "http://www.7digital.com/artists/r-e-m/collapse-into-now?partner=123"
37
- list_item.release.image.should == "http://cdn.7static.com/static/img/sleeveart/00/011/361/0001136112_50.jpg"
38
- list_item.release.explicit_content == false
39
- end
40
-
41
- it "should not digest unknown list item xml but throw up (exception) " do
42
-
43
- xml_response = <<XML
44
- <listItem id="123">
45
- <type>track</type>
46
- <track id="1136112">
47
- </track>
48
- </release>
49
- XML
50
-
51
- running {@list_item_digestor.from_xml_doc(xml_response)}.should raise_error(Sevendigital::DigestiveProblem)
52
- end
53
-
54
- it "should digest xml containing list of list items and return an array" do
55
-
56
- xml_response = load_sample_object_xml("list_item_list")
57
-
58
- list_items = @list_item_digestor.list_from_xml_string(xml_response)
59
- list_items[0].id.should == 1879539
60
- list_items[0].release.id.should == 1879539
61
- list_items[1].id.should == 1879543
62
- list_items[1].release.id.should == 1879543
63
- list_items.size.should == 2
64
-
65
- end
66
-
67
- it "should digest xml containing empty list of list items and return an empty array" do
68
-
69
- xml_response = <<XML
70
- <listItems>
71
- </listItems>
72
- XML
73
-
74
- releases = @list_item_digestor.list_from_xml_string(xml_response)
75
- releases.size.should == 0
76
-
77
- end
78
-
79
-
80
- end
1
+ # coding: utf-8
2
+ require 'date'
3
+ require File.expand_path('../../spec_helper', __FILE__)
4
+
5
+ describe "ListItemDigestor" do
6
+
7
+ before do
8
+ @list_item_digestor = Sevendigital::ListItemDigestor.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
+ <foo id="123">
15
+ <bar>test</bar>
16
+ </foo>
17
+ XML
18
+
19
+ running {@list_item_digestor.from_xml_doc(xml_response)}.should raise_error(Sevendigital::DigestiveProblem)
20
+ end
21
+
22
+ it "should digest list item xml and populate available properties" do
23
+
24
+ xml_response = load_sample_object_xml("list_item_release")
25
+
26
+ list_item = @list_item_digestor.from_xml_string(xml_response)
27
+
28
+ list_item.id.should == 123456
29
+ list_item.type.should == :release
30
+ list_item.release.id.should == 1136112
31
+ list_item.release.title.should == "Collapse Into Now"
32
+ list_item.release.artist.id.should == 590
33
+ list_item.release.artist.name.should == "R.E.M."
34
+ list_item.release.artist.appears_as == "R.E.M."
35
+ list_item.release.artist.url.should == "http://www.7digital.com/artists/r-e-m"
36
+ list_item.release.url.should == "http://www.7digital.com/artists/r-e-m/collapse-into-now?partner=123"
37
+ list_item.release.image.should == "http://cdn.7static.com/static/img/sleeveart/00/011/361/0001136112_50.jpg"
38
+ list_item.release.explicit_content == false
39
+ end
40
+
41
+ it "should not digest unknown list item xml but throw up (exception) " do
42
+
43
+ xml_response = <<XML
44
+ <listItem id="123">
45
+ <type>track</type>
46
+ <track id="1136112">
47
+ </track>
48
+ </release>
49
+ XML
50
+
51
+ running {@list_item_digestor.from_xml_doc(xml_response)}.should raise_error(Sevendigital::DigestiveProblem)
52
+ end
53
+
54
+ it "should digest xml containing list of list items and return an array" do
55
+
56
+ xml_response = load_sample_object_xml("list_item_list")
57
+
58
+ list_items = @list_item_digestor.list_from_xml_string(xml_response)
59
+ list_items[0].id.should == 1879539
60
+ list_items[0].release.id.should == 1879539
61
+ list_items[1].id.should == 1879543
62
+ list_items[1].release.id.should == 1879543
63
+ list_items.size.should == 2
64
+
65
+ end
66
+
67
+ it "should digest xml containing empty list of list items and return an empty array" do
68
+
69
+ xml_response = <<XML
70
+ <listItems>
71
+ </listItems>
72
+ XML
73
+
74
+ releases = @list_item_digestor.list_from_xml_string(xml_response)
75
+ releases.size.should == 0
76
+
77
+ end
78
+
79
+
80
+ end
@@ -1,31 +1,31 @@
1
- require File.expand_path('../../spec_helper', __FILE__)
2
-
3
- describe "LockerDigestor" do
4
-
5
- before do
6
- @locker_digestor = Sevendigital::LockerDigestor.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 {@locker_digestor.from_xml_string(xml_response)}.should raise_error(Sevendigital::DigestiveProblem)
20
- end
21
-
22
- it "should parse from xml and populate all properties" do
23
-
24
- xml_response = load_sample_object_xml("locker")
25
-
26
- locker = @locker_digestor.from_xml_string(xml_response)
27
- locker.locker_releases.size.should == 1
28
- locker.locker_releases[0].release.id.should == 302123
29
- end
30
-
1
+ require File.expand_path('../../spec_helper', __FILE__)
2
+
3
+ describe "LockerDigestor" do
4
+
5
+ before do
6
+ @locker_digestor = Sevendigital::LockerDigestor.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 {@locker_digestor.from_xml_string(xml_response)}.should raise_error(Sevendigital::DigestiveProblem)
20
+ end
21
+
22
+ it "should parse from xml and populate all properties" do
23
+
24
+ xml_response = load_sample_object_xml("locker")
25
+
26
+ locker = @locker_digestor.from_xml_string(xml_response)
27
+ locker.locker_releases.size.should == 1
28
+ locker.locker_releases[0].release.id.should == 302123
29
+ end
30
+
31
31
  end
@@ -1,70 +1,70 @@
1
- # coding: utf-8
2
- require 'date'
3
- require File.expand_path('../../spec_helper', __FILE__)
4
-
5
- describe "LockerReleaseDigestor" do
6
-
7
- before do
8
- @locker_release_digestor = Sevendigital::LockerReleaseDigestor.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 {@locker_release_digestor.from_xml_string(xml_response)}.should raise_error(Sevendigital::DigestiveProblem)
20
- end
21
-
22
- it "should digest locker release xml and populate all available properties" do
23
-
24
- xml_response = load_sample_object_xml("locker_release")
25
-
26
- locker_release = @locker_release_digestor.from_xml_string(xml_response)
27
-
28
- locker_release.release.id.should == 302123
29
- locker_release.release.title.should == "Original Album Classics"
30
- locker_release.locker_tracks.size.should == 1
31
- locker_release.locker_tracks[0].track.id.should == 3544116
32
- locker_release.locker_tracks[0].track.title.should == "Gloria"
33
- locker_release.locker_tracks[0].remaining_downloads.should == 355
34
- locker_release.locker_tracks[0].download_urls[0].url.should == "http://media3.7digital.com/media/user/downloadtrack?"
35
-
36
- end
37
-
38
- it "should digest xml containing list of locker releases and return a paginated array" do
39
-
40
- xml_response = load_sample_object_xml("locker_release_list")
41
-
42
- locker_releases = @locker_release_digestor.list_from_xml_string(xml_response)
43
- locker_releases[0].release.id.should == 302123
44
- locker_releases[0].locker_tracks[0].track.id.should == 3544116
45
- locker_releases.size.should == 2
46
- locker_releases.total_entries.should == 50
47
-
48
- end
49
-
50
- it "should digest xml containing single item list of locker releases and return a paginated array" do
51
-
52
- xml_response = load_sample_object_xml("locker_release_one_item_list")
53
-
54
- locker_releases = @locker_release_digestor.list_from_xml_string(xml_response)
55
- locker_releases[0].release.id.should == 302123
56
- locker_releases[0].locker_tracks[0].track.id.should == 3544116
57
- locker_releases.size.should == 1
58
- end
59
-
60
- it "should digest xml containing empty list of locker releases and return an empty paginated array" do
61
-
62
- xml_response = load_sample_object_xml("locker_release_list_empty")
63
-
64
- locker_releases = @locker_release_digestor.list_from_xml_string(xml_response)
65
- locker_releases.size.should == 0
66
- locker_releases.total_entries.should == 0
67
-
68
- end
69
-
70
- end
1
+ # coding: utf-8
2
+ require 'date'
3
+ require File.expand_path('../../spec_helper', __FILE__)
4
+
5
+ describe "LockerReleaseDigestor" do
6
+
7
+ before do
8
+ @locker_release_digestor = Sevendigital::LockerReleaseDigestor.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 {@locker_release_digestor.from_xml_string(xml_response)}.should raise_error(Sevendigital::DigestiveProblem)
20
+ end
21
+
22
+ it "should digest locker release xml and populate all available properties" do
23
+
24
+ xml_response = load_sample_object_xml("locker_release")
25
+
26
+ locker_release = @locker_release_digestor.from_xml_string(xml_response)
27
+
28
+ locker_release.release.id.should == 302123
29
+ locker_release.release.title.should == "Original Album Classics"
30
+ locker_release.locker_tracks.size.should == 1
31
+ locker_release.locker_tracks[0].track.id.should == 3544116
32
+ locker_release.locker_tracks[0].track.title.should == "Gloria"
33
+ locker_release.locker_tracks[0].remaining_downloads.should == 355
34
+ locker_release.locker_tracks[0].download_urls[0].url.should == "http://media3.7digital.com/media/user/downloadtrack?"
35
+
36
+ end
37
+
38
+ it "should digest xml containing list of locker releases and return a paginated array" do
39
+
40
+ xml_response = load_sample_object_xml("locker_release_list")
41
+
42
+ locker_releases = @locker_release_digestor.list_from_xml_string(xml_response)
43
+ locker_releases[0].release.id.should == 302123
44
+ locker_releases[0].locker_tracks[0].track.id.should == 3544116
45
+ locker_releases.size.should == 2
46
+ locker_releases.total_entries.should == 50
47
+
48
+ end
49
+
50
+ it "should digest xml containing single item list of locker releases and return a paginated array" do
51
+
52
+ xml_response = load_sample_object_xml("locker_release_one_item_list")
53
+
54
+ locker_releases = @locker_release_digestor.list_from_xml_string(xml_response)
55
+ locker_releases[0].release.id.should == 302123
56
+ locker_releases[0].locker_tracks[0].track.id.should == 3544116
57
+ locker_releases.size.should == 1
58
+ end
59
+
60
+ it "should digest xml containing empty list of locker releases and return an empty paginated array" do
61
+
62
+ xml_response = load_sample_object_xml("locker_release_list_empty")
63
+
64
+ locker_releases = @locker_release_digestor.list_from_xml_string(xml_response)
65
+ locker_releases.size.should == 0
66
+ locker_releases.total_entries.should == 0
67
+
68
+ end
69
+
70
+ end
@@ -1,56 +1,56 @@
1
- # coding: utf-8
2
- require 'date'
3
- require File.expand_path('../../spec_helper', __FILE__)
4
-
5
- describe "LockerTrackDigestor" do
6
-
7
- before do
8
- @locker_track_digestor = Sevendigital::LockerTrackDigestor.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 {@locker_track_digestor.from_xml_string(xml_response)}.should raise_error(Sevendigital::DigestiveProblem)
20
- end
21
-
22
- it "should digest locker track xml and populate all available properties" do
23
-
24
- xml_response = load_sample_object_xml("locker_track")
25
-
26
- locker_track = @locker_track_digestor.from_xml_string(xml_response)
27
-
28
- locker_track.track.id.should == 3544116
29
- locker_track.track.title.should == "Gloria"
30
- locker_track.remaining_downloads.should == 355
31
- locker_track.purchase_date.should == DateTime.new(2009,7,22,11,41,41, 1.quo(24))
32
- locker_track.download_urls.size.should == 1
33
- locker_track.download_urls[0].url.should == "http://media3.7digital.com/media/user/downloadtrack?"
34
-
35
- end
36
-
37
- it "should digest xml containing single item list of locker tracks and return an array" do
38
-
39
- xml_response = load_sample_object_xml("locker_track_list")
40
-
41
- locker_tracks = @locker_track_digestor.list_from_xml_string(xml_response)
42
- locker_tracks[0].track.id.should == 3544116
43
- locker_tracks[0].download_urls[0].url.should == "http://media3.7digital.com/media/user/downloadtrack?"
44
- locker_tracks.size.should == 1
45
- end
46
-
47
- it "should digest xml containing empty list of locker tracks and return an empty array" do
48
-
49
- xml_response = load_sample_object_xml("locker_track_list_empty")
50
-
51
- locker_tracks = @locker_track_digestor.list_from_xml_string(xml_response)
52
- locker_tracks.size.should == 0
53
-
54
- end
55
-
56
- end
1
+ # coding: utf-8
2
+ require 'date'
3
+ require File.expand_path('../../spec_helper', __FILE__)
4
+
5
+ describe "LockerTrackDigestor" do
6
+
7
+ before do
8
+ @locker_track_digestor = Sevendigital::LockerTrackDigestor.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 {@locker_track_digestor.from_xml_string(xml_response)}.should raise_error(Sevendigital::DigestiveProblem)
20
+ end
21
+
22
+ it "should digest locker track xml and populate all available properties" do
23
+
24
+ xml_response = load_sample_object_xml("locker_track")
25
+
26
+ locker_track = @locker_track_digestor.from_xml_string(xml_response)
27
+
28
+ locker_track.track.id.should == 3544116
29
+ locker_track.track.title.should == "Gloria"
30
+ locker_track.remaining_downloads.should == 355
31
+ locker_track.purchase_date.should == DateTime.new(2009,7,22,11,41,41, 1.quo(24))
32
+ locker_track.download_urls.size.should == 1
33
+ locker_track.download_urls[0].url.should == "http://media3.7digital.com/media/user/downloadtrack?"
34
+
35
+ end
36
+
37
+ it "should digest xml containing single item list of locker tracks and return an array" do
38
+
39
+ xml_response = load_sample_object_xml("locker_track_list")
40
+
41
+ locker_tracks = @locker_track_digestor.list_from_xml_string(xml_response)
42
+ locker_tracks[0].track.id.should == 3544116
43
+ locker_tracks[0].download_urls[0].url.should == "http://media3.7digital.com/media/user/downloadtrack?"
44
+ locker_tracks.size.should == 1
45
+ end
46
+
47
+ it "should digest xml containing empty list of locker tracks and return an empty array" do
48
+
49
+ xml_response = load_sample_object_xml("locker_track_list_empty")
50
+
51
+ locker_tracks = @locker_track_digestor.list_from_xml_string(xml_response)
52
+ locker_tracks.size.should == 0
53
+
54
+ end
55
+
56
+ end