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,86 +1,99 @@
1
- # encoding: UTF-8
2
- require File.expand_path('../../spec_helper', __FILE__)
3
-
4
- describe "Artist integration test" do
5
-
6
- before do
7
- @api_client = Sevendigital::Client.new(
8
- File.join(File.dirname(__FILE__),"sevendigital_spec.yml"),
9
- :verbose => "verbose"
10
- )
11
-
12
- end
13
-
14
- it "should browse artists" do
15
- artists = @api_client.artist.browse("KEA")
16
- artists.current_page.should == 1
17
- artists.total_entries.should >= 1
18
- artists.each do |artist|
19
- artist.name[0..2].downcase.should == "kea"
20
- artist.id.should >= 1
21
- artist.url.should =~ VALID_7DIGITAL_URL
22
- end
23
- end
24
-
25
- it "should get artist chart" do
26
- chart = @api_client.artist.get_chart(:period => :year, :toDate => 20111231)
27
- chart.current_page.should == 1
28
- chart.total_entries.should >= 20
29
- chart.first.position.should == 1
30
- chart.last.position.should == 10
31
- chart.first.item.id.should == 142111
32
- chart.first.item.name.should == "Adele"
33
- end
34
-
35
- it "should get artist details" do
36
- artist = @api_client.artist.get_details(1)
37
- artist.name.should == "Keane"
38
- artist.id.should == 1
39
- end
40
-
41
- it "should get artist releases" do
42
- releases = @api_client.artist.get_details(1).get_releases(:type => :single)
43
- releases.current_page.should == 1
44
- releases.total_entries.should >= 1
45
- releases.each do |release|
46
- release.artist.name.should == "Keane"
47
- release.id.should >= 1
48
- release.title.should_not be_empty
49
- release.label.should_not be_nil
50
- release.year.should >= 1990
51
- release.type.should == :single
52
- end
53
- end
54
-
55
- it "should search and find an artist" do
56
- artists = @api_client.artist.search("keane")
57
- artists.current_page.should == 1
58
- artists.total_entries.should >= 1
59
- artists.first.name.should == "Keane"
60
- artists.first.id.should == 1
61
- end
62
-
63
- it "should get top tracks" do
64
- tracks = @api_client.artist.get_details(1).get_top_tracks
65
- tracks.current_page.should == 1
66
- tracks.total_entries.should >= 1
67
- tracks.each do |track|
68
- track.artist.name.should == "Keane"
69
- track.id.should >= 1
70
- track.title.should_not be_empty
71
- track.release.should_not be_nil
72
- end
73
- end
74
-
75
- it "should get similar artists" do
76
- artists = @api_client.artist.get_details(1).get_similar
77
- artists.current_page.should == 1
78
- artists.total_entries.should >= 1
79
- artists.each do |artist|
80
- artist.name.should_not be_empty
81
- artist.id.should >= 1
82
- artist.url.should =~ VALID_7DIGITAL_URL
83
- end
84
- end
85
-
86
- end
1
+ # encoding: UTF-8
2
+ require File.expand_path('../../spec_helper', __FILE__)
3
+
4
+ describe "Artist integration test" do
5
+
6
+ before do
7
+ @api_client = Sevendigital::Client.new(
8
+ File.join(File.dirname(__FILE__),"sevendigital_spec.yml"),
9
+ :verbose => "verbose"
10
+ )
11
+
12
+ end
13
+
14
+ it "should browse artists" do
15
+ artists = @api_client.artist.browse("KEA")
16
+ artists.current_page.should == 1
17
+ artists.total_entries.should >= 1
18
+ artists.each do |artist|
19
+ artist.name[0..2].downcase.should == "kea"
20
+ artist.id.should >= 1
21
+ artist.url.should =~ VALID_7DIGITAL_URL_WITH_PARTNERID
22
+ end
23
+ end
24
+
25
+ it "should get artist chart" do
26
+ chart = @api_client.artist.get_chart(:period => :year, :toDate => 20111231)
27
+ chart.current_page.should == 1
28
+ chart.total_entries.should >= 20
29
+ chart.first.position.should == 1
30
+ chart.last.position.should == 10
31
+ chart.first.item.id.should == 142111
32
+ chart.first.item.name.should == "Adele"
33
+ end
34
+
35
+ it "should get artist details" do
36
+ artist = @api_client.artist.get_details(1)
37
+ artist.name.should == "Keane"
38
+ artist.id.should == 1
39
+ artist.image.should =~ VALID_7DIGITAL_IMAGE
40
+ end
41
+
42
+ it "should get artist releases" do
43
+ releases = @api_client.artist.get_details(1).get_releases(:type => :single)
44
+ releases.current_page.should == 1
45
+ releases.total_entries.should >= 1
46
+ releases.each do |release|
47
+ release.artist.name.should == "Keane"
48
+ release.id.should >= 1
49
+ release.title.should_not be_empty
50
+ release.label.should_not be_nil
51
+ release.year.should >= 1990
52
+ release.type.should == :single
53
+ end
54
+ end
55
+
56
+ it "should search and find an artist" do
57
+ artists = @api_client.artist.search("keane")
58
+ artists.current_page.should == 1
59
+ artists.total_entries.should >= 1
60
+ artists.first.name.should == "Keane"
61
+ artists.first.id.should == 1
62
+ end
63
+
64
+ it "should get top tracks" do
65
+ tracks = @api_client.artist.get_details(1).get_top_tracks
66
+ tracks.current_page.should == 1
67
+ tracks.total_entries.should >= 1
68
+ tracks.each do |track|
69
+ track.artist.name.should == "Keane"
70
+ track.id.should >= 1
71
+ track.title.should_not be_empty
72
+ track.release.should_not be_nil
73
+ end
74
+ end
75
+
76
+ it "should get similar artists" do
77
+ artists = @api_client.artist.get_details(1).get_similar
78
+ artists.current_page.should == 1
79
+ artists.total_entries.should >= 1
80
+ artists.each do |artist|
81
+ artist.name.should_not be_empty
82
+ artist.id.should >= 1
83
+ artist.url.should =~ VALID_7DIGITAL_URL
84
+ end
85
+ end
86
+
87
+ it "should get top by tag" do
88
+ artists = @api_client.artist.get_top_by_tag("pop")
89
+ artists.current_page.should == 1
90
+ artists.total_entries.should >= 1
91
+ artists.each do |artist|
92
+ artist.name.should_not be_empty
93
+ artist.id.should >= 1
94
+ artist.url.should =~ VALID_7DIGITAL_URL_WITH_PARTNERID
95
+ artist.image.should =~ VALID_7DIGITAL_IMAGE
96
+ end
97
+ end
98
+
99
+ end
@@ -1,18 +1,18 @@
1
- # encoding: UTF-8
2
- require File.expand_path('../../spec_helper', __FILE__)
3
-
4
- describe "Country integration tests" do
5
-
6
- before do
7
- @api_client = Sevendigital::Client.new(
8
- File.join(File.dirname(__FILE__),"sevendigital_spec.yml"),
9
- :verbose => "verbose"
10
- )
11
-
12
- end
13
-
14
- it "should resolve country from IP address" do
15
- @api_client.country.resolve("1.2.3.4").should == 'AU'
16
- end
17
-
18
- end
1
+ # encoding: UTF-8
2
+ require File.expand_path('../../spec_helper', __FILE__)
3
+
4
+ describe "Country integration tests" do
5
+
6
+ before do
7
+ @api_client = Sevendigital::Client.new(
8
+ File.join(File.dirname(__FILE__),"sevendigital_spec.yml"),
9
+ :verbose => "verbose"
10
+ )
11
+
12
+ end
13
+
14
+ it "should resolve country from IP address" do
15
+ @api_client.country.resolve("1.2.3.4").should == 'AU'
16
+ end
17
+
18
+ end
@@ -1,22 +1,22 @@
1
- # encoding: UTF-8
2
- require File.expand_path('../../spec_helper', __FILE__)
3
-
4
- describe "List integration tests" do
5
-
6
- before do
7
- @api_client = Sevendigital::Client.new(
8
- File.join(File.dirname(__FILE__),"sevendigital_spec.yml"),
9
- :verbose => "verbose"
10
- )
11
-
12
- end
13
-
14
- it "should get editorial list" do
15
- list = @api_client.list.get_editorial_list("featured_albums")
16
- list.key.should == "featured_albums"
17
- list.id.should > 0
18
- list.list_items.size.should > 1
19
- list.list_items[0].release.type.should == :album
20
- end
21
-
22
- end
1
+ # encoding: UTF-8
2
+ require File.expand_path('../../spec_helper', __FILE__)
3
+
4
+ describe "List integration tests" do
5
+
6
+ before do
7
+ @api_client = Sevendigital::Client.new(
8
+ File.join(File.dirname(__FILE__),"sevendigital_spec.yml"),
9
+ :verbose => "verbose"
10
+ )
11
+
12
+ end
13
+
14
+ it "should get editorial list" do
15
+ list = @api_client.list.get_editorial_list("new_releases")
16
+ list.key.should == "new_releases"
17
+ list.id.should > 0
18
+ list.list_items.size.should > 1
19
+ list.list_items[0].release.type.should == :album
20
+ end
21
+
22
+ end
@@ -1,24 +1,24 @@
1
- # encoding: UTF-8
2
- require File.expand_path('../../spec_helper', __FILE__)
3
- require 'date'
4
-
5
- describe "Purchasing integration tests" do
6
-
7
- before do
8
- @api_client = Sevendigital::Client.new(
9
- File.join(File.dirname(__FILE__),"sevendigital_spec.yml"),
10
- :verbose => "verbose"
11
- )
12
-
13
- end
14
-
15
- it "should create and purchase basket" do
16
- test_track_id = 8515447
17
- basket = @api_client.basket.create
18
- basket.add_item(769006, test_track_id)
19
-
20
- user = @api_client.user.authenticate("test@7digital.com", "password")
21
- purchase_response = user.purchase_basket!(basket.id)
22
- purchase_response.locker_releases.first.locker_tracks.first.track.id.should == test_track_id
23
- end
24
- end
1
+ # encoding: UTF-8
2
+ require File.expand_path('../../spec_helper', __FILE__)
3
+ require 'date'
4
+
5
+ describe "Purchasing integration tests" do
6
+
7
+ before do
8
+ @api_client = Sevendigital::Client.new(
9
+ File.join(File.dirname(__FILE__),"sevendigital_spec.yml"),
10
+ :verbose => "verbose"
11
+ )
12
+
13
+ end
14
+
15
+ it "should create and purchase basket" do
16
+ test_track_id = 8515447
17
+ basket = @api_client.basket.create
18
+ basket.add_item(769006, test_track_id)
19
+
20
+ user = @api_client.user.authenticate("test@7digital.com", "password")
21
+ purchase_response = user.purchase_basket!(basket.id)
22
+ purchase_response.locker_releases.first.locker_tracks.first.track.id.should == test_track_id
23
+ end
24
+ end
@@ -1,34 +1,34 @@
1
- # encoding: UTF-8
2
- require File.expand_path('../../spec_helper', __FILE__)
3
- require 'date'
4
-
5
- describe "Release integration tests" do
6
-
7
- before do
8
- @api_client = Sevendigital::Client.new(
9
- File.join(File.dirname(__FILE__),"sevendigital_spec.yml"),
10
- :verbose => "verbose"
11
- )
12
-
13
- end
14
-
15
- it "should get releases by date" do
16
- releases = @api_client.release.get_by_date(Date.today, Date.today)
17
- releases.each do |release|
18
- release.id.should >= 1
19
- release.title.should_not be_empty
20
- release.artist.should_not be_nil
21
- release.price.value.should >= 0
22
- release.release_date.to_date.should == Date.today
23
- end
24
- end
25
-
26
- it "should search and find releases" do
27
- releases = @api_client.release.search("love", :page_size => 20, :page=>2)
28
- releases.size.should == 20
29
- releases.current_page.should == 2
30
- releases.total_entries.should > 100
31
- releases.first.price.value.should > 0
32
- end
33
-
34
- end
1
+ # encoding: UTF-8
2
+ require File.expand_path('../../spec_helper', __FILE__)
3
+ require 'date'
4
+
5
+ describe "Release integration tests" do
6
+
7
+ before do
8
+ @api_client = Sevendigital::Client.new(
9
+ File.join(File.dirname(__FILE__),"sevendigital_spec.yml"),
10
+ :verbose => "verbose"
11
+ )
12
+
13
+ end
14
+
15
+ it "should get releases by date" do
16
+ releases = @api_client.release.get_by_date(Date.today, Date.today)
17
+ releases.each do |release|
18
+ release.id.should >= 1
19
+ release.title.should_not be_empty
20
+ release.artist.should_not be_nil
21
+ release.price.value.should >= 0
22
+ release.release_date.to_date.should == Date.today
23
+ end
24
+ end
25
+
26
+ it "should search and find releases" do
27
+ releases = @api_client.release.search("love", :page_size => 20, :page=>2)
28
+ releases.size.should == 20
29
+ releases.current_page.should == 2
30
+ releases.total_entries.should > 100
31
+ releases.first.price.value.should > 0
32
+ end
33
+
34
+ end
@@ -1,5 +1,5 @@
1
- #Your API access key and secret
2
- oauth_consumer_key: "YOUR_KEY_HERE"
3
- oauth_consumer_secret: "YOUR_SECRET_HERE"
4
-
1
+ #Your API access key and secret
2
+ oauth_consumer_key: "YOUR_KEY_HERE"
3
+ oauth_consumer_secret: "YOUR_SECRET_HERE"
4
+
5
5
  lazy_load: false
@@ -1,23 +1,38 @@
1
- # encoding: UTF-8
2
- require File.expand_path('../../spec_helper', __FILE__)
3
- require 'date'
4
-
5
- describe "Track integration tests" do
6
-
7
- before do
8
- @api_client = Sevendigital::Client.new(
9
- File.join(File.dirname(__FILE__),"sevendigital_spec.yml"),
10
- :verbose => "verbose"
11
- )
12
-
13
- end
14
-
15
- it "should search and find a track with a price" do
16
- tracks = @api_client.track.search("radiohead creep")
17
- tracks.current_page.should == 1
18
- tracks.first.artist.appears_as.should == "Radiohead"
19
- tracks.first.release.should_not be_nil
20
- # not working yet on 7digital API tracks.first.price.value.should > 0
21
- end
22
-
23
- end
1
+ # encoding: UTF-8
2
+ require File.expand_path('../../spec_helper', __FILE__)
3
+ require 'date'
4
+ require 'net/http'
5
+
6
+ describe "Track integration tests" do
7
+
8
+ before do
9
+ @api_client = Sevendigital::Client.new(
10
+ File.join(File.dirname(__FILE__),"sevendigital_spec.yml"),
11
+ :verbose => "verbose"
12
+ )
13
+
14
+ end
15
+
16
+ it "should search and find a track with a price" do
17
+ tracks = @api_client.track.search("radiohead creep")
18
+ tracks.current_page.should == 1
19
+ tracks.first.artist.appears_as.should == "Radiohead"
20
+ tracks.first.release.should_not be_nil
21
+ tracks.first.type.should == :audio
22
+ # not working yet on 7digital API tracks.first.price.value.should > 0
23
+ end
24
+
25
+ it "should provide a working preview clip link" do
26
+ track = @api_client.track.get_details(123456)
27
+
28
+ res = Net::HTTP.get_response(URI.parse(track.preview_url))
29
+
30
+ # req = Net::HTTP::Get.new(track.preview_url)
31
+ # res = http.request(req)
32
+ # }
33
+ res["Content-Type"].should == "audio/mpeg"
34
+
35
+
36
+ end
37
+
38
+ end