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,46 +1,46 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
require File.expand_path('../../spec_helper', __FILE__)
|
3
|
-
|
4
|
-
describe "TagDigestor" do
|
5
|
-
|
6
|
-
before do
|
7
|
-
@tag_digestor = Sevendigital::TagDigestor.new(nil)
|
8
|
-
end
|
9
|
-
|
10
|
-
it "should not digest from invalid xml but throw up (exception)" do
|
11
|
-
|
12
|
-
xml_response = <<XML
|
13
|
-
<xxx>
|
14
|
-
<text>pop</text>
|
15
|
-
</xxx>
|
16
|
-
XML
|
17
|
-
|
18
|
-
running {@tag_digestor.from_xml_string(xml_response)}.should raise_error(Sevendigital::DigestiveProblem)
|
19
|
-
end
|
20
|
-
|
21
|
-
it "should parse from xml and populate minimum available properties" do
|
22
|
-
|
23
|
-
xml_response = <<XML
|
24
|
-
<tag id="rock">
|
25
|
-
<text>ROCK</text>
|
26
|
-
</tag>
|
27
|
-
XML
|
28
|
-
|
29
|
-
tag = @tag_digestor.from_xml_string(xml_response)
|
30
|
-
tag.id.should == 'rock'
|
31
|
-
tag.text.should == "ROCK"
|
32
|
-
|
33
|
-
end
|
34
|
-
|
35
|
-
it "should parse from xml and populate all properties" do
|
36
|
-
|
37
|
-
xml_response = load_sample_object_xml("tag")
|
38
|
-
|
39
|
-
tag = @tag_digestor.from_xml_string(xml_response)
|
40
|
-
tag.id.should == "pop"
|
41
|
-
tag.text.should == "pop"
|
42
|
-
tag.url.should == "http://www.7digital.com/tags/pop?partner=123"
|
43
|
-
tag.count.should == 90847
|
44
|
-
end
|
45
|
-
|
46
|
-
end
|
1
|
+
# coding: utf-8
|
2
|
+
require File.expand_path('../../spec_helper', __FILE__)
|
3
|
+
|
4
|
+
describe "TagDigestor" do
|
5
|
+
|
6
|
+
before do
|
7
|
+
@tag_digestor = Sevendigital::TagDigestor.new(nil)
|
8
|
+
end
|
9
|
+
|
10
|
+
it "should not digest from invalid xml but throw up (exception)" do
|
11
|
+
|
12
|
+
xml_response = <<XML
|
13
|
+
<xxx>
|
14
|
+
<text>pop</text>
|
15
|
+
</xxx>
|
16
|
+
XML
|
17
|
+
|
18
|
+
running {@tag_digestor.from_xml_string(xml_response)}.should raise_error(Sevendigital::DigestiveProblem)
|
19
|
+
end
|
20
|
+
|
21
|
+
it "should parse from xml and populate minimum available properties" do
|
22
|
+
|
23
|
+
xml_response = <<XML
|
24
|
+
<tag id="rock">
|
25
|
+
<text>ROCK</text>
|
26
|
+
</tag>
|
27
|
+
XML
|
28
|
+
|
29
|
+
tag = @tag_digestor.from_xml_string(xml_response)
|
30
|
+
tag.id.should == 'rock'
|
31
|
+
tag.text.should == "ROCK"
|
32
|
+
|
33
|
+
end
|
34
|
+
|
35
|
+
it "should parse from xml and populate all properties" do
|
36
|
+
|
37
|
+
xml_response = load_sample_object_xml("tag")
|
38
|
+
|
39
|
+
tag = @tag_digestor.from_xml_string(xml_response)
|
40
|
+
tag.id.should == "pop"
|
41
|
+
tag.text.should == "pop"
|
42
|
+
tag.url.should == "http://www.7digital.com/tags/pop?partner=123"
|
43
|
+
tag.count.should == 90847
|
44
|
+
end
|
45
|
+
|
46
|
+
end
|
@@ -1,105 +1,106 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
require 'date'
|
3
|
-
require File.expand_path('../../spec_helper', __FILE__)
|
4
|
-
|
5
|
-
describe "TrackDigestor" do
|
6
|
-
|
7
|
-
before do
|
8
|
-
@track_digestor = Sevendigital::TrackDigestor.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 {@track_digestor.from_xml_string(xml_response)}.should raise_error(Sevendigital::DigestiveProblem)
|
20
|
-
end
|
21
|
-
|
22
|
-
it "should digest track xml and populate minimum available properties" do
|
23
|
-
|
24
|
-
xml_response = <<XML
|
25
|
-
<track id="123">
|
26
|
-
<title>expected track title</title>
|
27
|
-
<artist id="345">
|
28
|
-
<name>expected artist name</name>
|
29
|
-
<appearsAs>expected displayed artist name</appearsAs>
|
30
|
-
</artist>
|
31
|
-
</track>
|
32
|
-
XML
|
33
|
-
|
34
|
-
track = @track_digestor.from_xml_string(xml_response)
|
35
|
-
track.id.should == 123
|
36
|
-
track.title.should == "expected track title"
|
37
|
-
track.artist.id.should == 345
|
38
|
-
track.artist.name.should == "expected artist name"
|
39
|
-
track.artist.appears_as == "expected displayed artist name"
|
40
|
-
end
|
41
|
-
|
42
|
-
it "should digest track xml and populate all available properties" do
|
43
|
-
|
44
|
-
xml_response = load_sample_object_xml("track")
|
45
|
-
|
46
|
-
track = @track_digestor.from_xml_string(xml_response)
|
47
|
-
track.id.should == 1628015
|
48
|
-
track.title.should == "Burning"
|
49
|
-
track.version.should == ""
|
50
|
-
track.artist.id.should == 29755
|
51
|
-
track.artist.name.should == "The Whitest Boy Alive"
|
52
|
-
track.artist.appears_as.should == "The Whitest Boy Alive"
|
53
|
-
track.track_number.should == 1
|
54
|
-
track.duration.should == 189
|
55
|
-
track.explicit_content.should == false
|
56
|
-
track.isrc.should == "DED620600065"
|
57
|
-
track.release.id.should == 155408
|
58
|
-
track.release.title.should == "Dreams"
|
59
|
-
track.price.currency_code.should == :GBP
|
60
|
-
track.price.currency_symbol.should == "£"
|
61
|
-
track.price.value.should == 0.79
|
62
|
-
track.price.formatted_price.should == "£0.79"
|
63
|
-
track.price.rrp.should == 0.79
|
64
|
-
track.price.formatted_rrp.should == "£0.79"
|
65
|
-
track.price.on_sale.should == false
|
66
|
-
track.url.should == "http://www.7digital.com/artists/the-whitest-boy-alive/dreams-1/01-Burning/?partner=123"
|
67
|
-
track
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
<
|
76
|
-
<
|
77
|
-
<
|
78
|
-
|
79
|
-
<
|
80
|
-
|
81
|
-
<
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
<
|
87
|
-
|
88
|
-
<
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
tracks
|
96
|
-
tracks[0].
|
97
|
-
tracks[
|
98
|
-
tracks[1].
|
99
|
-
tracks.
|
100
|
-
tracks.
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
1
|
+
# coding: utf-8
|
2
|
+
require 'date'
|
3
|
+
require File.expand_path('../../spec_helper', __FILE__)
|
4
|
+
|
5
|
+
describe "TrackDigestor" do
|
6
|
+
|
7
|
+
before do
|
8
|
+
@track_digestor = Sevendigital::TrackDigestor.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 {@track_digestor.from_xml_string(xml_response)}.should raise_error(Sevendigital::DigestiveProblem)
|
20
|
+
end
|
21
|
+
|
22
|
+
it "should digest track xml and populate minimum available properties" do
|
23
|
+
|
24
|
+
xml_response = <<XML
|
25
|
+
<track id="123">
|
26
|
+
<title>expected track title</title>
|
27
|
+
<artist id="345">
|
28
|
+
<name>expected artist name</name>
|
29
|
+
<appearsAs>expected displayed artist name</appearsAs>
|
30
|
+
</artist>
|
31
|
+
</track>
|
32
|
+
XML
|
33
|
+
|
34
|
+
track = @track_digestor.from_xml_string(xml_response)
|
35
|
+
track.id.should == 123
|
36
|
+
track.title.should == "expected track title"
|
37
|
+
track.artist.id.should == 345
|
38
|
+
track.artist.name.should == "expected artist name"
|
39
|
+
track.artist.appears_as == "expected displayed artist name"
|
40
|
+
end
|
41
|
+
|
42
|
+
it "should digest track xml and populate all available properties" do
|
43
|
+
|
44
|
+
xml_response = load_sample_object_xml("track")
|
45
|
+
|
46
|
+
track = @track_digestor.from_xml_string(xml_response)
|
47
|
+
track.id.should == 1628015
|
48
|
+
track.title.should == "Burning"
|
49
|
+
track.version.should == ""
|
50
|
+
track.artist.id.should == 29755
|
51
|
+
track.artist.name.should == "The Whitest Boy Alive"
|
52
|
+
track.artist.appears_as.should == "The Whitest Boy Alive"
|
53
|
+
track.track_number.should == 1
|
54
|
+
track.duration.should == 189
|
55
|
+
track.explicit_content.should == false
|
56
|
+
track.isrc.should == "DED620600065"
|
57
|
+
track.release.id.should == 155408
|
58
|
+
track.release.title.should == "Dreams"
|
59
|
+
track.price.currency_code.should == :GBP
|
60
|
+
track.price.currency_symbol.should == "£"
|
61
|
+
track.price.value.should == 0.79
|
62
|
+
track.price.formatted_price.should == "£0.79"
|
63
|
+
track.price.rrp.should == 0.79
|
64
|
+
track.price.formatted_rrp.should == "£0.79"
|
65
|
+
track.price.on_sale.should == false
|
66
|
+
track.url.should == "http://www.7digital.com/artists/the-whitest-boy-alive/dreams-1/01-Burning/?partner=123"
|
67
|
+
track.type.should == :audio
|
68
|
+
track
|
69
|
+
end
|
70
|
+
|
71
|
+
it "should digest xml containing list of tracks and return an array" do
|
72
|
+
|
73
|
+
xml_response = <<XML
|
74
|
+
<results>
|
75
|
+
<page>1</page>
|
76
|
+
<pageSize>2</pageSize>
|
77
|
+
<totalItems>50</totalItems>
|
78
|
+
<track id="123">
|
79
|
+
<title>expected track title</title>
|
80
|
+
<artist id="345">
|
81
|
+
<name>expected artist name</name>
|
82
|
+
<appearsAs>expected displayed artist name</appearsAs>
|
83
|
+
</artist>
|
84
|
+
</track>
|
85
|
+
<track id="456">
|
86
|
+
<title>expected track title</title>
|
87
|
+
<artist id="789">
|
88
|
+
<name>expected artist name</name>
|
89
|
+
<appearsAs>expected displayed artist name</appearsAs>
|
90
|
+
</artist>
|
91
|
+
</track>
|
92
|
+
</results>
|
93
|
+
XML
|
94
|
+
|
95
|
+
tracks = @track_digestor.list_from_xml_string(xml_response, :results)
|
96
|
+
tracks[0].id.should == 123
|
97
|
+
tracks[0].artist.id.should == 345
|
98
|
+
tracks[1].id.should == 456
|
99
|
+
tracks[1].artist.id.should == 789
|
100
|
+
tracks.size.should == 2
|
101
|
+
tracks.total_entries.should == 50
|
102
|
+
|
103
|
+
|
104
|
+
end
|
105
|
+
|
105
106
|
end
|
@@ -1,58 +1,58 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
require File.expand_path('../../spec_helper', __FILE__)
|
3
|
-
|
4
|
-
describe "UserCardDigestor" do
|
5
|
-
|
6
|
-
before do
|
7
|
-
@card_digestor = Sevendigital::UserCardDigestor.new(Sevendigital::Client.new(nil))
|
8
|
-
end
|
9
|
-
|
10
|
-
it "should not digest from invalid xml but throw up (exception)" do
|
11
|
-
|
12
|
-
xml_response = <<XML
|
13
|
-
<xxx>
|
14
|
-
<type>invalid</type>
|
15
|
-
</xxx>
|
16
|
-
XML
|
17
|
-
|
18
|
-
running {@card_digestor.from_xml_string(xml_response)}.should raise_error(Sevendigital::DigestiveProblem)
|
19
|
-
end
|
20
|
-
|
21
|
-
it "should parse from xml and populate minimum available properties" do
|
22
|
-
|
23
|
-
xml_response = <<XML
|
24
|
-
<card>
|
25
|
-
<type>MasterCard</type>
|
26
|
-
<last4digits>1234</last4digits>
|
27
|
-
</card>
|
28
|
-
XML
|
29
|
-
|
30
|
-
card = @card_digestor.from_xml_string(xml_response)
|
31
|
-
card.type.should == "MasterCard"
|
32
|
-
card.last_4_digits.should == "1234"
|
33
|
-
|
34
|
-
end
|
35
|
-
|
36
|
-
it "should parse from xml and populate all properties" do
|
37
|
-
|
38
|
-
xml_response = load_sample_object_xml("user_payment_card")
|
39
|
-
|
40
|
-
card = @card_digestor.from_xml_string(xml_response)
|
41
|
-
card.id.should == 9876
|
42
|
-
card.type.should == "VISA"
|
43
|
-
card.last_4_digits.should == "2345"
|
44
|
-
card.expiry_date.should == "201109"
|
45
|
-
card.card_holder_name.should == "Mr. John Smith"
|
46
|
-
|
47
|
-
end
|
48
|
-
|
49
|
-
it "should digest xml containing empty list of cards and return an empty array" do
|
50
|
-
|
51
|
-
xml_response = load_sample_object_xml("user_payment_card_list_empty")
|
52
|
-
|
53
|
-
cards = @card_digestor.list_from_xml_string(xml_response)
|
54
|
-
cards.size.should == 0
|
55
|
-
|
56
|
-
end
|
57
|
-
|
58
|
-
end
|
1
|
+
# coding: utf-8
|
2
|
+
require File.expand_path('../../spec_helper', __FILE__)
|
3
|
+
|
4
|
+
describe "UserCardDigestor" do
|
5
|
+
|
6
|
+
before do
|
7
|
+
@card_digestor = Sevendigital::UserCardDigestor.new(Sevendigital::Client.new(nil))
|
8
|
+
end
|
9
|
+
|
10
|
+
it "should not digest from invalid xml but throw up (exception)" do
|
11
|
+
|
12
|
+
xml_response = <<XML
|
13
|
+
<xxx>
|
14
|
+
<type>invalid</type>
|
15
|
+
</xxx>
|
16
|
+
XML
|
17
|
+
|
18
|
+
running {@card_digestor.from_xml_string(xml_response)}.should raise_error(Sevendigital::DigestiveProblem)
|
19
|
+
end
|
20
|
+
|
21
|
+
it "should parse from xml and populate minimum available properties" do
|
22
|
+
|
23
|
+
xml_response = <<XML
|
24
|
+
<card>
|
25
|
+
<type>MasterCard</type>
|
26
|
+
<last4digits>1234</last4digits>
|
27
|
+
</card>
|
28
|
+
XML
|
29
|
+
|
30
|
+
card = @card_digestor.from_xml_string(xml_response)
|
31
|
+
card.type.should == "MasterCard"
|
32
|
+
card.last_4_digits.should == "1234"
|
33
|
+
|
34
|
+
end
|
35
|
+
|
36
|
+
it "should parse from xml and populate all properties" do
|
37
|
+
|
38
|
+
xml_response = load_sample_object_xml("user_payment_card")
|
39
|
+
|
40
|
+
card = @card_digestor.from_xml_string(xml_response)
|
41
|
+
card.id.should == 9876
|
42
|
+
card.type.should == "VISA"
|
43
|
+
card.last_4_digits.should == "2345"
|
44
|
+
card.expiry_date.should == "201109"
|
45
|
+
card.card_holder_name.should == "Mr. John Smith"
|
46
|
+
|
47
|
+
end
|
48
|
+
|
49
|
+
it "should digest xml containing empty list of cards and return an empty array" do
|
50
|
+
|
51
|
+
xml_response = load_sample_object_xml("user_payment_card_list_empty")
|
52
|
+
|
53
|
+
cards = @card_digestor.list_from_xml_string(xml_response)
|
54
|
+
cards.size.should == 0
|
55
|
+
|
56
|
+
end
|
57
|
+
|
58
|
+
end
|
@@ -1,42 +1,42 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
require File.expand_path('../../spec_helper', __FILE__)
|
3
|
-
|
4
|
-
describe "UserDigestor" do
|
5
|
-
|
6
|
-
before do
|
7
|
-
@user_digestor = Sevendigital::UserDigestor.new(nil)
|
8
|
-
end
|
9
|
-
|
10
|
-
it "should not digest from invalid xml but throw up (exception)" do
|
11
|
-
|
12
|
-
xml_response = <<XML
|
13
|
-
<xxx>
|
14
|
-
<type>invalid</type>
|
15
|
-
</xxx>
|
16
|
-
XML
|
17
|
-
|
18
|
-
running {@user_digestor.from_xml_string(xml_response)}.should raise_error(Sevendigital::DigestiveProblem)
|
19
|
-
end
|
20
|
-
|
21
|
-
it "should parse from xml and populate minimum available properties" do
|
22
|
-
|
23
|
-
xml_response = <<XML
|
24
|
-
<user>
|
25
|
-
</user>
|
26
|
-
XML
|
27
|
-
|
28
|
-
user = @user_digestor.from_xml_string(xml_response)
|
29
|
-
user.should_not be_nil
|
30
|
-
end
|
31
|
-
|
32
|
-
it "should parse from xml and populate all properties" do
|
33
|
-
|
34
|
-
xml_response = load_sample_object_xml("user")
|
35
|
-
|
36
|
-
user = @user_digestor.from_xml_string(xml_response)
|
37
|
-
user.id.should == "123456"
|
38
|
-
user.type.should == :"7digital"
|
39
|
-
user.email_address.should == "user@example.com"
|
40
|
-
end
|
41
|
-
|
42
|
-
end
|
1
|
+
# coding: utf-8
|
2
|
+
require File.expand_path('../../spec_helper', __FILE__)
|
3
|
+
|
4
|
+
describe "UserDigestor" do
|
5
|
+
|
6
|
+
before do
|
7
|
+
@user_digestor = Sevendigital::UserDigestor.new(nil)
|
8
|
+
end
|
9
|
+
|
10
|
+
it "should not digest from invalid xml but throw up (exception)" do
|
11
|
+
|
12
|
+
xml_response = <<XML
|
13
|
+
<xxx>
|
14
|
+
<type>invalid</type>
|
15
|
+
</xxx>
|
16
|
+
XML
|
17
|
+
|
18
|
+
running {@user_digestor.from_xml_string(xml_response)}.should raise_error(Sevendigital::DigestiveProblem)
|
19
|
+
end
|
20
|
+
|
21
|
+
it "should parse from xml and populate minimum available properties" do
|
22
|
+
|
23
|
+
xml_response = <<XML
|
24
|
+
<user>
|
25
|
+
</user>
|
26
|
+
XML
|
27
|
+
|
28
|
+
user = @user_digestor.from_xml_string(xml_response)
|
29
|
+
user.should_not be_nil
|
30
|
+
end
|
31
|
+
|
32
|
+
it "should parse from xml and populate all properties" do
|
33
|
+
|
34
|
+
xml_response = load_sample_object_xml("user")
|
35
|
+
|
36
|
+
user = @user_digestor.from_xml_string(xml_response)
|
37
|
+
user.id.should == "123456"
|
38
|
+
user.type.should == :"7digital"
|
39
|
+
user.email_address.should == "user@example.com"
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|