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,53 +1,53 @@
1
- require File.expand_path('../../spec_helper', __FILE__)
2
-
3
- describe "ChartItemDigestor" do
4
-
5
- before do
6
- @chart_item_digestor = Sevendigital::ChartItemDigestor.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 {@chart_item_digestor.from_xml_string(xml_response)}.should raise_error(Sevendigital::DigestiveProblem)
18
- end
19
-
20
- it "should digest artist chart item" do
21
- xml_response = load_sample_object_xml("artist_chart_item")
22
-
23
- chart_item = @chart_item_digestor.from_xml_string(xml_response)
24
- chart_item.position.should == 2
25
- chart_item.change.should == :up
26
- chart_item.item.id.should == 33154
27
- chart_item.item.class.should == Sevendigital::Artist
28
- end
29
-
30
-
31
- it "should digest release chart item" do
32
- xml_response = load_sample_object_xml("release_chart_item")
33
-
34
- chart_item = @chart_item_digestor.from_xml_string(xml_response)
35
- chart_item.position.should == 1
36
- chart_item.change.should == :up
37
- chart_item.item.id.should == 932151
38
- chart_item.item.class.should == Sevendigital::Release
39
- end
40
-
41
- it "should digest track chart item" do
42
-
43
- xml_response = load_sample_object_xml("track_chart_item")
44
-
45
- chart_item = @chart_item_digestor.from_xml_string(xml_response)
46
- chart_item.position.should == 99
47
- chart_item.change.should == :down
48
- chart_item.item.id.should == 2825304
49
- chart_item.item.class.should == Sevendigital::Track
50
- end
51
-
52
-
1
+ require File.expand_path('../../spec_helper', __FILE__)
2
+
3
+ describe "ChartItemDigestor" do
4
+
5
+ before do
6
+ @chart_item_digestor = Sevendigital::ChartItemDigestor.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 {@chart_item_digestor.from_xml_string(xml_response)}.should raise_error(Sevendigital::DigestiveProblem)
18
+ end
19
+
20
+ it "should digest artist chart item" do
21
+ xml_response = load_sample_object_xml("artist_chart_item")
22
+
23
+ chart_item = @chart_item_digestor.from_xml_string(xml_response)
24
+ chart_item.position.should == 2
25
+ chart_item.change.should == :up
26
+ chart_item.item.id.should == 33154
27
+ chart_item.item.class.should == Sevendigital::Artist
28
+ end
29
+
30
+
31
+ it "should digest release chart item" do
32
+ xml_response = load_sample_object_xml("release_chart_item")
33
+
34
+ chart_item = @chart_item_digestor.from_xml_string(xml_response)
35
+ chart_item.position.should == 1
36
+ chart_item.change.should == :up
37
+ chart_item.item.id.should == 932151
38
+ chart_item.item.class.should == Sevendigital::Release
39
+ end
40
+
41
+ it "should digest track chart item" do
42
+
43
+ xml_response = load_sample_object_xml("track_chart_item")
44
+
45
+ chart_item = @chart_item_digestor.from_xml_string(xml_response)
46
+ chart_item.position.should == 99
47
+ chart_item.change.should == :down
48
+ chart_item.item.id.should == 2825304
49
+ chart_item.item.class.should == Sevendigital::Track
50
+ end
51
+
52
+
53
53
  end
@@ -1,33 +1,33 @@
1
- # coding: utf-8
2
- require File.expand_path('../../spec_helper', __FILE__)
3
-
4
- describe "CountryDigestor" do
5
-
6
- before do
7
- @country_digestor = Sevendigital::CountryDigestor.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 {@country_digestor.from_xml_string(xml_response)}.should raise_error(Sevendigital::DigestiveProblem)
19
- end
20
-
21
- it "should parse from xml and return country code" do
22
-
23
- xml_response = <<XML
24
- <GeoIpLookup>
25
- <countryCode>SK</countryCode>
26
- </GeoIpLookup>
27
- XML
28
-
29
- @country_digestor.from_xml_string(xml_response, 'GeoIpLookup').should == 'SK'
30
-
31
- end
32
-
33
- end
1
+ # coding: utf-8
2
+ require File.expand_path('../../spec_helper', __FILE__)
3
+
4
+ describe "CountryDigestor" do
5
+
6
+ before do
7
+ @country_digestor = Sevendigital::CountryDigestor.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 {@country_digestor.from_xml_string(xml_response)}.should raise_error(Sevendigital::DigestiveProblem)
19
+ end
20
+
21
+ it "should parse from xml and return country code" do
22
+
23
+ xml_response = <<XML
24
+ <GeoIpLookup>
25
+ <countryCode>SK</countryCode>
26
+ </GeoIpLookup>
27
+ XML
28
+
29
+ @country_digestor.from_xml_string(xml_response, 'GeoIpLookup').should == 'SK'
30
+
31
+ end
32
+
33
+ end
@@ -1,34 +1,34 @@
1
- require File.expand_path('../../spec_helper', __FILE__)
2
-
3
- describe "Digestor" do
4
-
5
- before do
6
- @digestor = Sevendigital::Digestor.new(Sevendigital::Client.new(nil))
7
- end
8
-
9
- it "should get nil if an optional element is missing" do
10
-
11
- xml = "<artist>test</artist>"
12
- result = @digestor.get_optional_value(Nokogiri::XML(xml), "release")
13
- result.should == nil
14
-
15
- end
16
-
17
- it "should get the value of optional element" do
18
-
19
- xml = "<release>test</release>"
20
- result = @digestor.get_optional_value(Nokogiri::XML(xml), "release")
21
- result.should == "test"
22
-
23
- end
24
-
25
- it "should get an optional value" do
26
-
27
- xml = "<release>123</release>"
28
- result = @digestor.get_optional_value(Nokogiri::XML(xml), "release") {|v| v.to_i}
29
- result.should == 123
30
-
31
- end
32
-
33
-
1
+ require File.expand_path('../../spec_helper', __FILE__)
2
+
3
+ describe "Digestor" do
4
+
5
+ before do
6
+ @digestor = Sevendigital::Digestor.new(Sevendigital::Client.new(nil))
7
+ end
8
+
9
+ it "should get nil if an optional element is missing" do
10
+
11
+ xml = "<artist>test</artist>"
12
+ result = @digestor.get_optional_value(Nokogiri::XML(xml), "release")
13
+ result.should == nil
14
+
15
+ end
16
+
17
+ it "should get the value of optional element" do
18
+
19
+ xml = "<release>test</release>"
20
+ result = @digestor.get_optional_value(Nokogiri::XML(xml), "release")
21
+ result.should == "test"
22
+
23
+ end
24
+
25
+ it "should get an optional value" do
26
+
27
+ xml = "<release>123</release>"
28
+ result = @digestor.get_optional_value(Nokogiri::XML(xml), "release") {|v| v.to_i}
29
+ result.should == 123
30
+
31
+ end
32
+
33
+
34
34
  end
@@ -1,41 +1,41 @@
1
- require File.expand_path('../../spec_helper', __FILE__)
2
-
3
- describe "DownloadUrlDigestor" do
4
-
5
- before do
6
- @download_url_digestor = Sevendigital::DownloadUrlDigestor.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 {@download_url_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 = <<XML
25
- <downloadUrl>
26
- <url>http://media3.7digital.com/media/user/downloadtrack?</url>
27
- <format id="17">
28
- <fileFormat>MP3</fileFormat>
29
- <bitRate>320</bitRate>
30
- <drmFree>true</drmFree>
31
- </format>
32
- </downloadUrl>
33
- XML
34
-
35
- download_url = @download_url_digestor.from_xml_string(xml_response)
36
- download_url.url.should == "http://media3.7digital.com/media/user/downloadtrack?"
37
- download_url.format.id.should == 17
38
- download_url.format.file_format.should == :MP3
39
- end
40
-
1
+ require File.expand_path('../../spec_helper', __FILE__)
2
+
3
+ describe "DownloadUrlDigestor" do
4
+
5
+ before do
6
+ @download_url_digestor = Sevendigital::DownloadUrlDigestor.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 {@download_url_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 = <<XML
25
+ <downloadUrl>
26
+ <url>http://media3.7digital.com/media/user/downloadtrack?</url>
27
+ <format id="17">
28
+ <fileFormat>MP3</fileFormat>
29
+ <bitRate>320</bitRate>
30
+ <drmFree>true</drmFree>
31
+ </format>
32
+ </downloadUrl>
33
+ XML
34
+
35
+ download_url = @download_url_digestor.from_xml_string(xml_response)
36
+ download_url.url.should == "http://media3.7digital.com/media/user/downloadtrack?"
37
+ download_url.format.id.should == 17
38
+ download_url.format.file_format.should == :MP3
39
+ end
40
+
41
41
  end
@@ -1,39 +1,39 @@
1
- require File.expand_path('../../spec_helper', __FILE__)
2
-
3
- describe "FormatDigestor" do
4
-
5
- before do
6
- @format_digestor = Sevendigital::FormatDigestor.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 {@format_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 = <<XML
25
- <format id="17">
26
- <fileFormat>MP3</fileFormat>
27
- <bitRate>320</bitRate>
28
- <drmFree>True</drmFree>
29
- </format>
30
- XML
31
-
32
- format = @format_digestor.from_xml_string(xml_response)
33
- format.id.should == 17
34
- format.file_format.should == :MP3
35
- format.bit_rate.should == 320
36
- format.drm_free.should == true
37
- end
38
-
1
+ require File.expand_path('../../spec_helper', __FILE__)
2
+
3
+ describe "FormatDigestor" do
4
+
5
+ before do
6
+ @format_digestor = Sevendigital::FormatDigestor.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 {@format_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 = <<XML
25
+ <format id="17">
26
+ <fileFormat>MP3</fileFormat>
27
+ <bitRate>320</bitRate>
28
+ <drmFree>True</drmFree>
29
+ </format>
30
+ XML
31
+
32
+ format = @format_digestor.from_xml_string(xml_response)
33
+ format.id.should == 17
34
+ format.file_format.should == :MP3
35
+ format.bit_rate.should == 320
36
+ format.drm_free.should == true
37
+ end
38
+
39
39
  end
@@ -1,34 +1,34 @@
1
- require File.expand_path('../../spec_helper', __FILE__)
2
-
3
- describe "LabelDigestor" do
4
-
5
- before do
6
- @label_digestor = Sevendigital::LabelDigestor.new(nil)
7
- end
8
-
9
-
10
- it "should not digest from invalid xml but throw up (exception)" do
11
-
12
- xml_response = <<XML
13
- <release id="123">
14
- <name>expected artist name</name>
15
- </release>
16
- XML
17
-
18
- running {@label_digestor.from_xml_string(xml_response)}.should raise_error(Sevendigital::DigestiveProblem)
19
- end
20
-
21
- it "should digest label xml and populate all properties" do
22
-
23
- xml_response = <<XML
24
- <label id="123">
25
- <name>expected label name</name>
26
- </label>
27
- XML
28
-
29
- label = @label_digestor.from_xml_string(xml_response)
30
- label.id.should == 123
31
- label.name.should == "expected label name"
32
- end
33
-
1
+ require File.expand_path('../../spec_helper', __FILE__)
2
+
3
+ describe "LabelDigestor" do
4
+
5
+ before do
6
+ @label_digestor = Sevendigital::LabelDigestor.new(nil)
7
+ end
8
+
9
+
10
+ it "should not digest from invalid xml but throw up (exception)" do
11
+
12
+ xml_response = <<XML
13
+ <release id="123">
14
+ <name>expected artist name</name>
15
+ </release>
16
+ XML
17
+
18
+ running {@label_digestor.from_xml_string(xml_response)}.should raise_error(Sevendigital::DigestiveProblem)
19
+ end
20
+
21
+ it "should digest label xml and populate all properties" do
22
+
23
+ xml_response = <<XML
24
+ <label id="123">
25
+ <name>expected label name</name>
26
+ </label>
27
+ XML
28
+
29
+ label = @label_digestor.from_xml_string(xml_response)
30
+ label.id.should == 123
31
+ label.name.should == "expected label name"
32
+ end
33
+
34
34
  end