7digital 0.0.7 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +8 -1
- data/lib/sevendigital.rb +4 -2
- data/lib/sevendigital/api_operator.rb +92 -94
- data/lib/sevendigital/api_operator_cached.rb +55 -33
- data/lib/sevendigital/api_request.rb +50 -54
- data/lib/sevendigital/client.rb +15 -6
- data/lib/sevendigital/client_configuration.rb +0 -3
- data/lib/sevendigital/client_digestors.rb +15 -0
- data/lib/sevendigital/client_managers.rb +11 -1
- data/lib/sevendigital/digestion_tract/api_response_digestor.rb +31 -40
- data/lib/sevendigital/digestion_tract/artist_digestor.rb +16 -13
- data/lib/sevendigital/digestion_tract/basket_digestor.rb +5 -5
- data/lib/sevendigital/digestion_tract/basket_item_digestor.rb +12 -12
- data/lib/sevendigital/digestion_tract/chart_item_digestor.rb +17 -11
- data/lib/sevendigital/digestion_tract/country_digestor.rb +16 -0
- data/lib/sevendigital/digestion_tract/digestor.rb +82 -28
- data/lib/sevendigital/digestion_tract/download_url_digestor.rb +10 -7
- data/lib/sevendigital/digestion_tract/format_digestor.rb +11 -9
- data/lib/sevendigital/digestion_tract/label_digestor.rb +8 -7
- data/lib/sevendigital/digestion_tract/list_digestor.rb +24 -0
- data/lib/sevendigital/digestion_tract/list_item_digestor.rb +26 -0
- data/lib/sevendigital/digestion_tract/locker_digestor.rb +9 -5
- data/lib/sevendigital/digestion_tract/locker_release_digestor.rb +13 -7
- data/lib/sevendigital/digestion_tract/locker_track_digestor.rb +13 -9
- data/lib/sevendigital/digestion_tract/oauth_access_token_digestor.rb +7 -3
- data/lib/sevendigital/digestion_tract/oauth_request_token_digestor.rb +7 -3
- data/lib/sevendigital/digestion_tract/pager_digestor.rb +13 -9
- data/lib/sevendigital/digestion_tract/price_digestor.rb +15 -12
- data/lib/sevendigital/digestion_tract/release_digestor.rb +26 -34
- data/lib/sevendigital/digestion_tract/tag_digestor.rb +8 -7
- data/lib/sevendigital/digestion_tract/track_digestor.rb +27 -28
- data/lib/sevendigital/digestion_tract/user_card_digestor.rb +9 -8
- data/lib/sevendigital/digestion_tract/user_digestor.rb +8 -7
- data/lib/sevendigital/management/artist_manager.rb +9 -11
- data/lib/sevendigital/management/basket_manager.rb +4 -4
- data/lib/sevendigital/management/country_manager.rb +11 -0
- data/lib/sevendigital/management/list_manager.rb +18 -0
- data/lib/sevendigital/management/oauth_manager.rb +2 -2
- data/lib/sevendigital/management/release_manager.rb +9 -11
- data/lib/sevendigital/management/tag_manager.rb +1 -1
- data/lib/sevendigital/management/track_manager.rb +4 -5
- data/lib/sevendigital/management/user_card_manager.rb +2 -2
- data/lib/sevendigital/management/user_manager.rb +9 -4
- data/lib/sevendigital/model/api_response.rb +12 -4
- data/lib/sevendigital/model/artist.rb +5 -0
- data/lib/sevendigital/model/list.rb +5 -0
- data/lib/sevendigital/model/list_item.rb +9 -0
- data/lib/sevendigital/model/release.rb +2 -2
- data/lib/sevendigital/model/sevendigital_object.rb +1 -1
- data/lib/sevendigital/model/user.rb +12 -1
- data/lib/sevendigital/pager.rb +2 -6
- data/lib/sevendigital/version.rb +1 -1
- data/spec/api_operator_cached_spec.rb +14 -14
- data/spec/api_operator_spec.rb +18 -34
- data/spec/digestion_tract/api_response_digestor_spec.rb +26 -25
- data/spec/digestion_tract/artist_digestor_spec.rb +9 -9
- data/spec/digestion_tract/basket_digestor_spec.rb +2 -2
- data/spec/digestion_tract/basket_item_digestor_spec.rb +4 -4
- data/spec/digestion_tract/chart_digestor_spec.rb +4 -4
- data/spec/digestion_tract/country_digestor_spec.rb +33 -0
- data/spec/digestion_tract/digestor_spec.rb +34 -0
- data/spec/digestion_tract/download_url_digestor_spec.rb +2 -2
- data/spec/digestion_tract/format_digestor_spec.rb +2 -2
- data/spec/digestion_tract/label_digestor_spec.rb +2 -2
- data/spec/digestion_tract/list_digestor_spec.rb +32 -0
- data/spec/digestion_tract/list_item_digestor_spec.rb +80 -0
- data/spec/digestion_tract/locker_digestor_spec.rb +2 -2
- data/spec/digestion_tract/locker_release_digestor_spec.rb +5 -5
- data/spec/digestion_tract/locker_track_digestor_spec.rb +4 -4
- data/spec/digestion_tract/oauth_access_token_digestor_spec.rb +2 -2
- data/spec/digestion_tract/oauth_request_token_digestor_spec.rb +2 -2
- data/spec/digestion_tract/pager_digestor_spec.rb +3 -3
- data/spec/digestion_tract/price_digestor_spec.rb +4 -4
- data/spec/digestion_tract/release_digestor_spec.rb +19 -5
- data/spec/digestion_tract/tag_digestor_spec.rb +3 -3
- data/spec/digestion_tract/track_digestor_spec.rb +4 -4
- data/spec/digestion_tract/user_card_digestor_spec.rb +5 -5
- data/spec/digestion_tract/user_digestor_spec.rb +4 -6
- data/spec/integration/artist_spec.rb +86 -0
- data/spec/integration/country_spec.rb +18 -0
- data/spec/integration/list_spec.rb +22 -0
- data/spec/integration/purchasing_spec.rb +24 -0
- data/spec/integration/release_spec.rb +34 -0
- data/spec/integration/sevendigital_spec.yml +5 -0
- data/spec/integration/track_spec.rb +23 -0
- data/spec/integration/user_spec.rb +22 -0
- data/spec/management/artist_manager_spec.rb +32 -11
- data/spec/management/basket_manager_spec.rb +4 -4
- data/spec/management/country_manager_spec.rb +34 -0
- data/spec/management/list_manager_spec.rb +27 -0
- data/spec/management/oauth_manager_spec.rb +4 -4
- data/spec/management/release_manager_spec.rb +13 -13
- data/spec/management/tag_manager_spec.rb +1 -1
- data/spec/management/track_manager_spec.rb +4 -4
- data/spec/management/user_card_manager_spec.rb +2 -2
- data/spec/management/user_manager_spec.rb +20 -4
- data/spec/model/api_response_spec.rb +3 -3
- data/spec/model/artist_spec.rb +2 -2
- data/spec/model/sevendigital_object_spec.rb +4 -4
- data/spec/model/user_spec.rb +21 -0
- data/spec/spec_helper.rb +31 -11
- data/spec/test-xml/methods/country/resolve.xml +7 -0
- data/spec/test-xml/methods/editorial/list.xml +171 -0
- data/spec/test-xml/methods/user/details.xml +5 -0
- data/spec/test-xml/objects/artist.xml +1 -0
- data/spec/test-xml/objects/list.xml +89 -0
- data/spec/test-xml/objects/list_item_list.xml +86 -0
- data/spec/test-xml/objects/list_item_release.xml +14 -0
- data/spec/test-xml/objects/nested_release_list.xml +23 -0
- metadata +126 -273
- data/lib/sevendigital/peachy_patchy.rb +0 -9
- data/lib/sevendigital/proxy_police.rb +0 -28
- data/spec/coverage/assets/0.3.9/app.js +0 -66
- data/spec/coverage/assets/0.3.9/fancybox/blank.gif +0 -0
- data/spec/coverage/assets/0.3.9/fancybox/fancy_close.png +0 -0
- data/spec/coverage/assets/0.3.9/fancybox/fancy_loading.png +0 -0
- data/spec/coverage/assets/0.3.9/fancybox/fancy_nav_left.png +0 -0
- data/spec/coverage/assets/0.3.9/fancybox/fancy_nav_right.png +0 -0
- data/spec/coverage/assets/0.3.9/fancybox/fancy_shadow_e.png +0 -0
- data/spec/coverage/assets/0.3.9/fancybox/fancy_shadow_n.png +0 -0
- data/spec/coverage/assets/0.3.9/fancybox/fancy_shadow_ne.png +0 -0
- data/spec/coverage/assets/0.3.9/fancybox/fancy_shadow_nw.png +0 -0
- data/spec/coverage/assets/0.3.9/fancybox/fancy_shadow_s.png +0 -0
- data/spec/coverage/assets/0.3.9/fancybox/fancy_shadow_se.png +0 -0
- data/spec/coverage/assets/0.3.9/fancybox/fancy_shadow_sw.png +0 -0
- data/spec/coverage/assets/0.3.9/fancybox/fancy_shadow_w.png +0 -0
- data/spec/coverage/assets/0.3.9/fancybox/fancy_title_left.png +0 -0
- data/spec/coverage/assets/0.3.9/fancybox/fancy_title_main.png +0 -0
- data/spec/coverage/assets/0.3.9/fancybox/fancy_title_over.png +0 -0
- data/spec/coverage/assets/0.3.9/fancybox/fancy_title_right.png +0 -0
- data/spec/coverage/assets/0.3.9/fancybox/fancybox-x.png +0 -0
- data/spec/coverage/assets/0.3.9/fancybox/fancybox-y.png +0 -0
- data/spec/coverage/assets/0.3.9/fancybox/fancybox.png +0 -0
- data/spec/coverage/assets/0.3.9/fancybox/jquery.fancybox-1.3.1.css +0 -363
- data/spec/coverage/assets/0.3.9/fancybox/jquery.fancybox-1.3.1.pack.js +0 -44
- data/spec/coverage/assets/0.3.9/favicon.png +0 -0
- data/spec/coverage/assets/0.3.9/jquery-1.4.2.min.js +0 -155
- data/spec/coverage/assets/0.3.9/jquery.dataTables.min.js +0 -152
- data/spec/coverage/assets/0.3.9/jquery.timeago.js +0 -141
- data/spec/coverage/assets/0.3.9/jquery.url.js +0 -174
- data/spec/coverage/assets/0.3.9/loading.gif +0 -0
- data/spec/coverage/assets/0.3.9/magnify.png +0 -0
- data/spec/coverage/assets/0.3.9/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/spec/coverage/assets/0.3.9/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
- data/spec/coverage/assets/0.3.9/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
- data/spec/coverage/assets/0.3.9/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/spec/coverage/assets/0.3.9/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
- data/spec/coverage/assets/0.3.9/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
- data/spec/coverage/assets/0.3.9/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
- data/spec/coverage/assets/0.3.9/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
- data/spec/coverage/assets/0.3.9/smoothness/images/ui-icons_222222_256x240.png +0 -0
- data/spec/coverage/assets/0.3.9/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
- data/spec/coverage/assets/0.3.9/smoothness/images/ui-icons_454545_256x240.png +0 -0
- data/spec/coverage/assets/0.3.9/smoothness/images/ui-icons_888888_256x240.png +0 -0
- data/spec/coverage/assets/0.3.9/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
- data/spec/coverage/assets/0.3.9/smoothness/jquery-ui-1.8.4.custom.css +0 -295
- data/spec/coverage/assets/0.3.9/stylesheet.css +0 -341
- data/spec/coverage/index.html +0 -47481
- data/spec/coverage/resultset.yml +0 -3556
- data/spec/model/coverage/assets/0.3.9/app.js +0 -66
- data/spec/model/coverage/assets/0.3.9/fancybox/blank.gif +0 -0
- data/spec/model/coverage/assets/0.3.9/fancybox/fancy_close.png +0 -0
- data/spec/model/coverage/assets/0.3.9/fancybox/fancy_loading.png +0 -0
- data/spec/model/coverage/assets/0.3.9/fancybox/fancy_nav_left.png +0 -0
- data/spec/model/coverage/assets/0.3.9/fancybox/fancy_nav_right.png +0 -0
- data/spec/model/coverage/assets/0.3.9/fancybox/fancy_shadow_e.png +0 -0
- data/spec/model/coverage/assets/0.3.9/fancybox/fancy_shadow_n.png +0 -0
- data/spec/model/coverage/assets/0.3.9/fancybox/fancy_shadow_ne.png +0 -0
- data/spec/model/coverage/assets/0.3.9/fancybox/fancy_shadow_nw.png +0 -0
- data/spec/model/coverage/assets/0.3.9/fancybox/fancy_shadow_s.png +0 -0
- data/spec/model/coverage/assets/0.3.9/fancybox/fancy_shadow_se.png +0 -0
- data/spec/model/coverage/assets/0.3.9/fancybox/fancy_shadow_sw.png +0 -0
- data/spec/model/coverage/assets/0.3.9/fancybox/fancy_shadow_w.png +0 -0
- data/spec/model/coverage/assets/0.3.9/fancybox/fancy_title_left.png +0 -0
- data/spec/model/coverage/assets/0.3.9/fancybox/fancy_title_main.png +0 -0
- data/spec/model/coverage/assets/0.3.9/fancybox/fancy_title_over.png +0 -0
- data/spec/model/coverage/assets/0.3.9/fancybox/fancy_title_right.png +0 -0
- data/spec/model/coverage/assets/0.3.9/fancybox/fancybox-x.png +0 -0
- data/spec/model/coverage/assets/0.3.9/fancybox/fancybox-y.png +0 -0
- data/spec/model/coverage/assets/0.3.9/fancybox/fancybox.png +0 -0
- data/spec/model/coverage/assets/0.3.9/fancybox/jquery.fancybox-1.3.1.css +0 -363
- data/spec/model/coverage/assets/0.3.9/fancybox/jquery.fancybox-1.3.1.pack.js +0 -44
- data/spec/model/coverage/assets/0.3.9/favicon.png +0 -0
- data/spec/model/coverage/assets/0.3.9/jquery-1.4.2.min.js +0 -155
- data/spec/model/coverage/assets/0.3.9/jquery.dataTables.min.js +0 -152
- data/spec/model/coverage/assets/0.3.9/jquery.timeago.js +0 -141
- data/spec/model/coverage/assets/0.3.9/jquery.url.js +0 -174
- data/spec/model/coverage/assets/0.3.9/loading.gif +0 -0
- data/spec/model/coverage/assets/0.3.9/magnify.png +0 -0
- data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
- data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
- data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
- data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
- data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
- data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
- data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-icons_222222_256x240.png +0 -0
- data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
- data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-icons_454545_256x240.png +0 -0
- data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-icons_888888_256x240.png +0 -0
- data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
- data/spec/model/coverage/assets/0.3.9/smoothness/jquery-ui-1.8.4.custom.css +0 -295
- data/spec/model/coverage/assets/0.3.9/stylesheet.css +0 -341
- data/spec/model/coverage/index.html +0 -8637
- data/spec/model/coverage/resultset.yml +0 -642
- data/spec/pager_spec.rb +0 -7
- data/spec/peachy_spec_helper_patch.rb +0 -7
- data/spec/proxy_police_spec.rb +0 -70
- data/spec/sevendigital_spec.rb +0 -51
- data/spec/sevendigital_spec.yml +0 -5
@@ -30,8 +30,8 @@ describe "ApiResponse" do
|
|
30
30
|
end
|
31
31
|
|
32
32
|
it "should be serializable" do
|
33
|
-
original_response = Sevendigital::
|
34
|
-
|
33
|
+
original_response = Sevendigital::ApiResponse.new
|
34
|
+
original_response.content = "<response status='ok'><testElement id='123'>value</testElement></response>"
|
35
35
|
original_response.error_code = 99
|
36
36
|
original_response.headers = {"header" => "value"}
|
37
37
|
|
@@ -41,7 +41,7 @@ describe "ApiResponse" do
|
|
41
41
|
|
42
42
|
restored_response.error_code.should == original_response.error_code
|
43
43
|
restored_response.content.to_s.should == original_response.content.to_s
|
44
|
-
restored_response.
|
44
|
+
restored_response.item_xml("response").to_s == "value"
|
45
45
|
restored_response.headers.should == original_response.headers
|
46
46
|
|
47
47
|
end
|
data/spec/model/artist_spec.rb
CHANGED
@@ -21,7 +21,7 @@ describe "Artist" do
|
|
21
21
|
(options.keys & expected_options.keys).should == expected_options.keys
|
22
22
|
fresh_artist
|
23
23
|
}
|
24
|
-
@artist.get_details(expected_options)
|
24
|
+
@artist.get_details(expected_options).should == fresh_artist
|
25
25
|
|
26
26
|
@artist.sort_name.should == fresh_artist.sort_name
|
27
27
|
@artist.image.should == fresh_artist.image
|
@@ -151,5 +151,5 @@ describe "Artist" do
|
|
151
151
|
artist.image = "image"
|
152
152
|
artist.url = "url"
|
153
153
|
artist
|
154
|
-
end
|
154
|
+
end
|
155
155
|
end
|
@@ -5,11 +5,11 @@ describe "SevendigitalObject" do
|
|
5
5
|
|
6
6
|
before do
|
7
7
|
|
8
|
-
@configuration =
|
9
|
-
@configuration.
|
8
|
+
@configuration = test_configuration
|
9
|
+
@configuration.lazy_load = true
|
10
|
+
|
11
|
+
stub_api_client(@configuration)
|
10
12
|
|
11
|
-
@client = stub(Sevendigital::Client)
|
12
|
-
@client.stub!(:configuration).and_return(@configuration)
|
13
13
|
@client.stub!(:verbose?).and_return(true)
|
14
14
|
@test_object = Sevendigital::SevendigitalObject.new(@client)
|
15
15
|
end
|
data/spec/model/user_spec.rb
CHANGED
@@ -13,6 +13,21 @@ describe "User" do
|
|
13
13
|
@user = Sevendigital::User.new(@client)
|
14
14
|
end
|
15
15
|
|
16
|
+
it "get_details should get user's basic details from manager" do
|
17
|
+
@user.oauth_access_token = OAuth::AccessToken.new(nil, "TOKEN", "SECRET")
|
18
|
+
fresh_user = fake_user_with_details
|
19
|
+
expected_options = {:page => 2}
|
20
|
+
|
21
|
+
@user_manager.should_receive(:get_details) { |token, options|
|
22
|
+
token.should == @user.oauth_access_token
|
23
|
+
(options.keys & expected_options.keys).should == expected_options.keys
|
24
|
+
fresh_user
|
25
|
+
}
|
26
|
+
@user.get_details(expected_options).should == fresh_user
|
27
|
+
@user.email_address.should == fresh_user.email_address
|
28
|
+
|
29
|
+
end
|
30
|
+
|
16
31
|
it "should not be authorised if does not have access_token" do
|
17
32
|
@user.oauth_access_token = nil
|
18
33
|
@user.authenticated?.should == false
|
@@ -158,4 +173,10 @@ describe "User" do
|
|
158
173
|
running {@user.get_locker}.should raise_error(Sevendigital::SevendigitalError)
|
159
174
|
end
|
160
175
|
|
176
|
+
def fake_user_with_details
|
177
|
+
user = Sevendigital::User.new(@client)
|
178
|
+
user.email_address = "user@7digital.com"
|
179
|
+
user
|
180
|
+
end
|
181
|
+
|
161
182
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -2,26 +2,19 @@
|
|
2
2
|
#$: << 'spec'
|
3
3
|
|
4
4
|
=begin
|
5
|
-
|
6
5
|
require 'simplecov'
|
7
|
-
|
8
6
|
SimpleCov.start do
|
9
7
|
add_group 'Management', 'lib/sevendigital/management'
|
10
8
|
add_group 'Digestion', 'lib/sevendigital/digestion_tract'
|
11
9
|
add_group 'Model', 'lib/sevendigital/model'
|
12
10
|
end
|
13
|
-
|
14
11
|
=end
|
15
12
|
|
16
|
-
require '
|
13
|
+
require 'rspec'
|
17
14
|
require File.expand_path(
|
18
15
|
File.join(File.dirname(__FILE__), %w[.. lib sevendigital]))
|
19
16
|
|
20
|
-
|
21
|
-
|
22
|
-
Peachy.whine
|
23
|
-
|
24
|
-
Spec::Runner.configure do |config|
|
17
|
+
Rspec.configure do |config|
|
25
18
|
# == Mock Framework
|
26
19
|
#
|
27
20
|
# RSpec uses it's own mocking framework by default. If you prefer to
|
@@ -34,6 +27,8 @@ end
|
|
34
27
|
|
35
28
|
alias running lambda
|
36
29
|
|
30
|
+
VALID_7DIGITAL_URL = /http\:\/\/.+7digital\..+partner=[\d]+/
|
31
|
+
|
37
32
|
def load_sample_method_xml(method_name)
|
38
33
|
method_name = "test-xml/methods/" + method_name + ".xml"
|
39
34
|
IO.read( File.join(File.dirname(__FILE__), method_name.split('/')))
|
@@ -45,11 +40,15 @@ end
|
|
45
40
|
end
|
46
41
|
|
47
42
|
def fake_api_response(method_name)
|
48
|
-
Sevendigital::
|
43
|
+
response = Sevendigital::ApiResponse.new
|
44
|
+
response.content = load_sample_method_xml(method_name)
|
45
|
+
response.stub(:ok?).and_return true
|
46
|
+
# Sevendigital::ApiResponseDigestor.new(nil).from_xml_string(load_sample_method_xml(method_name))
|
47
|
+
response
|
49
48
|
end
|
50
49
|
|
51
50
|
def fake_api_error_response(code)
|
52
|
-
Sevendigital::ApiResponseDigestor.new(nil).
|
51
|
+
Sevendigital::ApiResponseDigestor.new(nil).from_xml_string("<response status=\"error\"><error code=\"#{code}\"></error></response>")
|
53
52
|
end
|
54
53
|
|
55
54
|
def mock_client_digestor(client, digestor_class)
|
@@ -62,3 +61,24 @@ end
|
|
62
61
|
str.split('_').map {|w| w.capitalize}.join
|
63
62
|
end
|
64
63
|
|
64
|
+
def stub_api_client(configuration, response_digestor=nil)
|
65
|
+
@client = stub(Sevendigital::Client)
|
66
|
+
@client.stub!(:configuration).and_return(configuration)
|
67
|
+
@client.stub!(:oauth_consumer).and_return(OAuth::Consumer.new( configuration.oauth_consumer_key, configuration.oauth_consumer_secret))
|
68
|
+
@client.stub!(:api_response_digestor).and_return(response_digestor)
|
69
|
+
@client.stub!(:default_parameters).and_return({:country => 'sk'})
|
70
|
+
@client.stub!(:user_agent_info).and_return("7digital")
|
71
|
+
@client.stub!(:verbose?).and_return(false)
|
72
|
+
@client.stub!(:very_verbose?).and_return(false)
|
73
|
+
@client.stub!(:api_host_and_version).and_return(["base.api.url","version"])
|
74
|
+
@client.stub!(:log).and_yield()
|
75
|
+
@client
|
76
|
+
end
|
77
|
+
|
78
|
+
def test_configuration
|
79
|
+
configuration = OpenStruct.new
|
80
|
+
configuration.oauth_consumer_key = "oauth_consumer_key"
|
81
|
+
configuration
|
82
|
+
end
|
83
|
+
|
84
|
+
|
@@ -0,0 +1,7 @@
|
|
1
|
+
<response status="ok" version="1.2" xsi:noNamespaceSchemaLocation="http://api.7digital.com/1.2/static/7digitalAPI.xsd"
|
2
|
+
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
3
|
+
<GeoIpLookup>
|
4
|
+
<ipaddress>1.2.3.4</ipaddress>
|
5
|
+
<countryCode>AU</countryCode>
|
6
|
+
</GeoIpLookup>
|
7
|
+
</response>
|
@@ -0,0 +1,171 @@
|
|
1
|
+
<response status="ok" version="1.2" xsi:noNamespaceSchemaLocation="http://api.7digital.com/1.2/static/7digitalAPI.xsd"
|
2
|
+
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
3
|
+
<list id="3202">
|
4
|
+
<key>featured_albums</key>
|
5
|
+
<listItems>
|
6
|
+
<listItem id="1889735">
|
7
|
+
<type>release</type>
|
8
|
+
<release id="1889735">
|
9
|
+
<title>Battle Born</title>
|
10
|
+
<version/>
|
11
|
+
<type>Album</type>
|
12
|
+
<barcode>00602537147700</barcode>
|
13
|
+
<year>2009</year>
|
14
|
+
<explicitContent>false</explicitContent>
|
15
|
+
<artist id="616">
|
16
|
+
<name>The Killers</name>
|
17
|
+
<appearsAs>The Killers</appearsAs>
|
18
|
+
<url>http://www.7digital.com/artists/the-killers/?partner=1401</url>
|
19
|
+
</artist>
|
20
|
+
<url>http://www.7digital.com/artists/the-killers/battle-born-2/?partner=1401</url>
|
21
|
+
<image>http://cdn.7static.com/static/img/sleeveart/00/018/897/0001889735_50.jpg</image>
|
22
|
+
<releaseDate>2012-09-17T00:00:00+01:00</releaseDate>
|
23
|
+
<price>
|
24
|
+
<currency code="GBP"/>
|
25
|
+
<value>5</value>
|
26
|
+
<formattedPrice>£5.00</formattedPrice>
|
27
|
+
<rrp>7.99</rrp>
|
28
|
+
<formattedRrp>£7.99</formattedRrp>
|
29
|
+
<onSale>true</onSale>
|
30
|
+
</price>
|
31
|
+
<formats availableDrmFree="true">
|
32
|
+
<format id="17">
|
33
|
+
<fileFormat>MP3</fileFormat>
|
34
|
+
<bitRate>320</bitRate>
|
35
|
+
<drmFree>true</drmFree>
|
36
|
+
</format>
|
37
|
+
</formats>
|
38
|
+
<label id="133987">
|
39
|
+
<name>Digital Distribution Turkey</name>
|
40
|
+
</label>
|
41
|
+
</release>
|
42
|
+
</listItem>
|
43
|
+
<listItem id="1863720">
|
44
|
+
<type>release</type>
|
45
|
+
<release id="1863720">
|
46
|
+
<title>Shields</title>
|
47
|
+
<version/>
|
48
|
+
<type>Album</type>
|
49
|
+
<barcode>0801061022938</barcode>
|
50
|
+
<year>2012</year>
|
51
|
+
<explicitContent>false</explicitContent>
|
52
|
+
<artist id="171648">
|
53
|
+
<name>Grizzly Bear</name>
|
54
|
+
<appearsAs>Grizzly Bear</appearsAs>
|
55
|
+
<url>http://www.7digital.com/artists/grizzly-bear/?partner=1401</url>
|
56
|
+
</artist>
|
57
|
+
<url>http://www.7digital.com/artists/grizzly-bear/shields/?partner=1401</url>
|
58
|
+
<image>http://cdn.7static.com/static/img/sleeveart/00/018/637/0001863720_50.jpg</image>
|
59
|
+
<releaseDate>2012-09-16T00:00:00+01:00</releaseDate>
|
60
|
+
<price>
|
61
|
+
<currency code="GBP"/>
|
62
|
+
<value>5</value>
|
63
|
+
<formattedPrice>£5.00</formattedPrice>
|
64
|
+
<rrp>7.99</rrp>
|
65
|
+
<formattedRrp>£7.99</formattedRrp>
|
66
|
+
<onSale>true</onSale>
|
67
|
+
</price>
|
68
|
+
<formats availableDrmFree="true">
|
69
|
+
<format id="17">
|
70
|
+
<fileFormat>MP3</fileFormat>
|
71
|
+
<bitRate>320</bitRate>
|
72
|
+
<drmFree>true</drmFree>
|
73
|
+
</format>
|
74
|
+
<format id="33">
|
75
|
+
<fileFormat>M4A</fileFormat>
|
76
|
+
<bitRate>320</bitRate>
|
77
|
+
<drmFree>true</drmFree>
|
78
|
+
</format>
|
79
|
+
</formats>
|
80
|
+
<label id="811">
|
81
|
+
<name>Warp Records</name>
|
82
|
+
</label>
|
83
|
+
</release>
|
84
|
+
</listItem>
|
85
|
+
<listItem id="1848275">
|
86
|
+
<type>release</type>
|
87
|
+
<release id="1848275">
|
88
|
+
<title>Total Loss</title>
|
89
|
+
<version/>
|
90
|
+
<type>Album</type>
|
91
|
+
<barcode>5055453701450</barcode>
|
92
|
+
<year>2012</year>
|
93
|
+
<explicitContent>false</explicitContent>
|
94
|
+
<artist id="766646">
|
95
|
+
<name>How To Dress Well</name>
|
96
|
+
<appearsAs>How To Dress Well</appearsAs>
|
97
|
+
<url>http://www.7digital.com/artists/how-to-dress-well/?partner=1401</url>
|
98
|
+
</artist>
|
99
|
+
<url>http://www.7digital.com/artists/how-to-dress-well/total-loss/?partner=1401</url>
|
100
|
+
<image>http://cdn.7static.com/static/img/sleeveart/00/018/482/0001848275_50.jpg</image>
|
101
|
+
<releaseDate>2012-09-17T00:00:00+01:00</releaseDate>
|
102
|
+
<price>
|
103
|
+
<currency code="GBP"/>
|
104
|
+
<value>5</value>
|
105
|
+
<formattedPrice>£5.00</formattedPrice>
|
106
|
+
<rrp>7.99</rrp>
|
107
|
+
<formattedRrp>£7.99</formattedRrp>
|
108
|
+
<onSale>true</onSale>
|
109
|
+
</price>
|
110
|
+
<formats availableDrmFree="true">
|
111
|
+
<format id="17">
|
112
|
+
<fileFormat>MP3</fileFormat>
|
113
|
+
<bitRate>320</bitRate>
|
114
|
+
<drmFree>true</drmFree>
|
115
|
+
</format>
|
116
|
+
<format id="33">
|
117
|
+
<fileFormat>M4A</fileFormat>
|
118
|
+
<bitRate>320</bitRate>
|
119
|
+
<drmFree>true</drmFree>
|
120
|
+
</format>
|
121
|
+
</formats>
|
122
|
+
<label id="74276">
|
123
|
+
<name>Weird World</name>
|
124
|
+
</label>
|
125
|
+
</release>
|
126
|
+
</listItem>
|
127
|
+
<listItem id="1896829">
|
128
|
+
<type>release</type>
|
129
|
+
<release id="1896829">
|
130
|
+
<title>Maybe Today, Maybe Tomorrow</title>
|
131
|
+
<version/>
|
132
|
+
<type>Album</type>
|
133
|
+
<barcode>5060246123500</barcode>
|
134
|
+
<year>2012</year>
|
135
|
+
<explicitContent>false</explicitContent>
|
136
|
+
<artist id="479133">
|
137
|
+
<name>We Are The Ocean</name>
|
138
|
+
<appearsAs>We Are The Ocean</appearsAs>
|
139
|
+
<url>http://www.7digital.com/artists/we-are-the-ocean/?partner=1401</url>
|
140
|
+
</artist>
|
141
|
+
<url>http://www.7digital.com/artists/we-are-the-ocean/maybe-today-maybe-tomorrow-2/?partner=1401</url>
|
142
|
+
<image>http://cdn.7static.com/static/img/sleeveart/00/018/968/0001896829_50.jpg</image>
|
143
|
+
<releaseDate>2012-09-17T00:00:00+01:00</releaseDate>
|
144
|
+
<price>
|
145
|
+
<currency code="GBP"/>
|
146
|
+
<value>5</value>
|
147
|
+
<formattedPrice>£5.00</formattedPrice>
|
148
|
+
<rrp>7.99</rrp>
|
149
|
+
<formattedRrp>£7.99</formattedRrp>
|
150
|
+
<onSale>true</onSale>
|
151
|
+
</price>
|
152
|
+
<formats availableDrmFree="true">
|
153
|
+
<format id="17">
|
154
|
+
<fileFormat>MP3</fileFormat>
|
155
|
+
<bitRate>320</bitRate>
|
156
|
+
<drmFree>true</drmFree>
|
157
|
+
</format>
|
158
|
+
<format id="33">
|
159
|
+
<fileFormat>M4A</fileFormat>
|
160
|
+
<bitRate>320</bitRate>
|
161
|
+
<drmFree>true</drmFree>
|
162
|
+
</format>
|
163
|
+
</formats>
|
164
|
+
<label id="838">
|
165
|
+
<name>Hassle Records</name>
|
166
|
+
</label>
|
167
|
+
</release>
|
168
|
+
</listItem>
|
169
|
+
</listItems>
|
170
|
+
</list>
|
171
|
+
</response>
|
@@ -0,0 +1,89 @@
|
|
1
|
+
<list id="3202">
|
2
|
+
<key>featured_albums</key>
|
3
|
+
<listItems>
|
4
|
+
<listItem id="1879539">
|
5
|
+
<type>release</type>
|
6
|
+
<release id="1879539">
|
7
|
+
<title>Coexist</title>
|
8
|
+
<version/>
|
9
|
+
<type>Album</type>
|
10
|
+
<barcode>634904608057</barcode>
|
11
|
+
<year>2012</year>
|
12
|
+
<explicitContent>false</explicitContent>
|
13
|
+
<artist id="382774">
|
14
|
+
<name>The xx</name>
|
15
|
+
<appearsAs>The xx</appearsAs>
|
16
|
+
<url>http://www.7digital.com/artists/the-xx/?partner=1401</url>
|
17
|
+
</artist>
|
18
|
+
<url>http://www.7digital.com/artists/the-xx/coexist/?partner=1401</url>
|
19
|
+
<image>http://cdn.7static.com/static/img/sleeveart/00/018/795/0001879539_50.jpg</image>
|
20
|
+
<releaseDate>2012-09-10T00:00:00+01:00</releaseDate>
|
21
|
+
<price>
|
22
|
+
<currency code="GBP"/>
|
23
|
+
<value>5</value>
|
24
|
+
<formattedPrice>£5.00</formattedPrice>
|
25
|
+
<rrp>7.99</rrp>
|
26
|
+
<formattedRrp>£7.99</formattedRrp>
|
27
|
+
<onSale>true</onSale>
|
28
|
+
</price>
|
29
|
+
<formats availableDrmFree="true">
|
30
|
+
<format id="17">
|
31
|
+
<fileFormat>MP3</fileFormat>
|
32
|
+
<bitRate>320</bitRate>
|
33
|
+
<drmFree>true</drmFree>
|
34
|
+
</format>
|
35
|
+
<format id="33">
|
36
|
+
<fileFormat>M4A</fileFormat>
|
37
|
+
<bitRate>320</bitRate>
|
38
|
+
<drmFree>true</drmFree>
|
39
|
+
</format>
|
40
|
+
</formats>
|
41
|
+
<label id="10983">
|
42
|
+
<name>Young Turks</name>
|
43
|
+
</label>
|
44
|
+
</release>
|
45
|
+
</listItem>
|
46
|
+
<listItem id="1879543">
|
47
|
+
<type>release</type>
|
48
|
+
<release id="1879543">
|
49
|
+
<title>Love This Giant</title>
|
50
|
+
<version/>
|
51
|
+
<type>Album</type>
|
52
|
+
<barcode>652637323160</barcode>
|
53
|
+
<year>2012</year>
|
54
|
+
<explicitContent>false</explicitContent>
|
55
|
+
<artist id="2640">
|
56
|
+
<name>David Byrne</name>
|
57
|
+
<appearsAs>David Byrne & St. Vincent</appearsAs>
|
58
|
+
<url>http://www.7digital.com/artists/david-byrne/?partner=1401</url>
|
59
|
+
</artist>
|
60
|
+
<url>http://www.7digital.com/artists/david-byrne/love-this-giant/?partner=1401</url>
|
61
|
+
<image>http://cdn.7static.com/static/img/sleeveart/00/018/795/0001879543_50.jpg</image>
|
62
|
+
<releaseDate>2012-09-10T00:00:00+01:00</releaseDate>
|
63
|
+
<price>
|
64
|
+
<currency code="GBP"/>
|
65
|
+
<value>5</value>
|
66
|
+
<formattedPrice>£5.00</formattedPrice>
|
67
|
+
<rrp>7.99</rrp>
|
68
|
+
<formattedRrp>£7.99</formattedRrp>
|
69
|
+
<onSale>true</onSale>
|
70
|
+
</price>
|
71
|
+
<formats availableDrmFree="true">
|
72
|
+
<format id="17">
|
73
|
+
<fileFormat>MP3</fileFormat>
|
74
|
+
<bitRate>320</bitRate>
|
75
|
+
<drmFree>true</drmFree>
|
76
|
+
</format>
|
77
|
+
<format id="33">
|
78
|
+
<fileFormat>M4A</fileFormat>
|
79
|
+
<bitRate>320</bitRate>
|
80
|
+
<drmFree>true</drmFree>
|
81
|
+
</format>
|
82
|
+
</formats>
|
83
|
+
<label id="905">
|
84
|
+
<name>4AD</name>
|
85
|
+
</label>
|
86
|
+
</release>
|
87
|
+
</listItem>
|
88
|
+
</listItems>
|
89
|
+
</list>
|