big-door 0.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.bundle/config +2 -0
- data/.document +5 -0
- data/.gitignore +22 -0
- data/Gemfile +12 -0
- data/LICENSE +20 -0
- data/README.rdoc +17 -0
- data/Rakefile +59 -0
- data/VERSION +1 -0
- data/features/big-door.feature +26 -0
- data/features/step_definitions/big-door_steps.rb +83 -0
- data/features/support/env.rb +5 -0
- data/lib/big-door.rb +127 -0
- data/lib/big-door/base.rb +45 -0
- data/lib/big-door/currency.rb +25 -0
- data/lib/big-door/named_transaction.rb +25 -0
- data/lib/big-door/named_transaction_group.rb +27 -0
- data/lib/big-door/request.rb +7 -0
- data/lib/big-door/response_codes.rb +266 -0
- data/lib/big-door/user.rb +49 -0
- data/spec/.rspec +1 -0
- data/spec/big-door_spec.rb +105 -0
- data/spec/spec_helper.rb +19 -0
- data/spec/support/vcr.rb +7 -0
- data/vcr_cassettes/NamedTransaction/NamedTransaction.yml +213 -0
- data/vcr_cassettes/NamedTransaction/specific.yml +6043 -0
- data/vcr_cassettes/award/award_summary.yml +34 -0
- data/vcr_cassettes/currency/currency.yml +52 -0
- data/vcr_cassettes/currency/currency_type.yml +31 -0
- data/vcr_cassettes/currency/specific.yml +2980 -0
- data/vcr_cassettes/good/good_summary.yml +34 -0
- data/vcr_cassettes/level/level_summary.yml +34 -0
- data/vcr_cassettes/named_transaction/named_transactions.yml +107 -0
- data/vcr_cassettes/named_transaction_group/all.yml +145 -0
- data/vcr_cassettes/named_transaction_group/specific.yml +3171 -0
- data/vcr_cassettes/user/add_points.yml +36 -0
- data/vcr_cassettes/user/all.yml +473 -0
- data/vcr_cassettes/user/create.yml +393 -0
- data/vcr_cassettes/user/currency_balance.yml +738 -0
- data/vcr_cassettes/user/new.yml +5660 -0
- data/vcr_cassettes/user/new_currency_balance.yml +470 -0
- data/vcr_cassettes/user/specific.yml +213 -0
- metadata +175 -0
@@ -0,0 +1,25 @@
|
|
1
|
+
module BigDoor
|
2
|
+
class Currency
|
3
|
+
include ClassMethods
|
4
|
+
|
5
|
+
def initialize(params)
|
6
|
+
params.each_pair do |key, val|
|
7
|
+
self.class.class_eval do
|
8
|
+
# overwrite the .id method and all others
|
9
|
+
self.instance_eval do
|
10
|
+
attr_accessor key
|
11
|
+
end
|
12
|
+
end
|
13
|
+
instance_variable_set("@#{key}", val)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.all
|
18
|
+
perform_request('get', 'currency')
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.find(params={})
|
22
|
+
perform_request('get', 'currency', params)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module BigDoor
|
2
|
+
class NamedTransaction
|
3
|
+
include ClassMethods
|
4
|
+
|
5
|
+
def initialize(params)
|
6
|
+
params.each_pair do |key, val|
|
7
|
+
self.class.class_eval do
|
8
|
+
next if self.instance_methods.include?(key)
|
9
|
+
self.instance_eval do
|
10
|
+
attr_accessor key
|
11
|
+
end
|
12
|
+
end
|
13
|
+
instance_variable_set("@#{key}", val)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.all
|
18
|
+
perform_request('get', 'named_transaction')
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.find(params={})
|
22
|
+
results = perform_request('get', 'named_transaction', params)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module BigDoor
|
2
|
+
class NamedTransactionGroup
|
3
|
+
include ClassMethods
|
4
|
+
|
5
|
+
def initialize(params)
|
6
|
+
params.each_pair do |key, val|
|
7
|
+
self.class.class_eval do
|
8
|
+
next if self.instance_methods.include?(key) and key.to_s != 'id'
|
9
|
+
self.instance_eval do
|
10
|
+
attr_accessor key
|
11
|
+
end
|
12
|
+
end
|
13
|
+
instance_variable_set("@#{key}", val)
|
14
|
+
end
|
15
|
+
|
16
|
+
self.named_transactions = parse_out_classes(params['named_transactions'])
|
17
|
+
end
|
18
|
+
|
19
|
+
def self.all
|
20
|
+
perform_request('get', 'named_transaction_group')
|
21
|
+
end
|
22
|
+
|
23
|
+
def self.find(params={})
|
24
|
+
results = perform_request('get', 'named_transaction_group', params)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,266 @@
|
|
1
|
+
module BigDoor
|
2
|
+
module ResponseCodes
|
3
|
+
|
4
|
+
def self.find(args)
|
5
|
+
if args.is_a? Numeric
|
6
|
+
args = {:code => args}
|
7
|
+
end
|
8
|
+
raise ArgumentError, "Expected a Hash but got a #{args.class}" unless args.is_a? Hash
|
9
|
+
CODES.find {|x| x[args.keys.first.to_sym] == args.values.first}
|
10
|
+
end
|
11
|
+
|
12
|
+
CODES = [
|
13
|
+
{:code => 0,
|
14
|
+
:response_condition => "Created",
|
15
|
+
:log => false,
|
16
|
+
:is_error => false,
|
17
|
+
:return_objects_url_with_error => false,
|
18
|
+
:http_response => 201,
|
19
|
+
:http_code_definition => "Created",
|
20
|
+
:reason_phrase => "Created",
|
21
|
+
:header_modifications => "",
|
22
|
+
:value => ""},
|
23
|
+
{:code => 1,
|
24
|
+
:response_condition => "Updated",
|
25
|
+
:log => false,
|
26
|
+
:is_error => false,
|
27
|
+
:return_objects_url_with_error => false,
|
28
|
+
:http_response => 200,
|
29
|
+
:http_code_definition => "OK",
|
30
|
+
:reason_phrase => "Updated",
|
31
|
+
:header_modifications => "",
|
32
|
+
:value => ""},
|
33
|
+
{:code => 2,
|
34
|
+
:response_condition => "Signature Failure Error",
|
35
|
+
:log => true,
|
36
|
+
:is_error => true,
|
37
|
+
:return_objects_url_with_error => false,
|
38
|
+
:http_response => 401,
|
39
|
+
:http_code_definition => "Unauthorized",
|
40
|
+
:reason_phrase => "Invalid signature; review the Request Signature process and retry",
|
41
|
+
:header_modifications => "WWW-Authenticate",
|
42
|
+
:value => "auth-scheme = \"Digest\" nonce = \"random number\""},
|
43
|
+
{:code => 3,
|
44
|
+
:response_condition => "User Cap Error",
|
45
|
+
:log => true,
|
46
|
+
:is_error => true,
|
47
|
+
:return_objects_url_with_error => true,
|
48
|
+
:http_response => 503,
|
49
|
+
:http_code_definition => "Service Unavailable",
|
50
|
+
:reason_phrase => "User Cap met; if applicable,
|
51
|
+
wait and retry or re-configure caps.",
|
52
|
+
:header_modifications => "",
|
53
|
+
:value => ""},
|
54
|
+
{:code => 4,
|
55
|
+
:response_condition => "Replay (pre) Error",
|
56
|
+
:log => true,
|
57
|
+
:is_error => true,
|
58
|
+
:return_objects_url_with_error => true,
|
59
|
+
:http_response => 503,
|
60
|
+
:http_code_definition => "Service Unavailable",
|
61
|
+
:reason_phrase => "Token previously used (pre); use a unique token",
|
62
|
+
:header_modifications => "",
|
63
|
+
:value => ""},
|
64
|
+
{:code => 5,
|
65
|
+
:response_condition => "No Named Group Primary Error",
|
66
|
+
:log => true,
|
67
|
+
:is_error => true,
|
68
|
+
:return_objects_url_with_error => true,
|
69
|
+
:http_response => 409,
|
70
|
+
:http_code_definition => "Conflict",
|
71
|
+
:reason_phrase => "No Named Group Primary; set a Primary Named Transaction for this group.",
|
72
|
+
:header_modifications => "",
|
73
|
+
:value => ""},
|
74
|
+
{:code => 6,
|
75
|
+
:response_condition => "Variable Amounts Disallowed Error [2]",
|
76
|
+
:log => false,
|
77
|
+
:is_error => true,
|
78
|
+
:return_objects_url_with_error => true,
|
79
|
+
:http_response => 409,
|
80
|
+
:http_code_definition => "Conflict",
|
81
|
+
:reason_phrase => "Variable amounts not allowed; retry without passing amount,
|
82
|
+
or reconfigure group.",
|
83
|
+
:header_modifications => "",
|
84
|
+
:value => ""},
|
85
|
+
{:code => 7,
|
86
|
+
:response_condition => "Balance Exceeded Error",
|
87
|
+
:log => true,
|
88
|
+
:is_error => true,
|
89
|
+
:return_objects_url_with_error => true,
|
90
|
+
:http_response => 402,
|
91
|
+
:http_code_definition => "Payment Required",
|
92
|
+
:reason_phrase => "Balance exceeded for this user; advise end-user",
|
93
|
+
:header_modifications => "",
|
94
|
+
:value => ""},
|
95
|
+
{:code => 8,
|
96
|
+
:response_condition => "Transaction Error",
|
97
|
+
:log => true,
|
98
|
+
:is_error => true,
|
99
|
+
:return_objects_url_with_error => true,
|
100
|
+
:http_response => 500,
|
101
|
+
:http_code_definition => "Internal Server Error",
|
102
|
+
:reason_phrase => "Transaction error; alert service provider",
|
103
|
+
:header_modifications => "",
|
104
|
+
:value => ""},
|
105
|
+
{:code => 9,
|
106
|
+
:response_condition => "Summary Update Error [3]",
|
107
|
+
:log => false,
|
108
|
+
:is_error => true,
|
109
|
+
:return_objects_url_with_error => true,
|
110
|
+
:http_response => 500,
|
111
|
+
:http_code_definition => "Internal Server Error",
|
112
|
+
:reason_phrase => "Summary update error; alert service provider",
|
113
|
+
:header_modifications => "",
|
114
|
+
:value => ""},
|
115
|
+
{:code => 10,
|
116
|
+
:response_condition => "Replay (post) Error",
|
117
|
+
:log => true,
|
118
|
+
:is_error => true,
|
119
|
+
:return_objects_url_with_error => true,
|
120
|
+
:http_response => 503,
|
121
|
+
:http_code_definition => "Service Unavailable",
|
122
|
+
:reason_phrase => "Token previously used (post); use a unique token",
|
123
|
+
:header_modifications => "",
|
124
|
+
:value => ""},
|
125
|
+
{:code => 11,
|
126
|
+
:response_condition => "Method Not Allowed",
|
127
|
+
:log => true,
|
128
|
+
:is_error => true,
|
129
|
+
:return_objects_url_with_error => false,
|
130
|
+
:http_response => 405,
|
131
|
+
:http_code_definition => "Method Not Allowed",
|
132
|
+
:reason_phrase => "HTTP Method not allowed on this resource",
|
133
|
+
:header_modifications => "",
|
134
|
+
:value => ""},
|
135
|
+
{:code => 12,
|
136
|
+
:response_condition => "Method Not Recognized",
|
137
|
+
:log => true,
|
138
|
+
:is_error => true,
|
139
|
+
:return_objects_url_with_error => false,
|
140
|
+
:http_response => 501,
|
141
|
+
:http_code_definition => "Not Implemented",
|
142
|
+
:reason_phrase => "HTTP Method not recognized.",
|
143
|
+
:header_modifications => "",
|
144
|
+
:value => ""},
|
145
|
+
{:code => 13,
|
146
|
+
:response_condition => "User Disabled",
|
147
|
+
:log => true,
|
148
|
+
:is_error => true,
|
149
|
+
:return_objects_url_with_error => true,
|
150
|
+
:http_response => 403,
|
151
|
+
:http_code_definition => "Forbidden",
|
152
|
+
:reason_phrase => "User has been disabled; contact us to re-enable",
|
153
|
+
:header_modifications => "",
|
154
|
+
:value => ""},
|
155
|
+
{:code => 14,
|
156
|
+
:response_condition => "Named Transaction is_source misconfigured",
|
157
|
+
:log => true,
|
158
|
+
:is_error => true,
|
159
|
+
:return_objects_url_with_error => true,
|
160
|
+
:http_response => 409,
|
161
|
+
:http_code_definition => "Conflict",
|
162
|
+
:reason_phrase => "Named Transaction has incorrect is_source flag. Sales of goods must not be sources",
|
163
|
+
:header_modifications => "",
|
164
|
+
:value => ""},
|
165
|
+
{:code => 15,
|
166
|
+
:response_condition => "Missing Argument",
|
167
|
+
:log => true,
|
168
|
+
:is_error => true,
|
169
|
+
:return_objects_url_with_error => false,
|
170
|
+
:http_response => 405,
|
171
|
+
:http_code_definition => "Method Not Allowed",
|
172
|
+
:reason_phrase => "HTTP Method not allowed because it was missing a required argument",
|
173
|
+
:header_modifications => "",
|
174
|
+
:value => ""},
|
175
|
+
{:code => 16,
|
176
|
+
:response_condition => "Invalid ID or value in GET",
|
177
|
+
:log => true,
|
178
|
+
:is_error => true,
|
179
|
+
:return_objects_url_with_error => false,
|
180
|
+
:http_response => 405,
|
181
|
+
:http_code_definition => "Method Not Allowed",
|
182
|
+
:reason_phrase => "HTTP Method not allowed because it attempted to use a not owned or otherwise invalid resource.",
|
183
|
+
:header_modifications => "",
|
184
|
+
:value => ""},
|
185
|
+
{:code => 17,
|
186
|
+
:response_condition => "Invalid ID or value in POST",
|
187
|
+
:log => true,
|
188
|
+
:is_error => true,
|
189
|
+
:return_objects_url_with_error => false,
|
190
|
+
:http_response => 405,
|
191
|
+
:http_code_definition => "Method Not Allowed",
|
192
|
+
:reason_phrase => "HTTP Method not allowed because it attempted to use a not owned or otherwise invalid resource.",
|
193
|
+
:header_modifications => "",
|
194
|
+
:value => ""},
|
195
|
+
{:code => 18,
|
196
|
+
:response_condition => "Timestamp expired",
|
197
|
+
:log => true,
|
198
|
+
:is_error => true,
|
199
|
+
:return_objects_url_with_error => false,
|
200
|
+
:http_response => 401,
|
201
|
+
:http_code_definition => "Unauthorized",
|
202
|
+
:reason_phrase => "Timestamp has expired; create a new request with a current timestamp.",
|
203
|
+
:header_modifications => "",
|
204
|
+
:value => ""},
|
205
|
+
{:code => 19,
|
206
|
+
:response_condition => "Challenge-response failure",
|
207
|
+
:log => true,
|
208
|
+
:is_error => true,
|
209
|
+
:return_objects_url_with_error => false,
|
210
|
+
:http_response => 401,
|
211
|
+
:http_code_definition => "Unauthorized",
|
212
|
+
:reason_phrase => "6 challenge response failures",
|
213
|
+
:header_modifications => "",
|
214
|
+
:value => ""},
|
215
|
+
{:code => 20,
|
216
|
+
:response_condition => "Challenge-response success",
|
217
|
+
:log => true,
|
218
|
+
:is_error => false,
|
219
|
+
:return_objects_url_with_error => false,
|
220
|
+
:http_response => 200,
|
221
|
+
:http_code_definition => "OK",
|
222
|
+
:reason_phrase => "Challenge-response accepted",
|
223
|
+
:header_modifications => "",
|
224
|
+
:value => ""},
|
225
|
+
{:code => 21,
|
226
|
+
:response_condition => "Malformed input parameter",
|
227
|
+
:log => true,
|
228
|
+
:is_error => true,
|
229
|
+
:return_objects_url_with_error => true,
|
230
|
+
:http_response => 400,
|
231
|
+
:http_code_definition => "Bad Request",
|
232
|
+
:reason_phrase => "Token must be a valid hexidecimal GUID",
|
233
|
+
:header_modifications => "",
|
234
|
+
:value => ""},
|
235
|
+
{:code => 22,
|
236
|
+
:response_condition => "Disabled Named Good Collection",
|
237
|
+
:log => true,
|
238
|
+
:is_error => true,
|
239
|
+
:return_objects_url_with_error => true,
|
240
|
+
:http_response => 409,
|
241
|
+
:http_code_definition => "Conflict",
|
242
|
+
:reason_phrase => "An associated NamedGood has been disabled via its NamedGoodCollection; contact service provider",
|
243
|
+
:header_modifications => "",
|
244
|
+
:value => ""},
|
245
|
+
{:code => 23,
|
246
|
+
:response_condition => "Disabled Named Good",
|
247
|
+
:log => true,
|
248
|
+
:is_error => true,
|
249
|
+
:return_objects_url_with_error => true,
|
250
|
+
:http_response => 409,
|
251
|
+
:http_code_definition => "Conflict",
|
252
|
+
:reason_phrase => "An associated NamedGood has been disabled; contact service provider",
|
253
|
+
:header_modifications => "",
|
254
|
+
:value => ""},
|
255
|
+
{:code => 24,
|
256
|
+
:response_condition => "Resource Found",
|
257
|
+
:log => true,
|
258
|
+
:is_error => false,
|
259
|
+
:return_objects_url_with_error => false,
|
260
|
+
:http_response => 200,
|
261
|
+
:http_code_definition => "OK",
|
262
|
+
:reason_phrase => "The resource was found. Request this resource with verbosity > 0 to retrieve data.",
|
263
|
+
:header_modifications => "",
|
264
|
+
:value => ""}]
|
265
|
+
end
|
266
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
# [{"sent_good_summaries"=>[], "level_summaries"=>[], "read_only"=>0, "received_good_summaries"=>[], "guid"=>"a24ff58ca0d711df966120ad2f73afad", "created_timestamp"=>1281043384, "modified_timestamp"=>1281043384, "end_user_login"=>"testers", "award_summaries"=>[], "currency_balances"=>[], "resource_name"=>"end_user"}, {}]
|
2
|
+
|
3
|
+
module BigDoor
|
4
|
+
class User
|
5
|
+
include ClassMethods
|
6
|
+
|
7
|
+
def initialize(params)
|
8
|
+
params.each_pair do |key, val|
|
9
|
+
self.class.class_eval do
|
10
|
+
next if self.instance_methods.include?(key)
|
11
|
+
self.instance_eval do
|
12
|
+
attr_accessor key
|
13
|
+
end
|
14
|
+
end
|
15
|
+
instance_variable_set("@#{key}", val)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def self.all
|
20
|
+
perform_request('get', 'end_user')
|
21
|
+
end
|
22
|
+
|
23
|
+
def self.create(params)
|
24
|
+
perform_request('post', 'end_user', params)
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.find(login)
|
28
|
+
perform_request('get', 'end_user', {:id => login})
|
29
|
+
end
|
30
|
+
|
31
|
+
def transaction
|
32
|
+
perform_request('get', "end_user/#{self.end_user_login}/transaction")
|
33
|
+
end
|
34
|
+
|
35
|
+
def add_points(named_transaction_group, points)
|
36
|
+
perform_request('post', "named_transaction_group/#{named_transaction_group.id}/execute", {:id => self.end_user_login, :amount => points})
|
37
|
+
end
|
38
|
+
|
39
|
+
def get_currency_balance(currency=nil)
|
40
|
+
params = {}
|
41
|
+
params[:id] = currency.id.to_s unless currency.nil?
|
42
|
+
result = perform_request('get', "end_user/#{self.end_user_login}/currency_balance", params)
|
43
|
+
result = parse_out_classes(result)
|
44
|
+
result['currency'] = parse_out_classes(result['currency']) unless result.empty?
|
45
|
+
|
46
|
+
return result
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
data/spec/.rspec
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--color
|
@@ -0,0 +1,105 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
2
|
+
require 'ruby-debug'
|
3
|
+
|
4
|
+
describe "BigDoor" do
|
5
|
+
before do
|
6
|
+
@big_door = BigDoor::Base.new(:app_key => '0d38d9cd41b0440bbf22c0720be58b27', :secret_key => '5d0b2aed7a7149a9aae97d33f6c23b83')
|
7
|
+
end
|
8
|
+
|
9
|
+
describe "handle errors" do
|
10
|
+
it "should handle a method call that isn't valid" do
|
11
|
+
lambda { @big_door.hello_world }.should raise_error ArgumentError
|
12
|
+
end
|
13
|
+
|
14
|
+
describe "response codes" do
|
15
|
+
it "should handle an integer" do
|
16
|
+
code = 13
|
17
|
+
BigDoor::ResponseCodes.find(code)[:code].should eql(code)
|
18
|
+
end
|
19
|
+
|
20
|
+
it "should handle a hash" do
|
21
|
+
BigDoor::ResponseCodes.find(:http_response => 201)[:code].should eql(0)
|
22
|
+
end
|
23
|
+
|
24
|
+
it "should raise an error if it's passed something that isn't a hash or number" do
|
25
|
+
lambda { BigDoor::ResponseCodes.find("I'm a n00b") }.should raise_error ArgumentError
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
describe "map BigDoor users to Users object" do
|
31
|
+
it "should map params to a user object" do
|
32
|
+
params = {"sent_good_summaries"=>[], "level_summaries"=>[], "read_only"=>0, "received_good_summaries"=>[], "guid"=>"a24ff58ca0d711df966120ad2f73afad", "created_timestamp"=>1281043384, "modified_timestamp"=>1281043384, "end_user_login"=>"testers", "award_summaries"=>[], "currency_balances"=>[], "resource_name"=>"end_user"}
|
33
|
+
|
34
|
+
user = BigDoor::User.new(params)
|
35
|
+
params.keys.each do |meth|
|
36
|
+
user.public_methods.should include(meth, "#{meth}=")
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
it "should get all users" do
|
41
|
+
VCR.use_cassette('user/all', :record => :new_episodes) do
|
42
|
+
@users = BigDoor::User.all
|
43
|
+
end
|
44
|
+
@users.each do |user|
|
45
|
+
user.class.should eql(BigDoor::User)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
it "should create a user with an id that is an email address" do
|
50
|
+
email = "fakeemailer@trada.com"
|
51
|
+
VCR.use_cassette('user/create', :record => :new_episodes) do
|
52
|
+
@response = BigDoor::User.create(:end_user_login => email, :guid => SecureRandom.hex)
|
53
|
+
end
|
54
|
+
|
55
|
+
@response.end_user_login.should eql(email)
|
56
|
+
end
|
57
|
+
|
58
|
+
it "should get a specific user" do
|
59
|
+
VCR.use_cassette('user/specific', :record => :new_episodes) do
|
60
|
+
@user = BigDoor::User.find('testers')
|
61
|
+
end
|
62
|
+
|
63
|
+
[*@user].length.should eql(1)
|
64
|
+
@user.end_user_login.should eql('testers')
|
65
|
+
end
|
66
|
+
|
67
|
+
it "should get a specific user that uses an email address" do
|
68
|
+
email = 'fakeemailer@trada.com'
|
69
|
+
VCR.use_cassette('user/specific', :record => :new_episodes) do
|
70
|
+
@user = BigDoor::User.find(email)
|
71
|
+
end
|
72
|
+
|
73
|
+
[*@user].length.should eql(1)
|
74
|
+
@user.end_user_login.should eql(email)
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
describe "handle currency objects" do
|
79
|
+
it "should return all the currency objects" do
|
80
|
+
VCR.use_cassette('currency/currency', :record => :new_episodes) do
|
81
|
+
@currency = BigDoor::Currency.all
|
82
|
+
end
|
83
|
+
@currency.class.should eql(BigDoor::Currency)
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
describe "handle named_transaction objects" do
|
88
|
+
it "should return all the named_transaction objects" do
|
89
|
+
VCR.use_cassette('named_transaction/named_transactions', :record => :new_episodes) do
|
90
|
+
@named_transactions = BigDoor::NamedTransaction.all
|
91
|
+
end
|
92
|
+
@named_transactions.first.class.should eql(BigDoor::NamedTransaction)
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
describe "handle named_transaction_group objects" do
|
97
|
+
it "should return all the named_transaction_group objects" do
|
98
|
+
VCR.use_cassette('named_transaction_group/all', :record => :new_episodes) do
|
99
|
+
@named_transactions_group = BigDoor::NamedTransactionGroup.all
|
100
|
+
end
|
101
|
+
@named_transactions_group.first.class.should eql(BigDoor::NamedTransactionGroup)
|
102
|
+
[*@named_transactions_group.first.named_transactions].first.class.should eql(BigDoor::NamedTransaction)
|
103
|
+
end
|
104
|
+
end
|
105
|
+
end
|