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.
- checksums.yaml +7 -0
- data/README.rdoc +143 -143
- data/lib/sevendigital.rb +55 -55
- data/lib/sevendigital/api_operator.rb +127 -127
- data/lib/sevendigital/api_operator_cached.rb +91 -62
- data/lib/sevendigital/api_request.rb +72 -62
- data/lib/sevendigital/client.rb +122 -122
- data/lib/sevendigital/client_configuration.rb +85 -83
- data/lib/sevendigital/client_digestors.rb +122 -122
- data/lib/sevendigital/client_managers.rb +57 -57
- data/lib/sevendigital/digestion_tract/api_response_digestor.rb +48 -48
- data/lib/sevendigital/digestion_tract/artist_digestor.rb +35 -35
- 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 +34 -34
- data/lib/sevendigital/digestion_tract/country_digestor.rb +15 -15
- data/lib/sevendigital/digestion_tract/digestor.rb +122 -122
- data/lib/sevendigital/digestion_tract/download_url_digestor.rb +23 -23
- data/lib/sevendigital/digestion_tract/format_digestor.rb +24 -24
- data/lib/sevendigital/digestion_tract/label_digestor.rb +21 -21
- data/lib/sevendigital/digestion_tract/list_digestor.rb +24 -24
- data/lib/sevendigital/digestion_tract/list_item_digestor.rb +26 -26
- data/lib/sevendigital/digestion_tract/locker_digestor.rb +22 -22
- data/lib/sevendigital/digestion_tract/locker_release_digestor.rb +26 -26
- data/lib/sevendigital/digestion_tract/locker_track_digestor.rb +26 -26
- data/lib/sevendigital/digestion_tract/oauth_access_token_digestor.rb +18 -18
- data/lib/sevendigital/digestion_tract/oauth_request_token_digestor.rb +18 -18
- data/lib/sevendigital/digestion_tract/pager_digestor.rb +28 -28
- data/lib/sevendigital/digestion_tract/price_digestor.rb +28 -28
- data/lib/sevendigital/digestion_tract/release_digestor.rb +45 -45
- data/lib/sevendigital/digestion_tract/tag_digestor.rb +23 -23
- data/lib/sevendigital/digestion_tract/track_digestor.rb +38 -37
- data/lib/sevendigital/digestion_tract/user_card_digestor.rb +24 -24
- data/lib/sevendigital/digestion_tract/user_digestor.rb +21 -21
- data/lib/sevendigital/management/artist_manager.rb +97 -97
- data/lib/sevendigital/management/basket_manager.rb +29 -29
- data/lib/sevendigital/management/country_manager.rb +10 -10
- data/lib/sevendigital/management/list_manager.rb +18 -18
- data/lib/sevendigital/management/manager.rb +12 -12
- data/lib/sevendigital/management/oauth_manager.rb +23 -23
- data/lib/sevendigital/management/release_manager.rb +54 -54
- data/lib/sevendigital/management/tag_manager.rb +10 -10
- data/lib/sevendigital/management/track_manager.rb +29 -27
- data/lib/sevendigital/management/user_card_manager.rb +26 -26
- data/lib/sevendigital/management/user_manager.rb +76 -76
- data/lib/sevendigital/model/api_response.rb +32 -32
- data/lib/sevendigital/model/artist.rb +104 -104
- 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/list.rb +4 -4
- data/lib/sevendigital/model/list_item.rb +8 -8
- 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 +57 -57
- 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 +87 -83
- data/lib/sevendigital/model/user.rb +74 -74
- data/lib/sevendigital/pager.rb +20 -20
- data/lib/sevendigital/version.rb +5 -5
- data/spec/api_operator_cached_spec.rb +233 -178
- data/spec/api_operator_spec.rb +320 -320
- data/spec/api_request_spec.rb +46 -31
- data/spec/client_configuration_spec.rb +78 -78
- data/spec/client_spec.rb +161 -161
- 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 +93 -93
- 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/country_digestor_spec.rb +33 -33
- data/spec/digestion_tract/digestor_spec.rb +33 -33
- 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/list_digestor_spec.rb +31 -31
- data/spec/digestion_tract/list_item_digestor_spec.rb +80 -80
- 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 +115 -115
- data/spec/digestion_tract/tag_digestor_spec.rb +46 -46
- data/spec/digestion_tract/track_digestor_spec.rb +105 -104
- data/spec/digestion_tract/user_card_digestor_spec.rb +58 -58
- data/spec/digestion_tract/user_digestor_spec.rb +42 -42
- data/spec/integration/artist_spec.rb +99 -86
- data/spec/integration/country_spec.rb +18 -18
- data/spec/integration/list_spec.rb +22 -22
- data/spec/integration/purchasing_spec.rb +24 -24
- data/spec/integration/release_spec.rb +34 -34
- data/spec/integration/sevendigital_spec.yml +4 -4
- data/spec/integration/track_spec.rb +38 -23
- data/spec/integration/user_spec.rb +22 -22
- data/spec/management/artist_manager_spec.rb +172 -172
- data/spec/management/basket_manager_spec.rb +77 -77
- data/spec/management/country_manager_spec.rb +34 -34
- data/spec/management/list_manager_spec.rb +26 -26
- 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 +111 -107
- data/spec/management/user_card_manager_spec.rb +78 -78
- data/spec/management/user_manager_spec.rb +218 -218
- data/spec/model/api_response_spec.rb +48 -48
- data/spec/model/artist_spec.rb +162 -162
- data/spec/model/basket_spec.rb +62 -62
- data/spec/model/release_spec.rb +133 -133
- data/spec/model/sevendigital_object_spec.rb +73 -73
- data/spec/model/track_spec.rb +146 -144
- data/spec/model/user_spec.rb +181 -181
- data/spec/spec_helper.rb +86 -84
- 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/country/resolve.xml +6 -6
- data/spec/test-xml/methods/editorial/list.xml +170 -170
- 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/details.xml +4 -4
- 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 +48 -48
- 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 +7 -7
- 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/list.xml +89 -89
- data/spec/test-xml/objects/list_item_list.xml +85 -85
- data/spec/test-xml/objects/list_item_release.xml +13 -13
- 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/nested_release_list.xml +22 -22
- 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 +34 -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 +15 -25
@@ -1,32 +1,32 @@
|
|
1
|
-
require File.expand_path('../../spec_helper', __FILE__)
|
2
|
-
|
3
|
-
describe "ListDigestor" do
|
4
|
-
|
5
|
-
before do
|
6
|
-
@list_digestor = Sevendigital::ListDigestor.new(Sevendigital::Client.new(nil))
|
7
|
-
end
|
8
|
-
|
9
|
-
it "should not digest from invalid xml but throw up (exception)" do
|
10
|
-
|
11
|
-
xml_response = <<XML
|
12
|
-
<zzz id="17">
|
13
|
-
<aaa>MP3</aaa>
|
14
|
-
</zzz>
|
15
|
-
XML
|
16
|
-
|
17
|
-
running {@list_digestor.from_xml_string(xml_response)}.should raise_error(Sevendigital::DigestiveProblem)
|
18
|
-
end
|
19
|
-
|
20
|
-
it "should parse from xml and populate all properties" do
|
21
|
-
|
22
|
-
xml_response = load_sample_object_xml("list")
|
23
|
-
|
24
|
-
list = @list_digestor.from_xml_string(xml_response)
|
25
|
-
list.id.should == 3202
|
26
|
-
list.key.should == "featured_albums"
|
27
|
-
list.list_items.size.should == 2
|
28
|
-
list.list_items[0].release.id.should == 1879539
|
29
|
-
list.list_items[1].release.id.should == 1879543
|
30
|
-
end
|
31
|
-
|
1
|
+
require File.expand_path('../../spec_helper', __FILE__)
|
2
|
+
|
3
|
+
describe "ListDigestor" do
|
4
|
+
|
5
|
+
before do
|
6
|
+
@list_digestor = Sevendigital::ListDigestor.new(Sevendigital::Client.new(nil))
|
7
|
+
end
|
8
|
+
|
9
|
+
it "should not digest from invalid xml but throw up (exception)" do
|
10
|
+
|
11
|
+
xml_response = <<XML
|
12
|
+
<zzz id="17">
|
13
|
+
<aaa>MP3</aaa>
|
14
|
+
</zzz>
|
15
|
+
XML
|
16
|
+
|
17
|
+
running {@list_digestor.from_xml_string(xml_response)}.should raise_error(Sevendigital::DigestiveProblem)
|
18
|
+
end
|
19
|
+
|
20
|
+
it "should parse from xml and populate all properties" do
|
21
|
+
|
22
|
+
xml_response = load_sample_object_xml("list")
|
23
|
+
|
24
|
+
list = @list_digestor.from_xml_string(xml_response)
|
25
|
+
list.id.should == 3202
|
26
|
+
list.key.should == "featured_albums"
|
27
|
+
list.list_items.size.should == 2
|
28
|
+
list.list_items[0].release.id.should == 1879539
|
29
|
+
list.list_items[1].release.id.should == 1879543
|
30
|
+
end
|
31
|
+
|
32
32
|
end
|
@@ -1,80 +1,80 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
require 'date'
|
3
|
-
require File.expand_path('../../spec_helper', __FILE__)
|
4
|
-
|
5
|
-
describe "ListItemDigestor" do
|
6
|
-
|
7
|
-
before do
|
8
|
-
@list_item_digestor = Sevendigital::ListItemDigestor.new(Sevendigital::Client.new(nil))
|
9
|
-
end
|
10
|
-
|
11
|
-
it "should not digest from invalid xml but throw up (exception)" do
|
12
|
-
|
13
|
-
xml_response = <<XML
|
14
|
-
<foo id="123">
|
15
|
-
<bar>test</bar>
|
16
|
-
</foo>
|
17
|
-
XML
|
18
|
-
|
19
|
-
running {@list_item_digestor.from_xml_doc(xml_response)}.should raise_error(Sevendigital::DigestiveProblem)
|
20
|
-
end
|
21
|
-
|
22
|
-
it "should digest list item xml and populate available properties" do
|
23
|
-
|
24
|
-
xml_response = load_sample_object_xml("list_item_release")
|
25
|
-
|
26
|
-
list_item = @list_item_digestor.from_xml_string(xml_response)
|
27
|
-
|
28
|
-
list_item.id.should == 123456
|
29
|
-
list_item.type.should == :release
|
30
|
-
list_item.release.id.should == 1136112
|
31
|
-
list_item.release.title.should == "Collapse Into Now"
|
32
|
-
list_item.release.artist.id.should == 590
|
33
|
-
list_item.release.artist.name.should == "R.E.M."
|
34
|
-
list_item.release.artist.appears_as == "R.E.M."
|
35
|
-
list_item.release.artist.url.should == "http://www.7digital.com/artists/r-e-m"
|
36
|
-
list_item.release.url.should == "http://www.7digital.com/artists/r-e-m/collapse-into-now?partner=123"
|
37
|
-
list_item.release.image.should == "http://cdn.7static.com/static/img/sleeveart/00/011/361/0001136112_50.jpg"
|
38
|
-
list_item.release.explicit_content == false
|
39
|
-
end
|
40
|
-
|
41
|
-
it "should not digest unknown list item xml but throw up (exception) " do
|
42
|
-
|
43
|
-
xml_response = <<XML
|
44
|
-
<listItem id="123">
|
45
|
-
<type>track</type>
|
46
|
-
<track id="1136112">
|
47
|
-
</track>
|
48
|
-
</release>
|
49
|
-
XML
|
50
|
-
|
51
|
-
running {@list_item_digestor.from_xml_doc(xml_response)}.should raise_error(Sevendigital::DigestiveProblem)
|
52
|
-
end
|
53
|
-
|
54
|
-
it "should digest xml containing list of list items and return an array" do
|
55
|
-
|
56
|
-
xml_response = load_sample_object_xml("list_item_list")
|
57
|
-
|
58
|
-
list_items = @list_item_digestor.list_from_xml_string(xml_response)
|
59
|
-
list_items[0].id.should == 1879539
|
60
|
-
list_items[0].release.id.should == 1879539
|
61
|
-
list_items[1].id.should == 1879543
|
62
|
-
list_items[1].release.id.should == 1879543
|
63
|
-
list_items.size.should == 2
|
64
|
-
|
65
|
-
end
|
66
|
-
|
67
|
-
it "should digest xml containing empty list of list items and return an empty array" do
|
68
|
-
|
69
|
-
xml_response = <<XML
|
70
|
-
<listItems>
|
71
|
-
</listItems>
|
72
|
-
XML
|
73
|
-
|
74
|
-
releases = @list_item_digestor.list_from_xml_string(xml_response)
|
75
|
-
releases.size.should == 0
|
76
|
-
|
77
|
-
end
|
78
|
-
|
79
|
-
|
80
|
-
end
|
1
|
+
# coding: utf-8
|
2
|
+
require 'date'
|
3
|
+
require File.expand_path('../../spec_helper', __FILE__)
|
4
|
+
|
5
|
+
describe "ListItemDigestor" do
|
6
|
+
|
7
|
+
before do
|
8
|
+
@list_item_digestor = Sevendigital::ListItemDigestor.new(Sevendigital::Client.new(nil))
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should not digest from invalid xml but throw up (exception)" do
|
12
|
+
|
13
|
+
xml_response = <<XML
|
14
|
+
<foo id="123">
|
15
|
+
<bar>test</bar>
|
16
|
+
</foo>
|
17
|
+
XML
|
18
|
+
|
19
|
+
running {@list_item_digestor.from_xml_doc(xml_response)}.should raise_error(Sevendigital::DigestiveProblem)
|
20
|
+
end
|
21
|
+
|
22
|
+
it "should digest list item xml and populate available properties" do
|
23
|
+
|
24
|
+
xml_response = load_sample_object_xml("list_item_release")
|
25
|
+
|
26
|
+
list_item = @list_item_digestor.from_xml_string(xml_response)
|
27
|
+
|
28
|
+
list_item.id.should == 123456
|
29
|
+
list_item.type.should == :release
|
30
|
+
list_item.release.id.should == 1136112
|
31
|
+
list_item.release.title.should == "Collapse Into Now"
|
32
|
+
list_item.release.artist.id.should == 590
|
33
|
+
list_item.release.artist.name.should == "R.E.M."
|
34
|
+
list_item.release.artist.appears_as == "R.E.M."
|
35
|
+
list_item.release.artist.url.should == "http://www.7digital.com/artists/r-e-m"
|
36
|
+
list_item.release.url.should == "http://www.7digital.com/artists/r-e-m/collapse-into-now?partner=123"
|
37
|
+
list_item.release.image.should == "http://cdn.7static.com/static/img/sleeveart/00/011/361/0001136112_50.jpg"
|
38
|
+
list_item.release.explicit_content == false
|
39
|
+
end
|
40
|
+
|
41
|
+
it "should not digest unknown list item xml but throw up (exception) " do
|
42
|
+
|
43
|
+
xml_response = <<XML
|
44
|
+
<listItem id="123">
|
45
|
+
<type>track</type>
|
46
|
+
<track id="1136112">
|
47
|
+
</track>
|
48
|
+
</release>
|
49
|
+
XML
|
50
|
+
|
51
|
+
running {@list_item_digestor.from_xml_doc(xml_response)}.should raise_error(Sevendigital::DigestiveProblem)
|
52
|
+
end
|
53
|
+
|
54
|
+
it "should digest xml containing list of list items and return an array" do
|
55
|
+
|
56
|
+
xml_response = load_sample_object_xml("list_item_list")
|
57
|
+
|
58
|
+
list_items = @list_item_digestor.list_from_xml_string(xml_response)
|
59
|
+
list_items[0].id.should == 1879539
|
60
|
+
list_items[0].release.id.should == 1879539
|
61
|
+
list_items[1].id.should == 1879543
|
62
|
+
list_items[1].release.id.should == 1879543
|
63
|
+
list_items.size.should == 2
|
64
|
+
|
65
|
+
end
|
66
|
+
|
67
|
+
it "should digest xml containing empty list of list items and return an empty array" do
|
68
|
+
|
69
|
+
xml_response = <<XML
|
70
|
+
<listItems>
|
71
|
+
</listItems>
|
72
|
+
XML
|
73
|
+
|
74
|
+
releases = @list_item_digestor.list_from_xml_string(xml_response)
|
75
|
+
releases.size.should == 0
|
76
|
+
|
77
|
+
end
|
78
|
+
|
79
|
+
|
80
|
+
end
|
@@ -1,31 +1,31 @@
|
|
1
|
-
require File.expand_path('../../spec_helper', __FILE__)
|
2
|
-
|
3
|
-
describe "LockerDigestor" do
|
4
|
-
|
5
|
-
before do
|
6
|
-
@locker_digestor = Sevendigital::LockerDigestor.new(Sevendigital::Client.new(nil))
|
7
|
-
end
|
8
|
-
|
9
|
-
it "should not digest from invalid xml but throw up (exception)" do
|
10
|
-
|
11
|
-
xml_response = <<XML
|
12
|
-
<zzz id="17">
|
13
|
-
<fileFormat>MP3</fileFormat>
|
14
|
-
<bitRate>320</bitRate>
|
15
|
-
<drmFree>True</drmFree>
|
16
|
-
</zzz>
|
17
|
-
XML
|
18
|
-
|
19
|
-
running {@locker_digestor.from_xml_string(xml_response)}.should raise_error(Sevendigital::DigestiveProblem)
|
20
|
-
end
|
21
|
-
|
22
|
-
it "should parse from xml and populate all properties" do
|
23
|
-
|
24
|
-
xml_response = load_sample_object_xml("locker")
|
25
|
-
|
26
|
-
locker = @locker_digestor.from_xml_string(xml_response)
|
27
|
-
locker.locker_releases.size.should == 1
|
28
|
-
locker.locker_releases[0].release.id.should == 302123
|
29
|
-
end
|
30
|
-
|
1
|
+
require File.expand_path('../../spec_helper', __FILE__)
|
2
|
+
|
3
|
+
describe "LockerDigestor" do
|
4
|
+
|
5
|
+
before do
|
6
|
+
@locker_digestor = Sevendigital::LockerDigestor.new(Sevendigital::Client.new(nil))
|
7
|
+
end
|
8
|
+
|
9
|
+
it "should not digest from invalid xml but throw up (exception)" do
|
10
|
+
|
11
|
+
xml_response = <<XML
|
12
|
+
<zzz id="17">
|
13
|
+
<fileFormat>MP3</fileFormat>
|
14
|
+
<bitRate>320</bitRate>
|
15
|
+
<drmFree>True</drmFree>
|
16
|
+
</zzz>
|
17
|
+
XML
|
18
|
+
|
19
|
+
running {@locker_digestor.from_xml_string(xml_response)}.should raise_error(Sevendigital::DigestiveProblem)
|
20
|
+
end
|
21
|
+
|
22
|
+
it "should parse from xml and populate all properties" do
|
23
|
+
|
24
|
+
xml_response = load_sample_object_xml("locker")
|
25
|
+
|
26
|
+
locker = @locker_digestor.from_xml_string(xml_response)
|
27
|
+
locker.locker_releases.size.should == 1
|
28
|
+
locker.locker_releases[0].release.id.should == 302123
|
29
|
+
end
|
30
|
+
|
31
31
|
end
|
@@ -1,70 +1,70 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
require 'date'
|
3
|
-
require File.expand_path('../../spec_helper', __FILE__)
|
4
|
-
|
5
|
-
describe "LockerReleaseDigestor" do
|
6
|
-
|
7
|
-
before do
|
8
|
-
@locker_release_digestor = Sevendigital::LockerReleaseDigestor.new(Sevendigital::Client.new(nil))
|
9
|
-
end
|
10
|
-
|
11
|
-
it "should not digest from invalid xml but throw up (exception)" do
|
12
|
-
|
13
|
-
xml_response = <<XML
|
14
|
-
<artist id="123">
|
15
|
-
<name>expected artist name</name>
|
16
|
-
</artist>
|
17
|
-
XML
|
18
|
-
|
19
|
-
running {@locker_release_digestor.from_xml_string(xml_response)}.should raise_error(Sevendigital::DigestiveProblem)
|
20
|
-
end
|
21
|
-
|
22
|
-
it "should digest locker release xml and populate all available properties" do
|
23
|
-
|
24
|
-
xml_response = load_sample_object_xml("locker_release")
|
25
|
-
|
26
|
-
locker_release = @locker_release_digestor.from_xml_string(xml_response)
|
27
|
-
|
28
|
-
locker_release.release.id.should == 302123
|
29
|
-
locker_release.release.title.should == "Original Album Classics"
|
30
|
-
locker_release.locker_tracks.size.should == 1
|
31
|
-
locker_release.locker_tracks[0].track.id.should == 3544116
|
32
|
-
locker_release.locker_tracks[0].track.title.should == "Gloria"
|
33
|
-
locker_release.locker_tracks[0].remaining_downloads.should == 355
|
34
|
-
locker_release.locker_tracks[0].download_urls[0].url.should == "http://media3.7digital.com/media/user/downloadtrack?"
|
35
|
-
|
36
|
-
end
|
37
|
-
|
38
|
-
it "should digest xml containing list of locker releases and return a paginated array" do
|
39
|
-
|
40
|
-
xml_response = load_sample_object_xml("locker_release_list")
|
41
|
-
|
42
|
-
locker_releases = @locker_release_digestor.list_from_xml_string(xml_response)
|
43
|
-
locker_releases[0].release.id.should == 302123
|
44
|
-
locker_releases[0].locker_tracks[0].track.id.should == 3544116
|
45
|
-
locker_releases.size.should == 2
|
46
|
-
locker_releases.total_entries.should == 50
|
47
|
-
|
48
|
-
end
|
49
|
-
|
50
|
-
it "should digest xml containing single item list of locker releases and return a paginated array" do
|
51
|
-
|
52
|
-
xml_response = load_sample_object_xml("locker_release_one_item_list")
|
53
|
-
|
54
|
-
locker_releases = @locker_release_digestor.list_from_xml_string(xml_response)
|
55
|
-
locker_releases[0].release.id.should == 302123
|
56
|
-
locker_releases[0].locker_tracks[0].track.id.should == 3544116
|
57
|
-
locker_releases.size.should == 1
|
58
|
-
end
|
59
|
-
|
60
|
-
it "should digest xml containing empty list of locker releases and return an empty paginated array" do
|
61
|
-
|
62
|
-
xml_response = load_sample_object_xml("locker_release_list_empty")
|
63
|
-
|
64
|
-
locker_releases = @locker_release_digestor.list_from_xml_string(xml_response)
|
65
|
-
locker_releases.size.should == 0
|
66
|
-
locker_releases.total_entries.should == 0
|
67
|
-
|
68
|
-
end
|
69
|
-
|
70
|
-
end
|
1
|
+
# coding: utf-8
|
2
|
+
require 'date'
|
3
|
+
require File.expand_path('../../spec_helper', __FILE__)
|
4
|
+
|
5
|
+
describe "LockerReleaseDigestor" do
|
6
|
+
|
7
|
+
before do
|
8
|
+
@locker_release_digestor = Sevendigital::LockerReleaseDigestor.new(Sevendigital::Client.new(nil))
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should not digest from invalid xml but throw up (exception)" do
|
12
|
+
|
13
|
+
xml_response = <<XML
|
14
|
+
<artist id="123">
|
15
|
+
<name>expected artist name</name>
|
16
|
+
</artist>
|
17
|
+
XML
|
18
|
+
|
19
|
+
running {@locker_release_digestor.from_xml_string(xml_response)}.should raise_error(Sevendigital::DigestiveProblem)
|
20
|
+
end
|
21
|
+
|
22
|
+
it "should digest locker release xml and populate all available properties" do
|
23
|
+
|
24
|
+
xml_response = load_sample_object_xml("locker_release")
|
25
|
+
|
26
|
+
locker_release = @locker_release_digestor.from_xml_string(xml_response)
|
27
|
+
|
28
|
+
locker_release.release.id.should == 302123
|
29
|
+
locker_release.release.title.should == "Original Album Classics"
|
30
|
+
locker_release.locker_tracks.size.should == 1
|
31
|
+
locker_release.locker_tracks[0].track.id.should == 3544116
|
32
|
+
locker_release.locker_tracks[0].track.title.should == "Gloria"
|
33
|
+
locker_release.locker_tracks[0].remaining_downloads.should == 355
|
34
|
+
locker_release.locker_tracks[0].download_urls[0].url.should == "http://media3.7digital.com/media/user/downloadtrack?"
|
35
|
+
|
36
|
+
end
|
37
|
+
|
38
|
+
it "should digest xml containing list of locker releases and return a paginated array" do
|
39
|
+
|
40
|
+
xml_response = load_sample_object_xml("locker_release_list")
|
41
|
+
|
42
|
+
locker_releases = @locker_release_digestor.list_from_xml_string(xml_response)
|
43
|
+
locker_releases[0].release.id.should == 302123
|
44
|
+
locker_releases[0].locker_tracks[0].track.id.should == 3544116
|
45
|
+
locker_releases.size.should == 2
|
46
|
+
locker_releases.total_entries.should == 50
|
47
|
+
|
48
|
+
end
|
49
|
+
|
50
|
+
it "should digest xml containing single item list of locker releases and return a paginated array" do
|
51
|
+
|
52
|
+
xml_response = load_sample_object_xml("locker_release_one_item_list")
|
53
|
+
|
54
|
+
locker_releases = @locker_release_digestor.list_from_xml_string(xml_response)
|
55
|
+
locker_releases[0].release.id.should == 302123
|
56
|
+
locker_releases[0].locker_tracks[0].track.id.should == 3544116
|
57
|
+
locker_releases.size.should == 1
|
58
|
+
end
|
59
|
+
|
60
|
+
it "should digest xml containing empty list of locker releases and return an empty paginated array" do
|
61
|
+
|
62
|
+
xml_response = load_sample_object_xml("locker_release_list_empty")
|
63
|
+
|
64
|
+
locker_releases = @locker_release_digestor.list_from_xml_string(xml_response)
|
65
|
+
locker_releases.size.should == 0
|
66
|
+
locker_releases.total_entries.should == 0
|
67
|
+
|
68
|
+
end
|
69
|
+
|
70
|
+
end
|
@@ -1,56 +1,56 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
require 'date'
|
3
|
-
require File.expand_path('../../spec_helper', __FILE__)
|
4
|
-
|
5
|
-
describe "LockerTrackDigestor" do
|
6
|
-
|
7
|
-
before do
|
8
|
-
@locker_track_digestor = Sevendigital::LockerTrackDigestor.new(Sevendigital::Client.new(nil))
|
9
|
-
end
|
10
|
-
|
11
|
-
it "should not digest from invalid xml but throw up (exception)" do
|
12
|
-
|
13
|
-
xml_response = <<XML
|
14
|
-
<artist id="123">
|
15
|
-
<name>expected artist name</name>
|
16
|
-
</artist>
|
17
|
-
XML
|
18
|
-
|
19
|
-
running {@locker_track_digestor.from_xml_string(xml_response)}.should raise_error(Sevendigital::DigestiveProblem)
|
20
|
-
end
|
21
|
-
|
22
|
-
it "should digest locker track xml and populate all available properties" do
|
23
|
-
|
24
|
-
xml_response = load_sample_object_xml("locker_track")
|
25
|
-
|
26
|
-
locker_track = @locker_track_digestor.from_xml_string(xml_response)
|
27
|
-
|
28
|
-
locker_track.track.id.should == 3544116
|
29
|
-
locker_track.track.title.should == "Gloria"
|
30
|
-
locker_track.remaining_downloads.should == 355
|
31
|
-
locker_track.purchase_date.should == DateTime.new(2009,7,22,11,41,41, 1.quo(24))
|
32
|
-
locker_track.download_urls.size.should == 1
|
33
|
-
locker_track.download_urls[0].url.should == "http://media3.7digital.com/media/user/downloadtrack?"
|
34
|
-
|
35
|
-
end
|
36
|
-
|
37
|
-
it "should digest xml containing single item list of locker tracks and return an array" do
|
38
|
-
|
39
|
-
xml_response = load_sample_object_xml("locker_track_list")
|
40
|
-
|
41
|
-
locker_tracks = @locker_track_digestor.list_from_xml_string(xml_response)
|
42
|
-
locker_tracks[0].track.id.should == 3544116
|
43
|
-
locker_tracks[0].download_urls[0].url.should == "http://media3.7digital.com/media/user/downloadtrack?"
|
44
|
-
locker_tracks.size.should == 1
|
45
|
-
end
|
46
|
-
|
47
|
-
it "should digest xml containing empty list of locker tracks and return an empty array" do
|
48
|
-
|
49
|
-
xml_response = load_sample_object_xml("locker_track_list_empty")
|
50
|
-
|
51
|
-
locker_tracks = @locker_track_digestor.list_from_xml_string(xml_response)
|
52
|
-
locker_tracks.size.should == 0
|
53
|
-
|
54
|
-
end
|
55
|
-
|
56
|
-
end
|
1
|
+
# coding: utf-8
|
2
|
+
require 'date'
|
3
|
+
require File.expand_path('../../spec_helper', __FILE__)
|
4
|
+
|
5
|
+
describe "LockerTrackDigestor" do
|
6
|
+
|
7
|
+
before do
|
8
|
+
@locker_track_digestor = Sevendigital::LockerTrackDigestor.new(Sevendigital::Client.new(nil))
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should not digest from invalid xml but throw up (exception)" do
|
12
|
+
|
13
|
+
xml_response = <<XML
|
14
|
+
<artist id="123">
|
15
|
+
<name>expected artist name</name>
|
16
|
+
</artist>
|
17
|
+
XML
|
18
|
+
|
19
|
+
running {@locker_track_digestor.from_xml_string(xml_response)}.should raise_error(Sevendigital::DigestiveProblem)
|
20
|
+
end
|
21
|
+
|
22
|
+
it "should digest locker track xml and populate all available properties" do
|
23
|
+
|
24
|
+
xml_response = load_sample_object_xml("locker_track")
|
25
|
+
|
26
|
+
locker_track = @locker_track_digestor.from_xml_string(xml_response)
|
27
|
+
|
28
|
+
locker_track.track.id.should == 3544116
|
29
|
+
locker_track.track.title.should == "Gloria"
|
30
|
+
locker_track.remaining_downloads.should == 355
|
31
|
+
locker_track.purchase_date.should == DateTime.new(2009,7,22,11,41,41, 1.quo(24))
|
32
|
+
locker_track.download_urls.size.should == 1
|
33
|
+
locker_track.download_urls[0].url.should == "http://media3.7digital.com/media/user/downloadtrack?"
|
34
|
+
|
35
|
+
end
|
36
|
+
|
37
|
+
it "should digest xml containing single item list of locker tracks and return an array" do
|
38
|
+
|
39
|
+
xml_response = load_sample_object_xml("locker_track_list")
|
40
|
+
|
41
|
+
locker_tracks = @locker_track_digestor.list_from_xml_string(xml_response)
|
42
|
+
locker_tracks[0].track.id.should == 3544116
|
43
|
+
locker_tracks[0].download_urls[0].url.should == "http://media3.7digital.com/media/user/downloadtrack?"
|
44
|
+
locker_tracks.size.should == 1
|
45
|
+
end
|
46
|
+
|
47
|
+
it "should digest xml containing empty list of locker tracks and return an empty array" do
|
48
|
+
|
49
|
+
xml_response = load_sample_object_xml("locker_track_list_empty")
|
50
|
+
|
51
|
+
locker_tracks = @locker_track_digestor.list_from_xml_string(xml_response)
|
52
|
+
locker_tracks.size.should == 0
|
53
|
+
|
54
|
+
end
|
55
|
+
|
56
|
+
end
|