trustev 0.3.2 → 0.4.0.pre.alpha

Sign up to get free protection for your applications and to get access to all the features.
Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +3 -329
  3. data/Rakefile +1 -2
  4. data/lib/trustev.rb +20 -68
  5. data/lib/trustev/{authenticate.rb → 1.2/authenticate.rb} +0 -0
  6. data/lib/trustev/{digital_signature.rb → 1.2/digital_signature.rb} +0 -0
  7. data/lib/trustev/{profile.rb → 1.2/profile.rb} +1 -1
  8. data/lib/trustev/{social.rb → 1.2/social.rb} +0 -0
  9. data/lib/trustev/{transaction.rb → 1.2/transaction.rb} +0 -0
  10. data/lib/trustev/1.2/trustev.rb +66 -0
  11. data/lib/trustev/2.0/address.rb +41 -0
  12. data/lib/trustev/2.0/authenticate.rb +40 -0
  13. data/lib/trustev/2.0/case.rb +45 -0
  14. data/lib/trustev/2.0/case_attribute.rb +24 -0
  15. data/lib/trustev/2.0/customer.rb +32 -0
  16. data/lib/trustev/2.0/customer_address.rb +5 -0
  17. data/lib/trustev/2.0/decision.rb +17 -0
  18. data/lib/trustev/2.0/email.rb +35 -0
  19. data/lib/trustev/2.0/item.rb +34 -0
  20. data/lib/trustev/2.0/payment.rb +33 -0
  21. data/lib/trustev/2.0/social.rb +38 -0
  22. data/lib/trustev/2.0/status.rb +34 -0
  23. data/lib/trustev/2.0/timestamp.rb +17 -0
  24. data/lib/trustev/2.0/transaction.rb +30 -0
  25. data/lib/trustev/2.0/transaction_address.rb +5 -0
  26. data/lib/trustev/2.0/trustev.rb +51 -0
  27. data/lib/trustev/error.rb +5 -6
  28. data/lib/trustev/version.rb +1 -1
  29. data/test/{authenticate_test.rb → 1.2/authenticate_test.rb} +0 -0
  30. data/test/{digital_signature_test.rb → 1.2/digital_signature_test.rb} +0 -0
  31. data/test/{error_test.rb → 1.2/error_test.rb} +3 -3
  32. data/test/{profile_test.rb → 1.2/profile_test.rb} +0 -0
  33. data/test/{social_test.rb → 1.2/social_test.rb} +0 -0
  34. data/test/{test_helper.rb → 1.2/test_helper.rb} +3 -2
  35. data/test/{transaction_test.rb → 1.2/transaction_test.rb} +0 -0
  36. data/test/2.0/authenticate_test.rb +13 -0
  37. data/test/2.0/case_test.rb +31 -0
  38. data/test/2.0/customer_address_test.rb +35 -0
  39. data/test/2.0/customer_test.rb +31 -0
  40. data/test/2.0/decision_test.rb +13 -0
  41. data/test/2.0/email_test.rb +33 -0
  42. data/test/2.0/error_test.rb +18 -0
  43. data/test/2.0/item_test.rb +33 -0
  44. data/test/2.0/payment_test.rb +33 -0
  45. data/test/2.0/social_test.rb +33 -0
  46. data/test/2.0/status_test.rb +27 -0
  47. data/test/2.0/test_helper.rb +165 -0
  48. data/test/2.0/transaction_address_Test.rb +35 -0
  49. data/test/2.0/transaction_test.rb +31 -0
  50. data/trustev.gemspec +3 -0
  51. metadata +111 -24
@@ -0,0 +1,27 @@
1
+ require_relative 'test_helper'
2
+
3
+ describe Trustev::Status do
4
+ before do
5
+ trustev_case = build_case
6
+ @case_id = trustev_case.create[:Id]
7
+ @status = build_status case_id: @case_id
8
+ end
9
+
10
+ describe 'when creating an status' do
11
+ it 'must return a valid response' do
12
+ create_case_attribute @status
13
+ end
14
+ end
15
+
16
+ describe 'when retrieving a status' do
17
+ it 'must return a valid response' do
18
+ retrieve_case_attribute @status, Trustev::Status, @case_id
19
+ end
20
+ end
21
+
22
+ describe 'when retrieving all status' do
23
+ it 'must return a valid response' do
24
+ retrieve_all_case_attribute Trustev::Status, @case_id
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,165 @@
1
+ require_relative '../../lib/trustev'
2
+ require 'minitest/autorun'
3
+ require 'securerandom'
4
+ require 'faker'
5
+
6
+ Trustev.username = ENV['TRUSTEV_USERNAME']
7
+ Trustev.password = ENV['TRUSTEV_PASSWORD']
8
+ Trustev.shared_secret = ENV['TRUSTEV_SHARED_SECRET']
9
+ Trustev.private_key = ENV['TRUSTEV_PRIVATE_KEY']
10
+ Trustev.api_version = '2.0'
11
+
12
+ def build_case(case_id=nil, case_number=SecureRandom.hex, opts={})
13
+ trustev_case = {
14
+ session_id: ENV['TRUSTEV_SESSION_ID'],
15
+ case_number: case_number,
16
+ timestamp: Trustev::Timestamp.new.to_s,
17
+ transaction: build_transaction.build,
18
+ customer: build_customer.build,
19
+ statuses: [ build_status.build, build_status.build ],
20
+ payments: [ build_payment.build, build_payment.build ],
21
+ }
22
+ trustev_case.merge! opts
23
+ Trustev::Case.new(case_id, trustev_case)
24
+ end
25
+
26
+ def build_transaction_address(opts={})
27
+ address = {
28
+ first_name: Faker::Name.first_name,
29
+ last_name: Faker::Name.last_name,
30
+ address1: Faker::Address.street_address,
31
+ address2: Faker::Address.building_number,
32
+ address3: Faker::Address.secondary_address,
33
+ city: Faker::Address.city,
34
+ state: Faker::Address.state,
35
+ postal_code: Faker::Address.zip_code,
36
+ type: Trustev::ADDRESS_TYPES.to_a.sample[1],
37
+ country_code: 'US',
38
+ timestamp: Trustev::Timestamp.new.to_s,
39
+ is_default: %w(true false).sample
40
+ }
41
+ address.merge! opts
42
+ Trustev::TransactionAddress.new(address)
43
+ end
44
+
45
+ def build_customer_address(opts={})
46
+ address = {
47
+ first_name: Faker::Name.first_name,
48
+ last_name: Faker::Name.last_name,
49
+ address1: Faker::Address.street_address,
50
+ address2: Faker::Address.building_number,
51
+ address3: Faker::Address.secondary_address,
52
+ city: Faker::Address.city,
53
+ state: Faker::Address.state,
54
+ postal_code: Faker::Address.zip_code,
55
+ type: Trustev::ADDRESS_TYPES.to_a.sample[1],
56
+ country_code: 'US',
57
+ timestamp: Trustev::Timestamp.new.to_s,
58
+ is_default: %w(true false).sample
59
+ }
60
+ address.merge! opts
61
+ Trustev::CustomerAddress.new(address)
62
+ end
63
+
64
+ def build_item(opts={})
65
+ item = {
66
+ name: Faker::Commerce.product_name,
67
+ quantity: Random.rand(1..10),
68
+ item_value: Faker::Commerce.price
69
+ }
70
+ item.merge! opts
71
+ Trustev::Item.new(item)
72
+ end
73
+
74
+ def build_transaction(opts={})
75
+ transaction = {
76
+ total_transaction_value: Faker::Commerce.price,
77
+ currency_code: 'USD',
78
+ timestamp: Trustev::Timestamp.new.to_s,
79
+ addresses: [ build_transaction_address.build, build_transaction_address.build ],
80
+ items: [ build_item.build, build_item.build ]
81
+ }
82
+ transaction.merge! opts
83
+ Trustev::Transaction.new(transaction)
84
+
85
+ end
86
+
87
+ def build_customer(opts = {})
88
+ customer = {
89
+ first_name: Faker::Name.first_name,
90
+ last_name: Faker::Name.last_name,
91
+ emails: [ build_email.build, build_email.build ],
92
+ phone_number: Faker::PhoneNumber.phone_number,
93
+ dob: Trustev::Timestamp.new.to_s,
94
+ addresses: [ build_customer_address.build, build_customer_address.build ],
95
+ social_accounts: [ build_social.build, build_social.build ]
96
+ }
97
+ customer.merge!(opts)
98
+ Trustev::Customer.new(customer)
99
+ end
100
+
101
+ def build_email(opts = {})
102
+ email = {
103
+ email: Faker::Internet.email,
104
+ is_default: %w(true false).sample
105
+ }
106
+ email.merge! opts
107
+ Trustev::Email.new(email)
108
+ end
109
+
110
+ def build_social(opts={})
111
+ social = {
112
+ social_id: Faker::Number.number(5),
113
+ short_term_access_token: SecureRandom.hex,
114
+ long_term_access_token: SecureRandom.hex,
115
+ short_term_access_token_expiry: Trustev::Timestamp.new.to_s,
116
+ long_term_access_token_expiry: Trustev::Timestamp.new.to_s,
117
+ secret: SecureRandom.hex,
118
+ timestamp: Trustev::Timestamp.new.to_s
119
+ }
120
+ social.merge! opts
121
+ Trustev::Social.new(social)
122
+ end
123
+
124
+ def build_status(opts={})
125
+ status = {
126
+ status: Trustev::STATUS_TYPES.to_a.sample[1],
127
+ comment: Faker::Lorem.sentence,
128
+ timestamp: Trustev::Timestamp.new.to_s
129
+ }
130
+ status.merge! opts
131
+ Trustev::Status.new(status)
132
+ end
133
+
134
+ def build_payment(opts={})
135
+ payment = {
136
+ payment_type: Trustev::PAYMENT_TYPES.to_a.sample[1],
137
+ bin_number: Faker::Number.number(6)
138
+ }
139
+ payment.merge! opts
140
+ Trustev::Payment.new(payment)
141
+ end
142
+
143
+ def create_case_attribute(to_create)
144
+ to_create.create[:Id].wont_be_nil
145
+ end
146
+
147
+ def update_case_attribute(to_update, builder, case_id, data_to_update)
148
+ object_id = to_update.create[:Id]
149
+ sleep 2
150
+ object = builder.call({ case_id: case_id, id: object_id }.merge!(data_to_update))
151
+ object.update[:Id].wont_be_nil
152
+ end
153
+
154
+ def retrieve_case_attribute(to_retrieve, obj_to_retrieve, case_id)
155
+ object_id = to_retrieve.create[:Id]
156
+ sleep 2
157
+ object = obj_to_retrieve.new id: object_id, case_id: case_id
158
+ object.retrieve[:Id].wont_be_nil
159
+ end
160
+
161
+ def retrieve_all_case_attribute(to_retrieve, case_id)
162
+ objects = to_retrieve.new case_id: case_id
163
+ objects = objects.retrieve_all
164
+ objects.instance_of?(Array).must_equal true
165
+ end
@@ -0,0 +1,35 @@
1
+ require_relative 'test_helper'
2
+
3
+ describe Trustev::TransactionAddress do
4
+ before do
5
+ trustev_case = build_case
6
+ @case_id = trustev_case.create[:Id]
7
+ @transaction_address = build_customer_address case_id: @case_id
8
+ end
9
+
10
+ describe 'when creating a transaction address' do
11
+ it 'must return a valid response' do
12
+ create_case_attribute @transaction_address
13
+ end
14
+ end
15
+
16
+ describe 'when updating a transaction address' do
17
+ it 'must return a valid response' do
18
+ skip 'Intermittently broken at Trustev'
19
+ update_case_attribute @transaction_address, self.method(:build_transaction_address), @case_id, { first_name: Faker::Name.first_name }
20
+ end
21
+ end
22
+
23
+ describe 'when retrieving a transaction address' do
24
+ it 'must return a valid response' do
25
+ skip 'Intermittently broken at Trustev'
26
+ retrieve_case_attribute @transaction_address, Trustev::TransactionAddress, @case_id
27
+ end
28
+ end
29
+
30
+ describe 'when retrieving all transaction addresses' do
31
+ it 'must return a valid response' do
32
+ retrieve_all_case_attribute Trustev::TransactionAddress, @case_id
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,31 @@
1
+ require_relative 'test_helper'
2
+
3
+ describe Trustev::Transaction do
4
+ describe 'when creating a transaction' do
5
+ it 'must return a valid response' do
6
+ trustev_case = build_case nil, SecureRandom.hex, { transaction: nil }
7
+ case_id = trustev_case.create[:Id]
8
+ transaction = build_transaction case_id: case_id
9
+ transaction.create[:Id].wont_be_nil
10
+ end
11
+ end
12
+
13
+ describe 'when updating a transaction' do
14
+ it 'must return a valid response' do
15
+ trustev_case = build_case.create
16
+ case_id = trustev_case[:Id]
17
+ transaction = build_transaction case_id: case_id, currency_code: 'EUR'
18
+ transaction.update[:Id].wont_be_nil
19
+ end
20
+ end
21
+
22
+ describe 'when retrieving a transaction' do
23
+ it 'must return a valid response' do
24
+ trustev_case = build_case.create
25
+ case_id = trustev_case[:Id]
26
+ transaction_id = trustev_case[:Transaction][:Id]
27
+ transaction = Trustev::Transaction.new id: transaction_id, case_id: case_id
28
+ transaction.retrieve[:Id].wont_be_nil
29
+ end
30
+ end
31
+ end
@@ -22,7 +22,10 @@ Gem::Specification.new do |spec|
22
22
  spec.add_development_dependency 'rake', '~> 10.0'
23
23
  spec.add_development_dependency 'minitest', '~> 5.4'
24
24
  spec.add_development_dependency 'simplecov', '~> 0.9'
25
+ spec.add_development_dependency 'faker', '~> 1.4'
26
+ spec.add_development_dependency 'parallel_tests', '~> 1.0'
25
27
 
26
28
  spec.add_runtime_dependency 'httparty', '~> 0.13'
27
29
  spec.add_runtime_dependency 'multi_json', '~> 1.10'
30
+ spec.add_runtime_dependency 'require_all', '~> 1.3'
28
31
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: trustev
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.4.0.pre.alpha
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jonah Hirsch
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-12-12 00:00:00.000000000 Z
11
+ date: 2015-10-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -66,6 +66,34 @@ dependencies:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0.9'
69
+ - !ruby/object:Gem::Dependency
70
+ name: faker
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '1.4'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '1.4'
83
+ - !ruby/object:Gem::Dependency
84
+ name: parallel_tests
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '1.0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '1.0'
69
97
  - !ruby/object:Gem::Dependency
70
98
  name: httparty
71
99
  requirement: !ruby/object:Gem::Requirement
@@ -94,6 +122,20 @@ dependencies:
94
122
  - - "~>"
95
123
  - !ruby/object:Gem::Version
96
124
  version: '1.10'
125
+ - !ruby/object:Gem::Dependency
126
+ name: require_all
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: '1.3'
132
+ type: :runtime
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: '1.3'
97
139
  description: A Ruby wrapper for the Trustev API.
98
140
  email:
99
141
  - jonah@giftcardzen.com
@@ -107,20 +149,51 @@ files:
107
149
  - README.md
108
150
  - Rakefile
109
151
  - lib/trustev.rb
110
- - lib/trustev/authenticate.rb
111
- - lib/trustev/digital_signature.rb
152
+ - lib/trustev/1.2/authenticate.rb
153
+ - lib/trustev/1.2/digital_signature.rb
154
+ - lib/trustev/1.2/profile.rb
155
+ - lib/trustev/1.2/social.rb
156
+ - lib/trustev/1.2/transaction.rb
157
+ - lib/trustev/1.2/trustev.rb
158
+ - lib/trustev/2.0/address.rb
159
+ - lib/trustev/2.0/authenticate.rb
160
+ - lib/trustev/2.0/case.rb
161
+ - lib/trustev/2.0/case_attribute.rb
162
+ - lib/trustev/2.0/customer.rb
163
+ - lib/trustev/2.0/customer_address.rb
164
+ - lib/trustev/2.0/decision.rb
165
+ - lib/trustev/2.0/email.rb
166
+ - lib/trustev/2.0/item.rb
167
+ - lib/trustev/2.0/payment.rb
168
+ - lib/trustev/2.0/social.rb
169
+ - lib/trustev/2.0/status.rb
170
+ - lib/trustev/2.0/timestamp.rb
171
+ - lib/trustev/2.0/transaction.rb
172
+ - lib/trustev/2.0/transaction_address.rb
173
+ - lib/trustev/2.0/trustev.rb
112
174
  - lib/trustev/error.rb
113
- - lib/trustev/profile.rb
114
- - lib/trustev/social.rb
115
- - lib/trustev/transaction.rb
116
175
  - lib/trustev/version.rb
117
- - test/authenticate_test.rb
118
- - test/digital_signature_test.rb
119
- - test/error_test.rb
120
- - test/profile_test.rb
121
- - test/social_test.rb
122
- - test/test_helper.rb
123
- - test/transaction_test.rb
176
+ - test/1.2/authenticate_test.rb
177
+ - test/1.2/digital_signature_test.rb
178
+ - test/1.2/error_test.rb
179
+ - test/1.2/profile_test.rb
180
+ - test/1.2/social_test.rb
181
+ - test/1.2/test_helper.rb
182
+ - test/1.2/transaction_test.rb
183
+ - test/2.0/authenticate_test.rb
184
+ - test/2.0/case_test.rb
185
+ - test/2.0/customer_address_test.rb
186
+ - test/2.0/customer_test.rb
187
+ - test/2.0/decision_test.rb
188
+ - test/2.0/email_test.rb
189
+ - test/2.0/error_test.rb
190
+ - test/2.0/item_test.rb
191
+ - test/2.0/payment_test.rb
192
+ - test/2.0/social_test.rb
193
+ - test/2.0/status_test.rb
194
+ - test/2.0/test_helper.rb
195
+ - test/2.0/transaction_address_Test.rb
196
+ - test/2.0/transaction_test.rb
124
197
  - trustev.gemspec
125
198
  homepage: https://github.com/giftcardzen/trustev
126
199
  licenses:
@@ -137,21 +210,35 @@ required_ruby_version: !ruby/object:Gem::Requirement
137
210
  version: '0'
138
211
  required_rubygems_version: !ruby/object:Gem::Requirement
139
212
  requirements:
140
- - - ">="
213
+ - - ">"
141
214
  - !ruby/object:Gem::Version
142
- version: '0'
215
+ version: 1.3.1
143
216
  requirements: []
144
217
  rubyforge_project:
145
- rubygems_version: 2.4.2
218
+ rubygems_version: 2.2.3
146
219
  signing_key:
147
220
  specification_version: 4
148
221
  summary: Ruby wrapper for Trustev API.
149
222
  test_files:
150
- - test/authenticate_test.rb
151
- - test/digital_signature_test.rb
152
- - test/error_test.rb
153
- - test/profile_test.rb
154
- - test/social_test.rb
155
- - test/test_helper.rb
156
- - test/transaction_test.rb
223
+ - test/1.2/authenticate_test.rb
224
+ - test/1.2/digital_signature_test.rb
225
+ - test/1.2/error_test.rb
226
+ - test/1.2/profile_test.rb
227
+ - test/1.2/social_test.rb
228
+ - test/1.2/test_helper.rb
229
+ - test/1.2/transaction_test.rb
230
+ - test/2.0/authenticate_test.rb
231
+ - test/2.0/case_test.rb
232
+ - test/2.0/customer_address_test.rb
233
+ - test/2.0/customer_test.rb
234
+ - test/2.0/decision_test.rb
235
+ - test/2.0/email_test.rb
236
+ - test/2.0/error_test.rb
237
+ - test/2.0/item_test.rb
238
+ - test/2.0/payment_test.rb
239
+ - test/2.0/social_test.rb
240
+ - test/2.0/status_test.rb
241
+ - test/2.0/test_helper.rb
242
+ - test/2.0/transaction_address_Test.rb
243
+ - test/2.0/transaction_test.rb
157
244
  has_rdoc: