7digital 0.1.2 → 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (197) hide show
  1. checksums.yaml +7 -0
  2. data/README.rdoc +143 -143
  3. data/lib/sevendigital.rb +55 -55
  4. data/lib/sevendigital/api_operator.rb +127 -127
  5. data/lib/sevendigital/api_operator_cached.rb +91 -62
  6. data/lib/sevendigital/api_request.rb +72 -62
  7. data/lib/sevendigital/client.rb +122 -122
  8. data/lib/sevendigital/client_configuration.rb +85 -83
  9. data/lib/sevendigital/client_digestors.rb +122 -122
  10. data/lib/sevendigital/client_managers.rb +57 -57
  11. data/lib/sevendigital/digestion_tract/api_response_digestor.rb +48 -48
  12. data/lib/sevendigital/digestion_tract/artist_digestor.rb +35 -35
  13. data/lib/sevendigital/digestion_tract/basket_digestor.rb +19 -19
  14. data/lib/sevendigital/digestion_tract/basket_item_digestor.rb +26 -26
  15. data/lib/sevendigital/digestion_tract/chart_item_digestor.rb +34 -34
  16. data/lib/sevendigital/digestion_tract/country_digestor.rb +15 -15
  17. data/lib/sevendigital/digestion_tract/digestor.rb +122 -122
  18. data/lib/sevendigital/digestion_tract/download_url_digestor.rb +23 -23
  19. data/lib/sevendigital/digestion_tract/format_digestor.rb +24 -24
  20. data/lib/sevendigital/digestion_tract/label_digestor.rb +21 -21
  21. data/lib/sevendigital/digestion_tract/list_digestor.rb +24 -24
  22. data/lib/sevendigital/digestion_tract/list_item_digestor.rb +26 -26
  23. data/lib/sevendigital/digestion_tract/locker_digestor.rb +22 -22
  24. data/lib/sevendigital/digestion_tract/locker_release_digestor.rb +26 -26
  25. data/lib/sevendigital/digestion_tract/locker_track_digestor.rb +26 -26
  26. data/lib/sevendigital/digestion_tract/oauth_access_token_digestor.rb +18 -18
  27. data/lib/sevendigital/digestion_tract/oauth_request_token_digestor.rb +18 -18
  28. data/lib/sevendigital/digestion_tract/pager_digestor.rb +28 -28
  29. data/lib/sevendigital/digestion_tract/price_digestor.rb +28 -28
  30. data/lib/sevendigital/digestion_tract/release_digestor.rb +45 -45
  31. data/lib/sevendigital/digestion_tract/tag_digestor.rb +23 -23
  32. data/lib/sevendigital/digestion_tract/track_digestor.rb +38 -37
  33. data/lib/sevendigital/digestion_tract/user_card_digestor.rb +24 -24
  34. data/lib/sevendigital/digestion_tract/user_digestor.rb +21 -21
  35. data/lib/sevendigital/management/artist_manager.rb +97 -97
  36. data/lib/sevendigital/management/basket_manager.rb +29 -29
  37. data/lib/sevendigital/management/country_manager.rb +10 -10
  38. data/lib/sevendigital/management/list_manager.rb +18 -18
  39. data/lib/sevendigital/management/manager.rb +12 -12
  40. data/lib/sevendigital/management/oauth_manager.rb +23 -23
  41. data/lib/sevendigital/management/release_manager.rb +54 -54
  42. data/lib/sevendigital/management/tag_manager.rb +10 -10
  43. data/lib/sevendigital/management/track_manager.rb +29 -27
  44. data/lib/sevendigital/management/user_card_manager.rb +26 -26
  45. data/lib/sevendigital/management/user_manager.rb +76 -76
  46. data/lib/sevendigital/model/api_response.rb +32 -32
  47. data/lib/sevendigital/model/artist.rb +104 -104
  48. data/lib/sevendigital/model/basket.rb +15 -15
  49. data/lib/sevendigital/model/basket_item.rb +14 -14
  50. data/lib/sevendigital/model/card.rb +11 -11
  51. data/lib/sevendigital/model/chart_item.rb +9 -9
  52. data/lib/sevendigital/model/download_url.rb +7 -7
  53. data/lib/sevendigital/model/format.rb +7 -7
  54. data/lib/sevendigital/model/label.rb +7 -7
  55. data/lib/sevendigital/model/list.rb +4 -4
  56. data/lib/sevendigital/model/list_item.rb +8 -8
  57. data/lib/sevendigital/model/locker.rb +4 -4
  58. data/lib/sevendigital/model/locker_release.rb +9 -9
  59. data/lib/sevendigital/model/locker_track.rb +9 -9
  60. data/lib/sevendigital/model/price.rb +9 -9
  61. data/lib/sevendigital/model/release.rb +57 -57
  62. data/lib/sevendigital/model/sevendigital_error.rb +11 -11
  63. data/lib/sevendigital/model/sevendigital_object.rb +57 -57
  64. data/lib/sevendigital/model/tag.rb +7 -7
  65. data/lib/sevendigital/model/track.rb +87 -83
  66. data/lib/sevendigital/model/user.rb +74 -74
  67. data/lib/sevendigital/pager.rb +20 -20
  68. data/lib/sevendigital/version.rb +5 -5
  69. data/spec/api_operator_cached_spec.rb +233 -178
  70. data/spec/api_operator_spec.rb +320 -320
  71. data/spec/api_request_spec.rb +46 -31
  72. data/spec/client_configuration_spec.rb +78 -78
  73. data/spec/client_spec.rb +161 -161
  74. data/spec/data/config/sevendigital.yml +5 -5
  75. data/spec/data/configuration_env_override.yml +5 -5
  76. data/spec/data/configuration_override.yml +1 -1
  77. data/spec/digestion_tract/api_response_digestor_spec.rb +93 -93
  78. data/spec/digestion_tract/artist_digestor_spec.rb +81 -81
  79. data/spec/digestion_tract/basket_digestor_spec.rb +31 -31
  80. data/spec/digestion_tract/basket_item_digestor_spec.rb +58 -58
  81. data/spec/digestion_tract/chart_digestor_spec.rb +52 -52
  82. data/spec/digestion_tract/country_digestor_spec.rb +33 -33
  83. data/spec/digestion_tract/digestor_spec.rb +33 -33
  84. data/spec/digestion_tract/download_url_digestor_spec.rb +40 -40
  85. data/spec/digestion_tract/format_digestor_spec.rb +38 -38
  86. data/spec/digestion_tract/label_digestor_spec.rb +33 -33
  87. data/spec/digestion_tract/list_digestor_spec.rb +31 -31
  88. data/spec/digestion_tract/list_item_digestor_spec.rb +80 -80
  89. data/spec/digestion_tract/locker_digestor_spec.rb +30 -30
  90. data/spec/digestion_tract/locker_release_digestor_spec.rb +70 -70
  91. data/spec/digestion_tract/locker_track_digestor_spec.rb +56 -56
  92. data/spec/digestion_tract/oauth_access_token_digestor_spec.rb +34 -34
  93. data/spec/digestion_tract/oauth_request_token_digestor_spec.rb +34 -34
  94. data/spec/digestion_tract/pager_digestor_spec.rb +50 -50
  95. data/spec/digestion_tract/price_digestor_spec.rb +73 -73
  96. data/spec/digestion_tract/release_digestor_spec.rb +115 -115
  97. data/spec/digestion_tract/tag_digestor_spec.rb +46 -46
  98. data/spec/digestion_tract/track_digestor_spec.rb +105 -104
  99. data/spec/digestion_tract/user_card_digestor_spec.rb +58 -58
  100. data/spec/digestion_tract/user_digestor_spec.rb +42 -42
  101. data/spec/integration/artist_spec.rb +99 -86
  102. data/spec/integration/country_spec.rb +18 -18
  103. data/spec/integration/list_spec.rb +22 -22
  104. data/spec/integration/purchasing_spec.rb +24 -24
  105. data/spec/integration/release_spec.rb +34 -34
  106. data/spec/integration/sevendigital_spec.yml +4 -4
  107. data/spec/integration/track_spec.rb +38 -23
  108. data/spec/integration/user_spec.rb +22 -22
  109. data/spec/management/artist_manager_spec.rb +172 -172
  110. data/spec/management/basket_manager_spec.rb +77 -77
  111. data/spec/management/country_manager_spec.rb +34 -34
  112. data/spec/management/list_manager_spec.rb +26 -26
  113. data/spec/management/oauth_manager_spec.rb +72 -72
  114. data/spec/management/release_manager_spec.rb +200 -200
  115. data/spec/management/tag_manager_spec.rb +34 -34
  116. data/spec/management/track_manager_spec.rb +111 -107
  117. data/spec/management/user_card_manager_spec.rb +78 -78
  118. data/spec/management/user_manager_spec.rb +218 -218
  119. data/spec/model/api_response_spec.rb +48 -48
  120. data/spec/model/artist_spec.rb +162 -162
  121. data/spec/model/basket_spec.rb +62 -62
  122. data/spec/model/release_spec.rb +133 -133
  123. data/spec/model/sevendigital_object_spec.rb +73 -73
  124. data/spec/model/track_spec.rb +146 -144
  125. data/spec/model/user_spec.rb +181 -181
  126. data/spec/spec_helper.rb +86 -84
  127. data/spec/test-xml/methods/artist/browse.xml +21 -21
  128. data/spec/test-xml/methods/artist/byTag/top.xml +50 -50
  129. data/spec/test-xml/methods/artist/chart.xml +30 -30
  130. data/spec/test-xml/methods/artist/details.xml +9 -9
  131. data/spec/test-xml/methods/artist/releases.xml +544 -544
  132. data/spec/test-xml/methods/artist/search.xml +18 -18
  133. data/spec/test-xml/methods/artist/similar.xml +39 -39
  134. data/spec/test-xml/methods/artist/tags.xml +11 -11
  135. data/spec/test-xml/methods/artist/toptracks.xml +279 -279
  136. data/spec/test-xml/methods/basket/additem.xml +23 -23
  137. data/spec/test-xml/methods/basket/create.xml +10 -10
  138. data/spec/test-xml/methods/basket/index.xml +23 -23
  139. data/spec/test-xml/methods/basket/removeitem.xml +10 -10
  140. data/spec/test-xml/methods/country/resolve.xml +6 -6
  141. data/spec/test-xml/methods/editorial/list.xml +170 -170
  142. data/spec/test-xml/methods/oauth/accesstoken.xml +5 -5
  143. data/spec/test-xml/methods/oauth/requesttoken.xml +5 -5
  144. data/spec/test-xml/methods/release/bydate.xml +173 -173
  145. data/spec/test-xml/methods/release/bytag/top.xml +150 -150
  146. data/spec/test-xml/methods/release/chart.xml +181 -181
  147. data/spec/test-xml/methods/release/details.xml +48 -48
  148. data/spec/test-xml/methods/release/recommend.xml +89 -89
  149. data/spec/test-xml/methods/release/search.xml +194 -194
  150. data/spec/test-xml/methods/release/tags.xml +27 -27
  151. data/spec/test-xml/methods/release/tracks.xml +28 -28
  152. data/spec/test-xml/methods/tag/index.xml +16 -16
  153. data/spec/test-xml/methods/track/chart.xml +149 -149
  154. data/spec/test-xml/methods/track/details.xml +30 -30
  155. data/spec/test-xml/methods/track/search.xml +159 -159
  156. data/spec/test-xml/methods/user/details.xml +4 -4
  157. data/spec/test-xml/methods/user/locker.xml +49 -49
  158. data/spec/test-xml/methods/user/payment/card/add.xml +7 -7
  159. data/spec/test-xml/methods/user/payment/card/index.xml +7 -7
  160. data/spec/test-xml/methods/user/purchase/basket.xml +48 -48
  161. data/spec/test-xml/methods/user/purchase/item.xml +48 -48
  162. data/spec/test-xml/methods/user/signUp.xml +5 -5
  163. data/spec/test-xml/objects/artist.xml +7 -7
  164. data/spec/test-xml/objects/artist_chart_item.xml +7 -7
  165. data/spec/test-xml/objects/artist_list.xml +22 -22
  166. data/spec/test-xml/objects/artist_list_empty.xml +4 -4
  167. data/spec/test-xml/objects/basket.xml +21 -21
  168. data/spec/test-xml/objects/basket_item.xml +11 -11
  169. data/spec/test-xml/objects/basket_item_list.xml +25 -25
  170. data/spec/test-xml/objects/basket_item_list_empty.xml +1 -1
  171. data/spec/test-xml/objects/download_url.xml +7 -7
  172. data/spec/test-xml/objects/list.xml +89 -89
  173. data/spec/test-xml/objects/list_item_list.xml +85 -85
  174. data/spec/test-xml/objects/list_item_release.xml +13 -13
  175. data/spec/test-xml/objects/locker.xml +47 -47
  176. data/spec/test-xml/objects/locker_release.xml +40 -40
  177. data/spec/test-xml/objects/locker_release_list.xml +87 -87
  178. data/spec/test-xml/objects/locker_release_list_empty.xml +4 -4
  179. data/spec/test-xml/objects/locker_release_one_item_list.xml +43 -43
  180. data/spec/test-xml/objects/locker_track.xml +25 -25
  181. data/spec/test-xml/objects/locker_track_list.xml +26 -26
  182. data/spec/test-xml/objects/locker_track_list_empty.xml +2 -2
  183. data/spec/test-xml/objects/nested_release_list.xml +22 -22
  184. data/spec/test-xml/objects/oauth_access_token.xml +3 -3
  185. data/spec/test-xml/objects/oauth_request_token.xml +3 -3
  186. data/spec/test-xml/objects/price.xml +7 -7
  187. data/spec/test-xml/objects/release.xml +40 -40
  188. data/spec/test-xml/objects/release_chart_item.xml +39 -39
  189. data/spec/test-xml/objects/release_list.xml +18 -18
  190. data/spec/test-xml/objects/release_list_empty.xml +4 -4
  191. data/spec/test-xml/objects/response.xml +38 -38
  192. data/spec/test-xml/objects/tag.xml +4 -4
  193. data/spec/test-xml/objects/track.xml +34 -33
  194. data/spec/test-xml/objects/track_chart_item.xml +27 -27
  195. data/spec/test-xml/objects/user.xml +4 -4
  196. data/spec/test-xml/objects/user_payment_card.xml +5 -5
  197. metadata +15 -25
@@ -1,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
- end
69
-
70
- it "should digest xml containing list of tracks and return an array" do
71
-
72
- xml_response = <<XML
73
- <results>
74
- <page>1</page>
75
- <pageSize>2</pageSize>
76
- <totalItems>50</totalItems>
77
- <track id="123">
78
- <title>expected track title</title>
79
- <artist id="345">
80
- <name>expected artist name</name>
81
- <appearsAs>expected displayed artist name</appearsAs>
82
- </artist>
83
- </track>
84
- <track id="456">
85
- <title>expected track title</title>
86
- <artist id="789">
87
- <name>expected artist name</name>
88
- <appearsAs>expected displayed artist name</appearsAs>
89
- </artist>
90
- </track>
91
- </results>
92
- XML
93
-
94
- tracks = @track_digestor.list_from_xml_string(xml_response, :results)
95
- tracks[0].id.should == 123
96
- tracks[0].artist.id.should == 345
97
- tracks[1].id.should == 456
98
- tracks[1].artist.id.should == 789
99
- tracks.size.should == 2
100
- tracks.total_entries.should == 50
101
-
102
-
103
- end
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