7digital 0.0.6 → 0.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.rdoc +136 -136
- data/lib/sevendigital.rb +53 -53
- data/lib/sevendigital/api_operator.rb +130 -130
- data/lib/sevendigital/api_operator_cached.rb +41 -41
- data/lib/sevendigital/api_request.rb +65 -65
- data/lib/sevendigital/client.rb +113 -113
- data/lib/sevendigital/client_configuration.rb +86 -86
- data/lib/sevendigital/client_digestors.rb +107 -107
- data/lib/sevendigital/client_managers.rb +47 -47
- data/lib/sevendigital/digestion_tract/api_response_digestor.rb +58 -58
- data/lib/sevendigital/digestion_tract/artist_digestor.rb +32 -32
- data/lib/sevendigital/digestion_tract/basket_digestor.rb +19 -19
- data/lib/sevendigital/digestion_tract/basket_item_digestor.rb +26 -26
- data/lib/sevendigital/digestion_tract/chart_item_digestor.rb +28 -28
- data/lib/sevendigital/digestion_tract/digestor.rb +71 -71
- data/lib/sevendigital/digestion_tract/download_url_digestor.rb +20 -20
- data/lib/sevendigital/digestion_tract/format_digestor.rb +22 -22
- data/lib/sevendigital/digestion_tract/label_digestor.rb +20 -20
- data/lib/sevendigital/digestion_tract/locker_digestor.rb +18 -18
- data/lib/sevendigital/digestion_tract/locker_release_digestor.rb +20 -20
- data/lib/sevendigital/digestion_tract/locker_track_digestor.rb +22 -22
- data/lib/sevendigital/digestion_tract/oauth_access_token_digestor.rb +14 -14
- data/lib/sevendigital/digestion_tract/oauth_request_token_digestor.rb +14 -14
- data/lib/sevendigital/digestion_tract/pager_digestor.rb +24 -24
- data/lib/sevendigital/digestion_tract/price_digestor.rb +25 -25
- data/lib/sevendigital/digestion_tract/release_digestor.rb +53 -53
- data/lib/sevendigital/digestion_tract/tag_digestor.rb +22 -22
- data/lib/sevendigital/digestion_tract/track_digestor.rb +38 -38
- data/lib/sevendigital/digestion_tract/user_card_digestor.rb +23 -23
- data/lib/sevendigital/digestion_tract/user_digestor.rb +20 -20
- data/lib/sevendigital/management/artist_manager.rb +99 -99
- data/lib/sevendigital/management/basket_manager.rb +29 -29
- data/lib/sevendigital/management/manager.rb +12 -12
- data/lib/sevendigital/management/oauth_manager.rb +23 -23
- data/lib/sevendigital/management/release_manager.rb +56 -56
- data/lib/sevendigital/management/tag_manager.rb +10 -10
- data/lib/sevendigital/management/track_manager.rb +28 -28
- data/lib/sevendigital/management/user_card_manager.rb +26 -26
- data/lib/sevendigital/management/user_manager.rb +71 -71
- data/lib/sevendigital/model/api_response.rb +25 -25
- data/lib/sevendigital/model/artist.rb +94 -94
- data/lib/sevendigital/model/basket.rb +15 -15
- data/lib/sevendigital/model/basket_item.rb +14 -14
- data/lib/sevendigital/model/card.rb +11 -11
- data/lib/sevendigital/model/chart_item.rb +9 -9
- data/lib/sevendigital/model/download_url.rb +7 -7
- data/lib/sevendigital/model/format.rb +7 -7
- data/lib/sevendigital/model/label.rb +7 -7
- data/lib/sevendigital/model/locker.rb +4 -4
- data/lib/sevendigital/model/locker_release.rb +9 -9
- data/lib/sevendigital/model/locker_track.rb +9 -9
- data/lib/sevendigital/model/price.rb +9 -9
- data/lib/sevendigital/model/release.rb +52 -52
- data/lib/sevendigital/model/sevendigital_error.rb +11 -11
- data/lib/sevendigital/model/sevendigital_object.rb +57 -57
- data/lib/sevendigital/model/tag.rb +7 -7
- data/lib/sevendigital/model/track.rb +83 -83
- data/lib/sevendigital/model/user.rb +63 -63
- data/lib/sevendigital/pager.rb +23 -23
- data/lib/sevendigital/peachy_patchy.rb +9 -9
- data/lib/sevendigital/proxy_police.rb +27 -27
- data/lib/sevendigital/version.rb +5 -5
- data/spec/api_operator_cached_spec.rb +178 -178
- data/spec/api_operator_spec.rb +336 -336
- data/spec/api_request_spec.rb +31 -31
- data/spec/client_configuration_spec.rb +79 -74
- data/spec/client_spec.rb +162 -162
- data/spec/coverage/assets/0.3.9/app.js +66 -0
- 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 +363 -0
- data/spec/coverage/assets/0.3.9/fancybox/jquery.fancybox-1.3.1.pack.js +44 -0
- data/spec/coverage/assets/0.3.9/favicon.png +0 -0
- data/spec/coverage/assets/0.3.9/jquery-1.4.2.min.js +155 -0
- data/spec/coverage/assets/0.3.9/jquery.dataTables.min.js +152 -0
- data/spec/coverage/assets/0.3.9/jquery.timeago.js +141 -0
- data/spec/coverage/assets/0.3.9/jquery.url.js +174 -0
- 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 +295 -0
- data/spec/coverage/assets/0.3.9/stylesheet.css +341 -0
- data/spec/coverage/index.html +47481 -0
- data/spec/coverage/resultset.yml +3556 -0
- data/spec/data/config/sevendigital.yml +5 -5
- data/spec/data/configuration_env_override.yml +5 -5
- data/spec/data/configuration_override.yml +1 -1
- data/spec/digestion_tract/api_response_digestor_spec.rb +92 -92
- data/spec/digestion_tract/artist_digestor_spec.rb +81 -81
- data/spec/digestion_tract/basket_digestor_spec.rb +31 -31
- data/spec/digestion_tract/basket_item_digestor_spec.rb +58 -58
- data/spec/digestion_tract/chart_digestor_spec.rb +52 -52
- data/spec/digestion_tract/download_url_digestor_spec.rb +40 -40
- data/spec/digestion_tract/format_digestor_spec.rb +38 -38
- data/spec/digestion_tract/label_digestor_spec.rb +33 -33
- data/spec/digestion_tract/locker_digestor_spec.rb +30 -30
- data/spec/digestion_tract/locker_release_digestor_spec.rb +70 -70
- data/spec/digestion_tract/locker_track_digestor_spec.rb +56 -56
- data/spec/digestion_tract/oauth_access_token_digestor_spec.rb +34 -34
- data/spec/digestion_tract/oauth_request_token_digestor_spec.rb +34 -34
- data/spec/digestion_tract/pager_digestor_spec.rb +50 -50
- data/spec/digestion_tract/price_digestor_spec.rb +73 -73
- data/spec/digestion_tract/release_digestor_spec.rb +101 -101
- data/spec/digestion_tract/tag_digestor_spec.rb +46 -46
- data/spec/digestion_tract/track_digestor_spec.rb +104 -104
- data/spec/digestion_tract/user_card_digestor_spec.rb +58 -58
- data/spec/digestion_tract/user_digestor_spec.rb +44 -44
- data/spec/management/artist_manager_spec.rb +151 -151
- data/spec/management/basket_manager_spec.rb +77 -77
- data/spec/management/oauth_manager_spec.rb +72 -72
- data/spec/management/release_manager_spec.rb +200 -200
- data/spec/management/tag_manager_spec.rb +34 -34
- data/spec/management/track_manager_spec.rb +107 -107
- data/spec/management/user_card_manager_spec.rb +78 -78
- data/spec/management/user_manager_spec.rb +202 -202
- data/spec/model/api_response_spec.rb +48 -48
- data/spec/model/artist_spec.rb +154 -154
- data/spec/model/basket_spec.rb +62 -62
- data/spec/model/coverage/assets/0.3.9/app.js +66 -0
- 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 +363 -0
- data/spec/model/coverage/assets/0.3.9/fancybox/jquery.fancybox-1.3.1.pack.js +44 -0
- 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 +155 -0
- data/spec/model/coverage/assets/0.3.9/jquery.dataTables.min.js +152 -0
- data/spec/model/coverage/assets/0.3.9/jquery.timeago.js +141 -0
- data/spec/model/coverage/assets/0.3.9/jquery.url.js +174 -0
- 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 +295 -0
- data/spec/model/coverage/assets/0.3.9/stylesheet.css +341 -0
- data/spec/model/coverage/index.html +8637 -0
- data/spec/model/coverage/resultset.yml +642 -0
- data/spec/model/release_spec.rb +122 -122
- data/spec/model/sevendigital_object_spec.rb +73 -73
- data/spec/model/track_spec.rb +144 -144
- data/spec/model/user_spec.rb +160 -160
- data/spec/pager_spec.rb +7 -7
- data/spec/peachy_spec_helper_patch.rb +6 -6
- data/spec/proxy_police_spec.rb +69 -69
- data/spec/sevendigital_spec.rb +51 -70
- data/spec/sevendigital_spec.yml +4 -4
- data/spec/spec_helper.rb +64 -64
- data/spec/test-xml/methods/artist/browse.xml +21 -21
- data/spec/test-xml/methods/artist/byTag/top.xml +50 -50
- data/spec/test-xml/methods/artist/chart.xml +30 -30
- data/spec/test-xml/methods/artist/details.xml +9 -9
- data/spec/test-xml/methods/artist/releases.xml +544 -544
- data/spec/test-xml/methods/artist/search.xml +18 -18
- data/spec/test-xml/methods/artist/similar.xml +39 -39
- data/spec/test-xml/methods/artist/tags.xml +11 -11
- data/spec/test-xml/methods/artist/toptracks.xml +279 -279
- data/spec/test-xml/methods/basket/additem.xml +23 -23
- data/spec/test-xml/methods/basket/create.xml +10 -10
- data/spec/test-xml/methods/basket/index.xml +23 -23
- data/spec/test-xml/methods/basket/removeitem.xml +10 -10
- data/spec/test-xml/methods/oauth/accesstoken.xml +5 -5
- data/spec/test-xml/methods/oauth/requesttoken.xml +5 -5
- data/spec/test-xml/methods/release/bydate.xml +173 -173
- data/spec/test-xml/methods/release/bytag/top.xml +150 -150
- data/spec/test-xml/methods/release/chart.xml +181 -181
- data/spec/test-xml/methods/release/details.xml +48 -48
- data/spec/test-xml/methods/release/recommend.xml +89 -89
- data/spec/test-xml/methods/release/search.xml +194 -194
- data/spec/test-xml/methods/release/tags.xml +27 -27
- data/spec/test-xml/methods/release/tracks.xml +28 -28
- data/spec/test-xml/methods/tag/index.xml +16 -16
- data/spec/test-xml/methods/track/chart.xml +149 -149
- data/spec/test-xml/methods/track/details.xml +30 -30
- data/spec/test-xml/methods/track/search.xml +159 -159
- data/spec/test-xml/methods/user/locker.xml +49 -49
- data/spec/test-xml/methods/user/payment/card/add.xml +7 -7
- data/spec/test-xml/methods/user/payment/card/index.xml +7 -7
- data/spec/test-xml/methods/user/purchase/basket.xml +49 -0
- data/spec/test-xml/methods/user/purchase/item.xml +48 -48
- data/spec/test-xml/methods/user/signUp.xml +5 -5
- data/spec/test-xml/objects/artist.xml +6 -6
- data/spec/test-xml/objects/artist_chart_item.xml +7 -7
- data/spec/test-xml/objects/artist_list.xml +22 -22
- data/spec/test-xml/objects/artist_list_empty.xml +4 -4
- data/spec/test-xml/objects/basket.xml +21 -21
- data/spec/test-xml/objects/basket_item.xml +11 -11
- data/spec/test-xml/objects/basket_item_list.xml +25 -25
- data/spec/test-xml/objects/basket_item_list_empty.xml +1 -1
- data/spec/test-xml/objects/download_url.xml +7 -7
- data/spec/test-xml/objects/locker.xml +47 -47
- data/spec/test-xml/objects/locker_release.xml +40 -40
- data/spec/test-xml/objects/locker_release_list.xml +87 -87
- data/spec/test-xml/objects/locker_release_list_empty.xml +4 -4
- data/spec/test-xml/objects/locker_release_one_item_list.xml +43 -43
- data/spec/test-xml/objects/locker_track.xml +25 -25
- data/spec/test-xml/objects/locker_track_list.xml +26 -26
- data/spec/test-xml/objects/locker_track_list_empty.xml +2 -2
- data/spec/test-xml/objects/oauth_access_token.xml +3 -3
- data/spec/test-xml/objects/oauth_request_token.xml +3 -3
- data/spec/test-xml/objects/price.xml +7 -7
- data/spec/test-xml/objects/release.xml +40 -40
- data/spec/test-xml/objects/release_chart_item.xml +39 -39
- data/spec/test-xml/objects/release_list.xml +18 -18
- data/spec/test-xml/objects/release_list_empty.xml +4 -4
- data/spec/test-xml/objects/response.xml +38 -38
- data/spec/test-xml/objects/tag.xml +4 -4
- data/spec/test-xml/objects/track.xml +33 -33
- data/spec/test-xml/objects/track_chart_item.xml +27 -27
- data/spec/test-xml/objects/user.xml +4 -4
- data/spec/test-xml/objects/user_payment_card.xml +5 -5
- metadata +193 -3
@@ -1,5 +1,5 @@
|
|
1
|
-
common:
|
2
|
-
api_url: test-yml-rails-common.7digital.com
|
3
|
-
|
4
|
-
development:
|
5
|
-
api_url: test-yml-development.7digital.com
|
1
|
+
common:
|
2
|
+
api_url: test-yml-rails-common.7digital.com
|
3
|
+
|
4
|
+
development:
|
5
|
+
api_url: test-yml-development.7digital.com
|
@@ -1,5 +1,5 @@
|
|
1
|
-
common:
|
2
|
-
api_url: test-yml-common.7digital.com
|
3
|
-
|
4
|
-
development:
|
5
|
-
api_url: test-yml-development.7digital.com
|
1
|
+
common:
|
2
|
+
api_url: test-yml-common.7digital.com
|
3
|
+
|
4
|
+
development:
|
5
|
+
api_url: test-yml-development.7digital.com
|
@@ -1,2 +1,2 @@
|
|
1
|
-
api_url: test-yml-simple.7digital.com
|
1
|
+
api_url: test-yml-simple.7digital.com
|
2
2
|
api_version: yml-simple
|
@@ -1,92 +1,92 @@
|
|
1
|
-
require File.expand_path('../../spec_helper', __FILE__)
|
2
|
-
|
3
|
-
describe "ApiResponseDigestor" do
|
4
|
-
|
5
|
-
before do
|
6
|
-
@api_response_digestor = Sevendigital::ApiResponseDigestor.new(nil)
|
7
|
-
end
|
8
|
-
|
9
|
-
it "should create a response with body from http ok response" do
|
10
|
-
|
11
|
-
stub_http_response = stub(Net::HTTPSuccess)
|
12
|
-
stub_http_response.stub!(:is_a?).with(Net::HTTPSuccess).and_return(true)
|
13
|
-
stub_http_response.stub!(:body).and_return('<response status="ok"></response>')
|
14
|
-
stub_http_response.stub!(:header).and_return(nil)
|
15
|
-
|
16
|
-
response = @api_response_digestor.from_http_response(stub_http_response)
|
17
|
-
response.error_code.should == 0
|
18
|
-
end
|
19
|
-
|
20
|
-
it "should create an error response from http non-ok response" do
|
21
|
-
expected_message = 'Authorisation failed'
|
22
|
-
expected_error_code = 401
|
23
|
-
|
24
|
-
stub_http_response = stub(Net::HTTPSuccess)
|
25
|
-
stub_http_response.stub!(:is_a?).with(Net::HTTPSuccess).and_return(false)
|
26
|
-
stub_http_response.stub!(:code).and_return(expected_error_code.to_s)
|
27
|
-
stub_http_response.stub!(:body).and_return(expected_message)
|
28
|
-
stub_http_response.stub!(:header).and_return(nil)
|
29
|
-
|
30
|
-
response = @api_response_digestor.from_http_response(stub_http_response)
|
31
|
-
response.error_code.should == 401
|
32
|
-
response.error_message.should == expected_message
|
33
|
-
|
34
|
-
end
|
35
|
-
|
36
|
-
|
37
|
-
it "should store headers from http response" do
|
38
|
-
|
39
|
-
stub_http_response = stub(Net::HTTPSuccess)
|
40
|
-
stub_http_response.stub!(:is_a?).with(Net::HTTPSuccess).and_return(true)
|
41
|
-
stub_http_response.stub!(:body).and_return('<response status="ok"></response>')
|
42
|
-
stub_http_response.stub!(:header).and_return({"cache-control" => "test", "date" => "now"})
|
43
|
-
|
44
|
-
response = @api_response_digestor.from_http_response(stub_http_response)
|
45
|
-
response.headers["cache-control"].should == "test"
|
46
|
-
response.headers["date"].should == "now"
|
47
|
-
end
|
48
|
-
|
49
|
-
|
50
|
-
it "should create a response with body from xml ok response" do
|
51
|
-
|
52
|
-
xml_response = <<XML
|
53
|
-
<response status="ok"><test>aaa</test></response>
|
54
|
-
XML
|
55
|
-
response = @api_response_digestor.from_xml(xml_response)
|
56
|
-
response.error_code.should == 0
|
57
|
-
response.content.test.should_not == nil
|
58
|
-
response.content.nothing.should == nil
|
59
|
-
end
|
60
|
-
|
61
|
-
|
62
|
-
it "should create a response with error details from xml error response" do
|
63
|
-
|
64
|
-
xml_response = '<response status="error"><error code="1000"><errorMessage>expected error message</errorMessage></error></response>'
|
65
|
-
response = @api_response_digestor.from_xml(xml_response)
|
66
|
-
response.error_code.should == 1000
|
67
|
-
response.error_message.should == 'expected error message'
|
68
|
-
end
|
69
|
-
|
70
|
-
it "should create a response with error details from invalid xml response" do
|
71
|
-
|
72
|
-
xml_response = '<wrongresponse status="ok"><test /></wrongresponse>'
|
73
|
-
response = @api_response_digestor.from_xml(xml_response)
|
74
|
-
response.error_code.should == 10000
|
75
|
-
response.error_message.should == 'Invalid 7digital API response'
|
76
|
-
|
77
|
-
xml_response = '<response><test /></response>'
|
78
|
-
response = @api_response_digestor.from_xml(xml_response)
|
79
|
-
response.error_code.should == 10000
|
80
|
-
response.error_message.should == 'Invalid 7digital API response'
|
81
|
-
end
|
82
|
-
|
83
|
-
|
84
|
-
it "should create a response with error details from valid xml response with invalid status" do
|
85
|
-
|
86
|
-
xml_response = '<response status="unkown"><test></test></response>'
|
87
|
-
response = @api_response_digestor.from_xml(xml_response)
|
88
|
-
response.error_code.should == 10000
|
89
|
-
response.error_message.should == 'Invalid 7digital API response'
|
90
|
-
end
|
91
|
-
|
92
|
-
end
|
1
|
+
require File.expand_path('../../spec_helper', __FILE__)
|
2
|
+
|
3
|
+
describe "ApiResponseDigestor" do
|
4
|
+
|
5
|
+
before do
|
6
|
+
@api_response_digestor = Sevendigital::ApiResponseDigestor.new(nil)
|
7
|
+
end
|
8
|
+
|
9
|
+
it "should create a response with body from http ok response" do
|
10
|
+
|
11
|
+
stub_http_response = stub(Net::HTTPSuccess)
|
12
|
+
stub_http_response.stub!(:is_a?).with(Net::HTTPSuccess).and_return(true)
|
13
|
+
stub_http_response.stub!(:body).and_return('<response status="ok"></response>')
|
14
|
+
stub_http_response.stub!(:header).and_return(nil)
|
15
|
+
|
16
|
+
response = @api_response_digestor.from_http_response(stub_http_response)
|
17
|
+
response.error_code.should == 0
|
18
|
+
end
|
19
|
+
|
20
|
+
it "should create an error response from http non-ok response" do
|
21
|
+
expected_message = 'Authorisation failed'
|
22
|
+
expected_error_code = 401
|
23
|
+
|
24
|
+
stub_http_response = stub(Net::HTTPSuccess)
|
25
|
+
stub_http_response.stub!(:is_a?).with(Net::HTTPSuccess).and_return(false)
|
26
|
+
stub_http_response.stub!(:code).and_return(expected_error_code.to_s)
|
27
|
+
stub_http_response.stub!(:body).and_return(expected_message)
|
28
|
+
stub_http_response.stub!(:header).and_return(nil)
|
29
|
+
|
30
|
+
response = @api_response_digestor.from_http_response(stub_http_response)
|
31
|
+
response.error_code.should == 401
|
32
|
+
response.error_message.should == expected_message
|
33
|
+
|
34
|
+
end
|
35
|
+
|
36
|
+
|
37
|
+
it "should store headers from http response" do
|
38
|
+
|
39
|
+
stub_http_response = stub(Net::HTTPSuccess)
|
40
|
+
stub_http_response.stub!(:is_a?).with(Net::HTTPSuccess).and_return(true)
|
41
|
+
stub_http_response.stub!(:body).and_return('<response status="ok"></response>')
|
42
|
+
stub_http_response.stub!(:header).and_return({"cache-control" => "test", "date" => "now"})
|
43
|
+
|
44
|
+
response = @api_response_digestor.from_http_response(stub_http_response)
|
45
|
+
response.headers["cache-control"].should == "test"
|
46
|
+
response.headers["date"].should == "now"
|
47
|
+
end
|
48
|
+
|
49
|
+
|
50
|
+
it "should create a response with body from xml ok response" do
|
51
|
+
|
52
|
+
xml_response = <<XML
|
53
|
+
<response status="ok"><test>aaa</test></response>
|
54
|
+
XML
|
55
|
+
response = @api_response_digestor.from_xml(xml_response)
|
56
|
+
response.error_code.should == 0
|
57
|
+
response.content.test.should_not == nil
|
58
|
+
response.content.nothing.should == nil
|
59
|
+
end
|
60
|
+
|
61
|
+
|
62
|
+
it "should create a response with error details from xml error response" do
|
63
|
+
|
64
|
+
xml_response = '<response status="error"><error code="1000"><errorMessage>expected error message</errorMessage></error></response>'
|
65
|
+
response = @api_response_digestor.from_xml(xml_response)
|
66
|
+
response.error_code.should == 1000
|
67
|
+
response.error_message.should == 'expected error message'
|
68
|
+
end
|
69
|
+
|
70
|
+
it "should create a response with error details from invalid xml response" do
|
71
|
+
|
72
|
+
xml_response = '<wrongresponse status="ok"><test /></wrongresponse>'
|
73
|
+
response = @api_response_digestor.from_xml(xml_response)
|
74
|
+
response.error_code.should == 10000
|
75
|
+
response.error_message.should == 'Invalid 7digital API response'
|
76
|
+
|
77
|
+
xml_response = '<response><test /></response>'
|
78
|
+
response = @api_response_digestor.from_xml(xml_response)
|
79
|
+
response.error_code.should == 10000
|
80
|
+
response.error_message.should == 'Invalid 7digital API response'
|
81
|
+
end
|
82
|
+
|
83
|
+
|
84
|
+
it "should create a response with error details from valid xml response with invalid status" do
|
85
|
+
|
86
|
+
xml_response = '<response status="unkown"><test></test></response>'
|
87
|
+
response = @api_response_digestor.from_xml(xml_response)
|
88
|
+
response.error_code.should == 10000
|
89
|
+
response.error_message.should == 'Invalid 7digital API response'
|
90
|
+
end
|
91
|
+
|
92
|
+
end
|
@@ -1,82 +1,82 @@
|
|
1
|
-
require File.expand_path('../../spec_helper', __FILE__)
|
2
|
-
|
3
|
-
describe "ArtistDigestor" do
|
4
|
-
|
5
|
-
before do
|
6
|
-
@artist_digestor = Sevendigital::ArtistDigestor.new(Sevendigital::Client.new(nil))
|
7
|
-
end
|
8
|
-
|
9
|
-
it "should not digest from invalid xml but throw up (exception)" do
|
10
|
-
|
11
|
-
xml_response = <<XML
|
12
|
-
<release id="123">
|
13
|
-
<name>expected artist name</name>
|
14
|
-
</release>
|
15
|
-
XML
|
16
|
-
|
17
|
-
running {@artist_digestor.from_xml(xml_response)}.should raise_error(Sevendigital::DigestiveProblem)
|
18
|
-
|
19
|
-
end
|
20
|
-
|
21
|
-
it "should digest artist xml and populate minimum available properties" do
|
22
|
-
|
23
|
-
xml_response = <<XML
|
24
|
-
<artist id="123">
|
25
|
-
<name>expected artist name</name>
|
26
|
-
</artist>
|
27
|
-
XML
|
28
|
-
|
29
|
-
artist = @artist_digestor.from_xml(xml_response)
|
30
|
-
artist.id.should == 123
|
31
|
-
artist.name.should == "expected artist name"
|
32
|
-
end
|
33
|
-
|
34
|
-
it "should digest artist xml and populate all available properties" do
|
35
|
-
|
36
|
-
xml_response = load_sample_object_xml("artist")
|
37
|
-
|
38
|
-
artist = @artist_digestor.from_xml(xml_response)
|
39
|
-
artist.id.should == 123
|
40
|
-
artist.name.should == "The Expected Artist"
|
41
|
-
artist.sort_name.should == "Expected Artist, The"
|
42
|
-
artist.appears_as.should == "The E.A."
|
43
|
-
artist.image.should == "http://somewhere.com/tea.jpg"
|
44
|
-
artist.url.should == "http://7digital.com/artists/tea?partner=1"
|
45
|
-
end
|
46
|
-
|
47
|
-
it "should digest xml containing list of artists and return a paginated array" do
|
48
|
-
|
49
|
-
xml_response = load_sample_object_xml("artist_list")
|
50
|
-
|
51
|
-
artists = @artist_digestor.list_from_xml(xml_response, :artists)
|
52
|
-
artists[0].id.should == 14
|
53
|
-
artists[1].id.should == 20
|
54
|
-
artists[2].id.should == 106
|
55
|
-
artists.size.should == 3
|
56
|
-
artists.total_entries.should == 26
|
57
|
-
|
58
|
-
end
|
59
|
-
|
60
|
-
it "should digest xml containing empty list of releases and return an empty paginated array" do
|
61
|
-
|
62
|
-
xml_response = load_sample_object_xml("artist_list_empty")
|
63
|
-
|
64
|
-
artists = @artist_digestor.list_from_xml(xml_response, :artists)
|
65
|
-
artists.size.should == 0
|
66
|
-
artists.total_entries.should == 0
|
67
|
-
|
68
|
-
end
|
69
|
-
|
70
|
-
it "should not digest list from invalid xml but throw up (exception)" do
|
71
|
-
|
72
|
-
xml_response = <<XML
|
73
|
-
<release id="123">
|
74
|
-
<name>expected artist name</name>
|
75
|
-
</release>
|
76
|
-
XML
|
77
|
-
|
78
|
-
running {@artist_digestor.list_from_xml(xml_response)}.should raise_error(Sevendigital::DigestiveProblem)
|
79
|
-
|
80
|
-
end
|
81
|
-
|
1
|
+
require File.expand_path('../../spec_helper', __FILE__)
|
2
|
+
|
3
|
+
describe "ArtistDigestor" do
|
4
|
+
|
5
|
+
before do
|
6
|
+
@artist_digestor = Sevendigital::ArtistDigestor.new(Sevendigital::Client.new(nil))
|
7
|
+
end
|
8
|
+
|
9
|
+
it "should not digest from invalid xml but throw up (exception)" do
|
10
|
+
|
11
|
+
xml_response = <<XML
|
12
|
+
<release id="123">
|
13
|
+
<name>expected artist name</name>
|
14
|
+
</release>
|
15
|
+
XML
|
16
|
+
|
17
|
+
running {@artist_digestor.from_xml(xml_response)}.should raise_error(Sevendigital::DigestiveProblem)
|
18
|
+
|
19
|
+
end
|
20
|
+
|
21
|
+
it "should digest artist xml and populate minimum available properties" do
|
22
|
+
|
23
|
+
xml_response = <<XML
|
24
|
+
<artist id="123">
|
25
|
+
<name>expected artist name</name>
|
26
|
+
</artist>
|
27
|
+
XML
|
28
|
+
|
29
|
+
artist = @artist_digestor.from_xml(xml_response)
|
30
|
+
artist.id.should == 123
|
31
|
+
artist.name.should == "expected artist name"
|
32
|
+
end
|
33
|
+
|
34
|
+
it "should digest artist xml and populate all available properties" do
|
35
|
+
|
36
|
+
xml_response = load_sample_object_xml("artist")
|
37
|
+
|
38
|
+
artist = @artist_digestor.from_xml(xml_response)
|
39
|
+
artist.id.should == 123
|
40
|
+
artist.name.should == "The Expected Artist"
|
41
|
+
artist.sort_name.should == "Expected Artist, The"
|
42
|
+
artist.appears_as.should == "The E.A."
|
43
|
+
artist.image.should == "http://somewhere.com/tea.jpg"
|
44
|
+
artist.url.should == "http://7digital.com/artists/tea?partner=1"
|
45
|
+
end
|
46
|
+
|
47
|
+
it "should digest xml containing list of artists and return a paginated array" do
|
48
|
+
|
49
|
+
xml_response = load_sample_object_xml("artist_list")
|
50
|
+
|
51
|
+
artists = @artist_digestor.list_from_xml(xml_response, :artists)
|
52
|
+
artists[0].id.should == 14
|
53
|
+
artists[1].id.should == 20
|
54
|
+
artists[2].id.should == 106
|
55
|
+
artists.size.should == 3
|
56
|
+
artists.total_entries.should == 26
|
57
|
+
|
58
|
+
end
|
59
|
+
|
60
|
+
it "should digest xml containing empty list of releases and return an empty paginated array" do
|
61
|
+
|
62
|
+
xml_response = load_sample_object_xml("artist_list_empty")
|
63
|
+
|
64
|
+
artists = @artist_digestor.list_from_xml(xml_response, :artists)
|
65
|
+
artists.size.should == 0
|
66
|
+
artists.total_entries.should == 0
|
67
|
+
|
68
|
+
end
|
69
|
+
|
70
|
+
it "should not digest list from invalid xml but throw up (exception)" do
|
71
|
+
|
72
|
+
xml_response = <<XML
|
73
|
+
<release id="123">
|
74
|
+
<name>expected artist name</name>
|
75
|
+
</release>
|
76
|
+
XML
|
77
|
+
|
78
|
+
running {@artist_digestor.list_from_xml(xml_response)}.should raise_error(Sevendigital::DigestiveProblem)
|
79
|
+
|
80
|
+
end
|
81
|
+
|
82
82
|
end
|
@@ -1,32 +1,32 @@
|
|
1
|
-
require File.expand_path('../../spec_helper', __FILE__)
|
2
|
-
|
3
|
-
describe "BasketDigestor" do
|
4
|
-
|
5
|
-
before do
|
6
|
-
@basket_digestor = Sevendigital::BasketDigestor.new(Sevendigital::Client.new(nil))
|
7
|
-
end
|
8
|
-
|
9
|
-
it "should not digest from invalid xml but throw up (exception)" do
|
10
|
-
|
11
|
-
xml_response = <<XML
|
12
|
-
<zzz id="17">
|
13
|
-
<fileFormat>MP3</fileFormat>
|
14
|
-
<bitRate>320</bitRate>
|
15
|
-
<drmFree>True</drmFree>
|
16
|
-
</zzz>
|
17
|
-
XML
|
18
|
-
|
19
|
-
running {@basket_digestor.from_xml(xml_response)}.should raise_error(Sevendigital::DigestiveProblem)
|
20
|
-
end
|
21
|
-
|
22
|
-
it "should parse from Basket xml and populate all properties" do
|
23
|
-
|
24
|
-
xml_response = load_sample_object_xml("basket")
|
25
|
-
|
26
|
-
basket = @basket_digestor.from_xml(xml_response)
|
27
|
-
basket.id.should == "00000000-0000-0000-0000-000000000000"
|
28
|
-
basket.basket_items.size == 1
|
29
|
-
basket.basket_items[0].id == 15284882
|
30
|
-
end
|
31
|
-
|
1
|
+
require File.expand_path('../../spec_helper', __FILE__)
|
2
|
+
|
3
|
+
describe "BasketDigestor" do
|
4
|
+
|
5
|
+
before do
|
6
|
+
@basket_digestor = Sevendigital::BasketDigestor.new(Sevendigital::Client.new(nil))
|
7
|
+
end
|
8
|
+
|
9
|
+
it "should not digest from invalid xml but throw up (exception)" do
|
10
|
+
|
11
|
+
xml_response = <<XML
|
12
|
+
<zzz id="17">
|
13
|
+
<fileFormat>MP3</fileFormat>
|
14
|
+
<bitRate>320</bitRate>
|
15
|
+
<drmFree>True</drmFree>
|
16
|
+
</zzz>
|
17
|
+
XML
|
18
|
+
|
19
|
+
running {@basket_digestor.from_xml(xml_response)}.should raise_error(Sevendigital::DigestiveProblem)
|
20
|
+
end
|
21
|
+
|
22
|
+
it "should parse from Basket xml and populate all properties" do
|
23
|
+
|
24
|
+
xml_response = load_sample_object_xml("basket")
|
25
|
+
|
26
|
+
basket = @basket_digestor.from_xml(xml_response)
|
27
|
+
basket.id.should == "00000000-0000-0000-0000-000000000000"
|
28
|
+
basket.basket_items.size == 1
|
29
|
+
basket.basket_items[0].id == 15284882
|
30
|
+
end
|
31
|
+
|
32
32
|
end
|
@@ -1,58 +1,58 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
require 'date'
|
3
|
-
require File.expand_path('../../spec_helper', __FILE__)
|
4
|
-
|
5
|
-
describe "BasketItemDigestor" do
|
6
|
-
|
7
|
-
before do
|
8
|
-
@basket_item_digestor = Sevendigital::BasketItemDigestor.new(Sevendigital::Client.new(nil))
|
9
|
-
end
|
10
|
-
|
11
|
-
it "should not digest from invalid xml but throw up (exception)" do
|
12
|
-
|
13
|
-
xml_response = <<XML
|
14
|
-
<artist id="123">
|
15
|
-
<name>expected artist name</name>
|
16
|
-
</artist>
|
17
|
-
XML
|
18
|
-
|
19
|
-
running {@basket_item_digestor.from_xml(xml_response)}.should raise_error(Sevendigital::DigestiveProblem)
|
20
|
-
end
|
21
|
-
|
22
|
-
it "should digest basket item xml and populate all properties" do
|
23
|
-
|
24
|
-
xml_response = load_sample_object_xml("basket_item")
|
25
|
-
|
26
|
-
basket_item = @basket_item_digestor.from_xml(xml_response)
|
27
|
-
basket_item.id.should == 15284882
|
28
|
-
basket_item.type.should == :track
|
29
|
-
basket_item.item_name.should == "Test"
|
30
|
-
basket_item.artist_name.should == "Ghetto"
|
31
|
-
basket_item.track_id.should == 2458384
|
32
|
-
basket_item.release_id.should == 224820
|
33
|
-
basket_item.price.value.should == 0.99
|
34
|
-
end
|
35
|
-
|
36
|
-
it "should digest xml containing list of basket items and return an array" do
|
37
|
-
|
38
|
-
xml_response = load_sample_object_xml("basket_item_list")
|
39
|
-
|
40
|
-
basket_items = @basket_item_digestor.list_from_xml(xml_response)
|
41
|
-
basket_items[0].id.should == 15284882
|
42
|
-
basket_items[0].type.should == :track
|
43
|
-
basket_items[1].id.should == 15284883
|
44
|
-
basket_items[1].type.should == :release
|
45
|
-
basket_items.size.should == 2
|
46
|
-
|
47
|
-
end
|
48
|
-
|
49
|
-
it "should digest xml containing empty list of releases and return an empty paginated array" do
|
50
|
-
|
51
|
-
xml_response = load_sample_object_xml("basket_item_list_empty")
|
52
|
-
|
53
|
-
basket_items = @basket_item_digestor.list_from_xml(xml_response)
|
54
|
-
basket_items.size.should == 0
|
55
|
-
|
56
|
-
end
|
57
|
-
|
58
|
-
end
|
1
|
+
# coding: utf-8
|
2
|
+
require 'date'
|
3
|
+
require File.expand_path('../../spec_helper', __FILE__)
|
4
|
+
|
5
|
+
describe "BasketItemDigestor" do
|
6
|
+
|
7
|
+
before do
|
8
|
+
@basket_item_digestor = Sevendigital::BasketItemDigestor.new(Sevendigital::Client.new(nil))
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should not digest from invalid xml but throw up (exception)" do
|
12
|
+
|
13
|
+
xml_response = <<XML
|
14
|
+
<artist id="123">
|
15
|
+
<name>expected artist name</name>
|
16
|
+
</artist>
|
17
|
+
XML
|
18
|
+
|
19
|
+
running {@basket_item_digestor.from_xml(xml_response)}.should raise_error(Sevendigital::DigestiveProblem)
|
20
|
+
end
|
21
|
+
|
22
|
+
it "should digest basket item xml and populate all properties" do
|
23
|
+
|
24
|
+
xml_response = load_sample_object_xml("basket_item")
|
25
|
+
|
26
|
+
basket_item = @basket_item_digestor.from_xml(xml_response)
|
27
|
+
basket_item.id.should == 15284882
|
28
|
+
basket_item.type.should == :track
|
29
|
+
basket_item.item_name.should == "Test"
|
30
|
+
basket_item.artist_name.should == "Ghetto"
|
31
|
+
basket_item.track_id.should == 2458384
|
32
|
+
basket_item.release_id.should == 224820
|
33
|
+
basket_item.price.value.should == 0.99
|
34
|
+
end
|
35
|
+
|
36
|
+
it "should digest xml containing list of basket items and return an array" do
|
37
|
+
|
38
|
+
xml_response = load_sample_object_xml("basket_item_list")
|
39
|
+
|
40
|
+
basket_items = @basket_item_digestor.list_from_xml(xml_response)
|
41
|
+
basket_items[0].id.should == 15284882
|
42
|
+
basket_items[0].type.should == :track
|
43
|
+
basket_items[1].id.should == 15284883
|
44
|
+
basket_items[1].type.should == :release
|
45
|
+
basket_items.size.should == 2
|
46
|
+
|
47
|
+
end
|
48
|
+
|
49
|
+
it "should digest xml containing empty list of releases and return an empty paginated array" do
|
50
|
+
|
51
|
+
xml_response = load_sample_object_xml("basket_item_list_empty")
|
52
|
+
|
53
|
+
basket_items = @basket_item_digestor.list_from_xml(xml_response)
|
54
|
+
basket_items.size.should == 0
|
55
|
+
|
56
|
+
end
|
57
|
+
|
58
|
+
end
|