trustev 0.3.2 → 0.4.0.pre.alpha

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 (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: