big-door 0.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.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
|