judopay 1.0.2.pre → 2.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.
- checksums.yaml +4 -4
- data/.travis.yml +6 -0
- data/CHANGELOG.md +3 -0
- data/README.md +2 -0
- data/Rakefile +17 -2
- data/judopay.gemspec +11 -10
- data/lib/faraday/raise_http_exception.rb +1 -18
- data/lib/judopay.rb +12 -9
- data/lib/judopay/connection.rb +28 -18
- data/lib/judopay/core_ext/string.rb +4 -3
- data/lib/judopay/error.rb +55 -97
- data/lib/judopay/model.rb +49 -40
- data/lib/judopay/models/card_payment.rb +5 -10
- data/lib/judopay/models/card_preauth.rb +1 -1
- data/lib/judopay/models/collection.rb +1 -1
- data/lib/judopay/models/refund.rb +1 -1
- data/lib/judopay/models/register_card.rb +28 -0
- data/lib/judopay/models/save_card.rb +26 -0
- data/lib/judopay/models/token_payment.rb +1 -0
- data/lib/judopay/models/void.rb +19 -0
- data/lib/judopay/models/web_payments/payment.rb +3 -0
- data/lib/judopay/models/web_payments/web_payment_operation.rb +8 -0
- data/lib/judopay/request.rb +1 -1
- data/lib/judopay/serializer.rb +1 -5
- data/lib/judopay/version.rb +2 -1
- data/spec/factories.rb +64 -19
- data/spec/faraday/response_spec.rb +10 -12
- data/spec/fixtures/card_payments/create_bad_request.json +11 -4
- data/spec/fixtures/transactions/register_card.json +29 -0
- data/spec/fixtures/transactions/save_card.json +28 -0
- data/spec/fixtures/transactions/void.json +27 -0
- data/spec/judopay/card_address_spec.rb +1 -1
- data/spec/judopay/card_payment_spec.rb +1 -2
- data/spec/judopay/collection_spec.rb +1 -1
- data/spec/judopay/error_spec.rb +36 -15
- data/spec/judopay/judopay_spec.rb +1 -1
- data/spec/judopay/market/collection_spec.rb +1 -1
- data/spec/judopay/market/payment_spec.rb +1 -1
- data/spec/judopay/market/preauth_spec.rb +1 -1
- data/spec/judopay/market/refund_spec.rb +1 -1
- data/spec/judopay/market/transaction_spec.rb +1 -1
- data/spec/judopay/payment_spec.rb +1 -1
- data/spec/judopay/preauth_spec.rb +1 -1
- data/spec/judopay/refund_spec.rb +1 -1
- data/spec/judopay/register_card_spec.rb +24 -0
- data/spec/judopay/save_card_spec.rb +23 -0
- data/spec/judopay/transaction_spec.rb +1 -1
- data/spec/judopay/void_spec.rb +24 -0
- data/spec/spec_helper.rb +6 -2
- data/test/authentication_test.rb +23 -0
- data/test/base/integration_base.rb +20 -0
- data/test/base/payments_tests.rb +40 -0
- data/test/base/token_payment_tests.rb +91 -0
- data/test/card_details_test.rb +21 -0
- data/test/configuration_test.rb +35 -0
- data/test/helper/assertion_helper.rb +29 -0
- data/test/payment_test.rb +10 -0
- data/test/preauth_test.rb +10 -0
- data/test/register_card_test.rb +37 -0
- data/test/token_payment_test.rb +10 -0
- data/test/token_preauth_test.rb +10 -0
- data/test/void_test.rb +44 -0
- metadata +107 -50
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'base/integration_base'
|
2
|
+
|
3
|
+
class AuthenticationTest < IntegrationBase
|
4
|
+
def test_payment_with_invalid_judo_id
|
5
|
+
payment = build(:card_payment, :judo_id => 123)
|
6
|
+
|
7
|
+
AssertionHelper.api_exception_with_errors(1, 1) { payment.create }
|
8
|
+
end
|
9
|
+
|
10
|
+
def test_payment_with_invalid_token
|
11
|
+
Judopay.configuration.api_token = 'Bad_token'
|
12
|
+
payment = build(:card_payment)
|
13
|
+
|
14
|
+
AssertionHelper.api_exception_with_errors(0, 403, 403, 1) { payment.create }
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_payment_with_invalid_secret
|
18
|
+
Judopay.configuration.api_secret = 'Bad_secret'
|
19
|
+
payment = build(:card_payment)
|
20
|
+
|
21
|
+
AssertionHelper.api_exception_with_errors(0, 403, 403, 1) { payment.create }
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require 'judopay'
|
3
|
+
require 'judopay/error'
|
4
|
+
require 'factory_girl'
|
5
|
+
require_relative '../../spec/factories'
|
6
|
+
require_relative '../helper/assertion_helper'
|
7
|
+
|
8
|
+
class IntegrationBase < Test::Unit::TestCase
|
9
|
+
include FactoryGirl::Syntax::Methods
|
10
|
+
include TestHelpers
|
11
|
+
|
12
|
+
def setup
|
13
|
+
Judopay.configure do |config|
|
14
|
+
config.judo_id = ENV['JUDO_API_ID']
|
15
|
+
config.api_token = ENV['JUDO_API_TOKEN']
|
16
|
+
config.api_secret = ENV['JUDO_API_SECRET']
|
17
|
+
config.use_production = false
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
require_relative '../base/integration_base'
|
2
|
+
require_relative '../helper/assertion_helper'
|
3
|
+
|
4
|
+
module PaymentTests
|
5
|
+
def test_valid_payment
|
6
|
+
result = get_model.create
|
7
|
+
|
8
|
+
TestHelpers::AssertionHelper.assert_successful_payment(result)
|
9
|
+
end
|
10
|
+
|
11
|
+
def test_declined_payment
|
12
|
+
result = get_model(:declined).create
|
13
|
+
|
14
|
+
TestHelpers::AssertionHelper.assert_declined_payment(result)
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_payment_with_negative_amount
|
18
|
+
TestHelpers::AssertionHelper.api_exception_with_errors(1, 1) { get_model(:amount => -1.0).create }
|
19
|
+
end
|
20
|
+
|
21
|
+
def test_payment_with_zero_amount
|
22
|
+
TestHelpers::AssertionHelper.api_exception_with_errors(1, 1) { get_model(:amount => 0).create }
|
23
|
+
end
|
24
|
+
|
25
|
+
def test_payment_without_currency
|
26
|
+
assert_raise(Judopay::ValidationError.new("Missing required fields\nField errors:\ncurrency: can't be blank")) do
|
27
|
+
get_model(:currency => nil).create
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def test_payment_with_unknown_currency
|
32
|
+
TestHelpers::AssertionHelper.api_exception_with_errors(2, 1) { get_model(:currency => 'ZZZ').create }
|
33
|
+
end
|
34
|
+
|
35
|
+
def test_payment_without_reference
|
36
|
+
assert_raise(Judopay::ValidationError.new("Missing required fields\nField errors:\nyour_consumer_reference: can't be blank")) do
|
37
|
+
get_model(:your_consumer_reference => nil).create
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,91 @@
|
|
1
|
+
require_relative '../base/integration_base'
|
2
|
+
require_relative '../helper/assertion_helper'
|
3
|
+
|
4
|
+
module TokenPaymentTests
|
5
|
+
def setup
|
6
|
+
super
|
7
|
+
payment = build(:card_payment)
|
8
|
+
result = payment.create
|
9
|
+
|
10
|
+
TestHelpers::AssertionHelper.assert_successful_payment(result)
|
11
|
+
|
12
|
+
@card_token = result['cardDetails']['cardToken']
|
13
|
+
@consumer_token = result['consumer']['consumerToken']
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_valid_token_payment
|
17
|
+
response = get_model.create
|
18
|
+
|
19
|
+
TestHelpers::AssertionHelper.assert_successful_payment(response)
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_declined_token_payment
|
23
|
+
response = get_model(:cv2 => '666').create
|
24
|
+
|
25
|
+
TestHelpers::AssertionHelper.assert_declined_payment(response)
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_token_payment_without_token
|
29
|
+
assert_raise(Judopay::ValidationError.new("Missing required fields\nField errors:\ncard_token: can't be blank")) do
|
30
|
+
get_model(:card_token => nil).create
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
def test_token_payment_without_cv2_and_without_token
|
35
|
+
assert_raise(Judopay::ValidationError.new("Missing required fields\nField errors:\ncard_token: can't be blank")) do
|
36
|
+
get_model(:card_token => nil, :cv2 => nil).create
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
def test_payment_with_negative_amount
|
41
|
+
TestHelpers::AssertionHelper.api_exception_with_errors(1, 1) { get_model(:amount => -1.0).create }
|
42
|
+
end
|
43
|
+
|
44
|
+
def test_payment_with_zero_amount
|
45
|
+
TestHelpers::AssertionHelper.api_exception_with_errors(1, 1) { get_model(:amount => 0).create }
|
46
|
+
end
|
47
|
+
|
48
|
+
def test_payment_without_currency
|
49
|
+
response = get_model(:currency => nil).create
|
50
|
+
TestHelpers::AssertionHelper.assert_successful_payment(response)
|
51
|
+
end
|
52
|
+
|
53
|
+
def test_payment_with_unknown_currency
|
54
|
+
TestHelpers::AssertionHelper.api_exception_with_errors(2, 1) { get_model(:currency => 'ZZZ').create }
|
55
|
+
end
|
56
|
+
|
57
|
+
def test_payment_without_reference
|
58
|
+
assert_raise(Judopay::ValidationError.new("Missing required fields\nField errors:\nyour_consumer_reference: can't be blank")) do
|
59
|
+
get_model(:your_consumer_reference => nil).create
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
def test_declined_token_payment_without_cv2
|
64
|
+
response = get_model(:cv2 => nil).create
|
65
|
+
|
66
|
+
TestHelpers::AssertionHelper.assert_declined_payment(response)
|
67
|
+
end
|
68
|
+
|
69
|
+
def test_token_payment_without_cv2_and_with_negative_amount
|
70
|
+
TestHelpers::AssertionHelper.api_exception_with_errors(1, 1) { get_model(:amount => -1, :cv2 => nil).create }
|
71
|
+
end
|
72
|
+
|
73
|
+
def test_token_payment_without_cv2_and_with_zero_amount
|
74
|
+
TestHelpers::AssertionHelper.api_exception_with_errors(1, 1) { get_model(:amount => 0, :cv2 => nil).create }
|
75
|
+
end
|
76
|
+
|
77
|
+
def test_token_payment_without_cv2_and_without_currency
|
78
|
+
response = get_model(:cv2 => nil, :currency => nil).create
|
79
|
+
TestHelpers::AssertionHelper.assert_declined_payment(response)
|
80
|
+
end
|
81
|
+
|
82
|
+
def test_token_payment_without_cv2_and_with_unknown_currency
|
83
|
+
TestHelpers::AssertionHelper.api_exception_with_errors(2, 1) { get_model(:cv2 => nil, :currency => 'ZZZ').create }
|
84
|
+
end
|
85
|
+
|
86
|
+
def test_token_payment_without_cv2_and_without_reference
|
87
|
+
assert_raise(Judopay::ValidationError.new("Missing required fields\nField errors:\nyour_consumer_reference: can't be blank")) do
|
88
|
+
get_model(:your_consumer_reference => nil, :cv2 => nil).create
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'base/integration_base'
|
2
|
+
|
3
|
+
class CardDetailsTest < IntegrationBase
|
4
|
+
def test_payment_with_missing_card_number
|
5
|
+
payment = build(:card_payment, :card_number => nil)
|
6
|
+
|
7
|
+
assert_raise(Judopay::ValidationError.new("Missing required fields\nField errors:\ncard_number: can't be blank")) { payment.create }
|
8
|
+
end
|
9
|
+
|
10
|
+
def test_payment_with_missing_cv2
|
11
|
+
payment = build(:card_payment, :cv2 => nil)
|
12
|
+
|
13
|
+
assert_raise(Judopay::ValidationError.new("Missing required fields\nField errors:\ncv2: can't be blank")) { payment.create }
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_payment_with_missing_expiry_date
|
17
|
+
payment = build(:card_payment, :expiry_date => nil)
|
18
|
+
|
19
|
+
assert_raise(Judopay::ValidationError.new("Missing required fields\nField errors:\nexpiry_date: can't be blank")) { payment.create }
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require_relative '../lib/judopay'
|
3
|
+
require_relative '../lib/judopay/error'
|
4
|
+
|
5
|
+
class ConfigurationTest < Test::Unit::TestCase
|
6
|
+
# Fixture information.
|
7
|
+
def setup
|
8
|
+
@data = [
|
9
|
+
['', 'MYTOKEN', 'MYSECRET'],
|
10
|
+
[nil, 'MYTOKEN', 'MYSECRET'],
|
11
|
+
['MYJUDOID', '', 'MYSECRET'],
|
12
|
+
['MYJUDOID', nil, 'MYSECRET'],
|
13
|
+
['MYJUDOID', 'MYTOKEN', ''],
|
14
|
+
['MYJUDOID', 'MYTOKEN', nil]
|
15
|
+
]
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_invalid_configuration
|
19
|
+
@data.each do |params|
|
20
|
+
config = Judopay::Configuration.new
|
21
|
+
config.judo_id, config.api_token, config.api_secret = params
|
22
|
+
|
23
|
+
assert_raise(Judopay::ValidationError.new('SDK configuration variables missing')) { config.validate }
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_valid_configuration
|
28
|
+
config = Judopay::Configuration.new
|
29
|
+
config.judo_id = 'MYJUDOID'
|
30
|
+
config.api_token = 'MYTOKEN'
|
31
|
+
config.api_secret = 'MYSECRET'
|
32
|
+
|
33
|
+
assert_true(config.validate)
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'judopay/error'
|
2
|
+
require 'test/unit/assertions'
|
3
|
+
|
4
|
+
include Test::Unit::Assertions
|
5
|
+
module TestHelpers
|
6
|
+
class AssertionHelper
|
7
|
+
class << self
|
8
|
+
def api_exception_with_errors(errors_cnt_expected, error_code, status_code = 400, error_category = 2)
|
9
|
+
exception = assert_raise(Judopay::APIError) { yield }
|
10
|
+
assert_equal(errors_cnt_expected, exception.field_errors.count)
|
11
|
+
assert_equal(error_code, exception.error_code)
|
12
|
+
assert_equal(status_code, exception.status_code)
|
13
|
+
assert_equal(error_category, exception.category)
|
14
|
+
end
|
15
|
+
|
16
|
+
def assert_successful_payment(response)
|
17
|
+
assert_not_nil(response)
|
18
|
+
assert_equal('Success', response['result'])
|
19
|
+
assert_operator(0, :<, response['receiptId'].to_i)
|
20
|
+
end
|
21
|
+
|
22
|
+
def assert_declined_payment(response)
|
23
|
+
assert_not_nil(response)
|
24
|
+
assert_equal('Declined', response['result'])
|
25
|
+
assert_operator(0, :<, response['receiptId'].to_i)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'base/payments_tests'
|
2
|
+
require 'base/integration_base'
|
3
|
+
|
4
|
+
class RegisterCardTest < IntegrationBase
|
5
|
+
include PaymentTests
|
6
|
+
|
7
|
+
def get_model(params = {})
|
8
|
+
build(:register_card, params)
|
9
|
+
end
|
10
|
+
|
11
|
+
def test_payment_with_unknown_currency
|
12
|
+
TestHelpers::AssertionHelper.api_exception_with_errors(0, 72, 409, 3) { get_model(:currency => 'ZZZ').create }
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_payment_changed_amount
|
16
|
+
result = get_model(:amount => 100_500).create
|
17
|
+
|
18
|
+
TestHelpers::AssertionHelper.assert_successful_payment(result)
|
19
|
+
assert_equal('1.01', result['amount'])
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_payment_with_negative_amount
|
23
|
+
# Unneeded test
|
24
|
+
assert_true(true)
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_payment_with_zero_amount
|
28
|
+
# Unneeded test
|
29
|
+
assert_true(true)
|
30
|
+
end
|
31
|
+
|
32
|
+
def test_payment_without_currency
|
33
|
+
result = get_model(:currency => nil).create
|
34
|
+
|
35
|
+
TestHelpers::AssertionHelper.assert_successful_payment(result)
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
require 'base/token_payment_tests'
|
2
|
+
require 'base/integration_base'
|
3
|
+
|
4
|
+
class TokenPaymentTest < IntegrationBase
|
5
|
+
include TokenPaymentTests
|
6
|
+
|
7
|
+
def get_model(params = {})
|
8
|
+
build(:token_payment, { :consumer_token => @consumer_token, :card_token => @card_token }.merge(params))
|
9
|
+
end
|
10
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
require 'base/token_payment_tests'
|
2
|
+
require 'base/integration_base'
|
3
|
+
|
4
|
+
class TokenPaymentTest < IntegrationBase
|
5
|
+
include TokenPaymentTests
|
6
|
+
|
7
|
+
def get_model(params = {})
|
8
|
+
build(:token_preauth, { :consumer_token => @consumer_token, :card_token => @card_token }.merge(params))
|
9
|
+
end
|
10
|
+
end
|
data/test/void_test.rb
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
require 'base/integration_base'
|
2
|
+
|
3
|
+
class VoidTest < IntegrationBase
|
4
|
+
def test_valid_preauth_void
|
5
|
+
receipt = make_payment
|
6
|
+
void = build(:void, :receipt_id => receipt).create
|
7
|
+
|
8
|
+
TestHelpers::AssertionHelper.assert_successful_payment(void)
|
9
|
+
end
|
10
|
+
|
11
|
+
def test_declined_payment_void
|
12
|
+
receipt = make_payment(false)
|
13
|
+
TestHelpers::AssertionHelper.api_exception_with_errors(0, 50, 404) { build(:void, :receipt_id => receipt).create }
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_wrong_receipt_id
|
17
|
+
TestHelpers::AssertionHelper.api_exception_with_errors(1, 1) { build(:void).create }
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_double_void
|
21
|
+
receipt = make_payment
|
22
|
+
void = build(:void, :receipt_id => receipt)
|
23
|
+
|
24
|
+
response = void.create
|
25
|
+
|
26
|
+
TestHelpers::AssertionHelper.assert_successful_payment(response)
|
27
|
+
TestHelpers::AssertionHelper.api_exception_with_errors(0, 51) { void.create }
|
28
|
+
end
|
29
|
+
|
30
|
+
def test_void_with_invalid_amount
|
31
|
+
TestHelpers::AssertionHelper.api_exception_with_errors(0, 53, 404) do
|
32
|
+
build(:void, :receipt_id => make_payment, :amount => 100).create
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
protected
|
37
|
+
|
38
|
+
def make_payment(preauth = true)
|
39
|
+
payment = build(preauth ? :card_preauth : :card_payment).create
|
40
|
+
TestHelpers::AssertionHelper.assert_successful_payment(payment)
|
41
|
+
|
42
|
+
payment['receiptId']
|
43
|
+
end
|
44
|
+
end
|
metadata
CHANGED
@@ -1,223 +1,237 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: judopay
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- judoPay
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-09-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: rspec
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '0'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: yard
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: test-unit
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name: yard
|
56
|
+
name: yard-xml
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
70
|
+
name: factory_girl
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- -
|
73
|
+
- - ">="
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: '0'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- -
|
80
|
+
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
84
|
+
name: rubocop
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- -
|
87
|
+
- - ">="
|
88
88
|
- !ruby/object:Gem::Version
|
89
89
|
version: '0'
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- -
|
94
|
+
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
|
-
name:
|
98
|
+
name: webmock
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
|
-
- -
|
101
|
+
- - ">="
|
102
102
|
- !ruby/object:Gem::Version
|
103
103
|
version: '0'
|
104
104
|
type: :development
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
|
-
- -
|
108
|
+
- - ">="
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '0'
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
|
-
name:
|
112
|
+
name: bundler
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
|
-
- -
|
115
|
+
- - ">="
|
116
116
|
- !ruby/object:Gem::Version
|
117
117
|
version: '0'
|
118
|
-
type: :
|
118
|
+
type: :runtime
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: rake
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ">="
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
type: :runtime
|
119
133
|
prerelease: false
|
120
134
|
version_requirements: !ruby/object:Gem::Requirement
|
121
135
|
requirements:
|
122
|
-
- -
|
136
|
+
- - ">="
|
123
137
|
- !ruby/object:Gem::Version
|
124
138
|
version: '0'
|
125
139
|
- !ruby/object:Gem::Dependency
|
126
140
|
name: virtus
|
127
141
|
requirement: !ruby/object:Gem::Requirement
|
128
142
|
requirements:
|
129
|
-
- -
|
143
|
+
- - "~>"
|
130
144
|
- !ruby/object:Gem::Version
|
131
145
|
version: 1.0.2
|
132
146
|
type: :runtime
|
133
147
|
prerelease: false
|
134
148
|
version_requirements: !ruby/object:Gem::Requirement
|
135
149
|
requirements:
|
136
|
-
- -
|
150
|
+
- - "~>"
|
137
151
|
- !ruby/object:Gem::Version
|
138
152
|
version: 1.0.2
|
139
153
|
- !ruby/object:Gem::Dependency
|
140
154
|
name: httpclient
|
141
155
|
requirement: !ruby/object:Gem::Requirement
|
142
156
|
requirements:
|
143
|
-
- -
|
157
|
+
- - "~>"
|
144
158
|
- !ruby/object:Gem::Version
|
145
159
|
version: 2.4.0
|
146
160
|
type: :runtime
|
147
161
|
prerelease: false
|
148
162
|
version_requirements: !ruby/object:Gem::Requirement
|
149
163
|
requirements:
|
150
|
-
- -
|
164
|
+
- - "~>"
|
151
165
|
- !ruby/object:Gem::Version
|
152
166
|
version: 2.4.0
|
153
167
|
- !ruby/object:Gem::Dependency
|
154
168
|
name: activemodel
|
155
169
|
requirement: !ruby/object:Gem::Requirement
|
156
170
|
requirements:
|
157
|
-
- -
|
171
|
+
- - "~>"
|
158
172
|
- !ruby/object:Gem::Version
|
159
173
|
version: 4.1.1
|
160
174
|
type: :runtime
|
161
175
|
prerelease: false
|
162
176
|
version_requirements: !ruby/object:Gem::Requirement
|
163
177
|
requirements:
|
164
|
-
- -
|
178
|
+
- - "~>"
|
165
179
|
- !ruby/object:Gem::Version
|
166
180
|
version: 4.1.1
|
167
181
|
- !ruby/object:Gem::Dependency
|
168
182
|
name: faraday
|
169
183
|
requirement: !ruby/object:Gem::Requirement
|
170
184
|
requirements:
|
171
|
-
- -
|
185
|
+
- - "~>"
|
172
186
|
- !ruby/object:Gem::Version
|
173
187
|
version: 0.9.0
|
174
188
|
type: :runtime
|
175
189
|
prerelease: false
|
176
190
|
version_requirements: !ruby/object:Gem::Requirement
|
177
191
|
requirements:
|
178
|
-
- -
|
192
|
+
- - "~>"
|
179
193
|
- !ruby/object:Gem::Version
|
180
194
|
version: 0.9.0
|
181
195
|
- !ruby/object:Gem::Dependency
|
182
196
|
name: faraday_middleware
|
183
197
|
requirement: !ruby/object:Gem::Requirement
|
184
198
|
requirements:
|
185
|
-
- -
|
199
|
+
- - "~>"
|
186
200
|
- !ruby/object:Gem::Version
|
187
201
|
version: 0.9.1
|
188
202
|
type: :runtime
|
189
203
|
prerelease: false
|
190
204
|
version_requirements: !ruby/object:Gem::Requirement
|
191
205
|
requirements:
|
192
|
-
- -
|
206
|
+
- - "~>"
|
193
207
|
- !ruby/object:Gem::Version
|
194
208
|
version: 0.9.1
|
195
209
|
- !ruby/object:Gem::Dependency
|
196
210
|
name: rash
|
197
211
|
requirement: !ruby/object:Gem::Requirement
|
198
212
|
requirements:
|
199
|
-
- -
|
213
|
+
- - "~>"
|
200
214
|
- !ruby/object:Gem::Version
|
201
215
|
version: 0.4.0
|
202
216
|
type: :runtime
|
203
217
|
prerelease: false
|
204
218
|
version_requirements: !ruby/object:Gem::Requirement
|
205
219
|
requirements:
|
206
|
-
- -
|
220
|
+
- - "~>"
|
207
221
|
- !ruby/object:Gem::Version
|
208
222
|
version: 0.4.0
|
209
223
|
- !ruby/object:Gem::Dependency
|
210
224
|
name: addressable
|
211
225
|
requirement: !ruby/object:Gem::Requirement
|
212
226
|
requirements:
|
213
|
-
- -
|
227
|
+
- - "~>"
|
214
228
|
- !ruby/object:Gem::Version
|
215
229
|
version: 2.3.6
|
216
230
|
type: :runtime
|
217
231
|
prerelease: false
|
218
232
|
version_requirements: !ruby/object:Gem::Requirement
|
219
233
|
requirements:
|
220
|
-
- -
|
234
|
+
- - "~>"
|
221
235
|
- !ruby/object:Gem::Version
|
222
236
|
version: 2.3.6
|
223
237
|
description: ''
|
@@ -227,10 +241,12 @@ executables: []
|
|
227
241
|
extensions: []
|
228
242
|
extra_rdoc_files: []
|
229
243
|
files:
|
230
|
-
- .gitignore
|
231
|
-
- .rspec
|
232
|
-
- .rubocop.yml
|
233
|
-
- .
|
244
|
+
- ".gitignore"
|
245
|
+
- ".rspec"
|
246
|
+
- ".rubocop.yml"
|
247
|
+
- ".travis.yml"
|
248
|
+
- ".yardopts"
|
249
|
+
- CHANGELOG.md
|
234
250
|
- Gemfile
|
235
251
|
- LICENSE.txt
|
236
252
|
- README.md
|
@@ -260,12 +276,16 @@ files:
|
|
260
276
|
- lib/judopay/models/payment.rb
|
261
277
|
- lib/judopay/models/preauth.rb
|
262
278
|
- lib/judopay/models/refund.rb
|
279
|
+
- lib/judopay/models/register_card.rb
|
280
|
+
- lib/judopay/models/save_card.rb
|
263
281
|
- lib/judopay/models/token_payment.rb
|
264
282
|
- lib/judopay/models/token_preauth.rb
|
265
283
|
- lib/judopay/models/transaction.rb
|
284
|
+
- lib/judopay/models/void.rb
|
266
285
|
- lib/judopay/models/web_payments/payment.rb
|
267
286
|
- lib/judopay/models/web_payments/preauth.rb
|
268
287
|
- lib/judopay/models/web_payments/transaction.rb
|
288
|
+
- lib/judopay/models/web_payments/web_payment_operation.rb
|
269
289
|
- lib/judopay/null_logger.rb
|
270
290
|
- lib/judopay/request.rb
|
271
291
|
- lib/judopay/response.rb
|
@@ -282,6 +302,9 @@ files:
|
|
282
302
|
- spec/fixtures/transactions/all.json
|
283
303
|
- spec/fixtures/transactions/find.json
|
284
304
|
- spec/fixtures/transactions/find_not_found.json
|
305
|
+
- spec/fixtures/transactions/register_card.json
|
306
|
+
- spec/fixtures/transactions/save_card.json
|
307
|
+
- spec/fixtures/transactions/void.json
|
285
308
|
- spec/fixtures/web_payments/payments/create.json
|
286
309
|
- spec/fixtures/web_payments/payments/find.json
|
287
310
|
- spec/judopay/card_address_spec.rb
|
@@ -300,13 +323,29 @@ files:
|
|
300
323
|
- spec/judopay/payment_spec.rb
|
301
324
|
- spec/judopay/preauth_spec.rb
|
302
325
|
- spec/judopay/refund_spec.rb
|
326
|
+
- spec/judopay/register_card_spec.rb
|
327
|
+
- spec/judopay/save_card_spec.rb
|
303
328
|
- spec/judopay/token_payment_spec.rb
|
304
329
|
- spec/judopay/token_preauth_spec.rb
|
305
330
|
- spec/judopay/transaction_spec.rb
|
331
|
+
- spec/judopay/void_spec.rb
|
306
332
|
- spec/judopay/web_payments/payment_spec.rb
|
307
333
|
- spec/judopay/web_payments/preauth_spec.rb
|
308
334
|
- spec/judopay/web_payments/transaction_spec.rb
|
309
335
|
- spec/spec_helper.rb
|
336
|
+
- test/authentication_test.rb
|
337
|
+
- test/base/integration_base.rb
|
338
|
+
- test/base/payments_tests.rb
|
339
|
+
- test/base/token_payment_tests.rb
|
340
|
+
- test/card_details_test.rb
|
341
|
+
- test/configuration_test.rb
|
342
|
+
- test/helper/assertion_helper.rb
|
343
|
+
- test/payment_test.rb
|
344
|
+
- test/preauth_test.rb
|
345
|
+
- test/register_card_test.rb
|
346
|
+
- test/token_payment_test.rb
|
347
|
+
- test/token_preauth_test.rb
|
348
|
+
- test/void_test.rb
|
310
349
|
- tutorials/judo_getting_started.md
|
311
350
|
- tutorials/judo_making_a_payment.md
|
312
351
|
homepage: http://www.judopay.com
|
@@ -319,17 +358,17 @@ require_paths:
|
|
319
358
|
- lib
|
320
359
|
required_ruby_version: !ruby/object:Gem::Requirement
|
321
360
|
requirements:
|
322
|
-
- -
|
361
|
+
- - ">="
|
323
362
|
- !ruby/object:Gem::Version
|
324
363
|
version: 1.9.3
|
325
364
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
326
365
|
requirements:
|
327
|
-
- -
|
366
|
+
- - ">="
|
328
367
|
- !ruby/object:Gem::Version
|
329
|
-
version:
|
368
|
+
version: '0'
|
330
369
|
requirements: []
|
331
370
|
rubyforge_project:
|
332
|
-
rubygems_version: 2.
|
371
|
+
rubygems_version: 2.5.1
|
333
372
|
signing_key:
|
334
373
|
specification_version: 4
|
335
374
|
summary: Ruby SDK wrapper for the Judopay REST API
|
@@ -345,6 +384,9 @@ test_files:
|
|
345
384
|
- spec/fixtures/transactions/all.json
|
346
385
|
- spec/fixtures/transactions/find.json
|
347
386
|
- spec/fixtures/transactions/find_not_found.json
|
387
|
+
- spec/fixtures/transactions/register_card.json
|
388
|
+
- spec/fixtures/transactions/save_card.json
|
389
|
+
- spec/fixtures/transactions/void.json
|
348
390
|
- spec/fixtures/web_payments/payments/create.json
|
349
391
|
- spec/fixtures/web_payments/payments/find.json
|
350
392
|
- spec/judopay/card_address_spec.rb
|
@@ -363,11 +405,26 @@ test_files:
|
|
363
405
|
- spec/judopay/payment_spec.rb
|
364
406
|
- spec/judopay/preauth_spec.rb
|
365
407
|
- spec/judopay/refund_spec.rb
|
408
|
+
- spec/judopay/register_card_spec.rb
|
409
|
+
- spec/judopay/save_card_spec.rb
|
366
410
|
- spec/judopay/token_payment_spec.rb
|
367
411
|
- spec/judopay/token_preauth_spec.rb
|
368
412
|
- spec/judopay/transaction_spec.rb
|
413
|
+
- spec/judopay/void_spec.rb
|
369
414
|
- spec/judopay/web_payments/payment_spec.rb
|
370
415
|
- spec/judopay/web_payments/preauth_spec.rb
|
371
416
|
- spec/judopay/web_payments/transaction_spec.rb
|
372
417
|
- spec/spec_helper.rb
|
373
|
-
|
418
|
+
- test/authentication_test.rb
|
419
|
+
- test/base/integration_base.rb
|
420
|
+
- test/base/payments_tests.rb
|
421
|
+
- test/base/token_payment_tests.rb
|
422
|
+
- test/card_details_test.rb
|
423
|
+
- test/configuration_test.rb
|
424
|
+
- test/helper/assertion_helper.rb
|
425
|
+
- test/payment_test.rb
|
426
|
+
- test/preauth_test.rb
|
427
|
+
- test/register_card_test.rb
|
428
|
+
- test/token_payment_test.rb
|
429
|
+
- test/token_preauth_test.rb
|
430
|
+
- test/void_test.rb
|