cardconnect 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (63) hide show
  1. checksums.yaml +4 -4
  2. data/.codeclimate.yml +11 -0
  3. data/.rubocop.yml +10 -0
  4. data/.travis.yml +7 -0
  5. data/README.md +2 -0
  6. data/Rakefile +70 -42
  7. data/cardconnect.gemspec +8 -8
  8. data/lib/cardconnect.rb +1 -4
  9. data/lib/cardconnect/configuration.rb +0 -1
  10. data/lib/cardconnect/connection.rb +12 -16
  11. data/lib/cardconnect/error.rb +1 -1
  12. data/lib/cardconnect/services/authorization/authorization.rb +1 -3
  13. data/lib/cardconnect/services/authorization/authorization_request.rb +6 -5
  14. data/lib/cardconnect/services/authorization/authorization_response.rb +7 -7
  15. data/lib/cardconnect/services/capture/capture.rb +0 -2
  16. data/lib/cardconnect/services/capture/capture_request.rb +4 -5
  17. data/lib/cardconnect/services/capture/capture_response.rb +3 -4
  18. data/lib/cardconnect/services/deposit/deposit.rb +1 -3
  19. data/lib/cardconnect/services/deposit/deposit_request.rb +8 -11
  20. data/lib/cardconnect/services/deposit/deposit_response.rb +4 -5
  21. data/lib/cardconnect/services/inquire/inquire.rb +0 -2
  22. data/lib/cardconnect/services/inquire/inquire_request.rb +3 -4
  23. data/lib/cardconnect/services/inquire/inquire_response.rb +3 -4
  24. data/lib/cardconnect/services/refund/refund.rb +1 -2
  25. data/lib/cardconnect/services/refund/refund_request.rb +5 -6
  26. data/lib/cardconnect/services/refund/refund_response.rb +7 -7
  27. data/lib/cardconnect/services/service_endpoint.rb +10 -14
  28. data/lib/cardconnect/services/settlement_status/settlement_status.rb +0 -2
  29. data/lib/cardconnect/services/settlement_status/settlement_status_request.rb +8 -11
  30. data/lib/cardconnect/services/settlement_status/settlement_status_response.rb +4 -5
  31. data/lib/cardconnect/services/void/void.rb +1 -2
  32. data/lib/cardconnect/services/void/void_request.rb +5 -6
  33. data/lib/cardconnect/services/void/void_response.rb +8 -7
  34. data/lib/cardconnect/utils.rb +0 -2
  35. data/lib/cardconnect/version.rb +1 -1
  36. data/test/api_request_stubs.rb +56 -52
  37. data/test/api_response_stubs.rb +87 -92
  38. data/test/cardconnect/configuration_test.rb +0 -1
  39. data/test/cardconnect/connection_test.rb +1 -1
  40. data/test/cardconnect/services/authorization/authorization_request_test.rb +44 -27
  41. data/test/cardconnect/services/authorization/authorization_response_test.rb +24 -18
  42. data/test/cardconnect/services/authorization/authorization_test.rb +1 -4
  43. data/test/cardconnect/services/capture/capture_request_test.rb +8 -8
  44. data/test/cardconnect/services/capture/capture_response_test.rb +7 -7
  45. data/test/cardconnect/services/capture/capture_test.rb +1 -3
  46. data/test/cardconnect/services/deposit/deposit_request_test.rb +9 -9
  47. data/test/cardconnect/services/deposit/deposit_response_test.rb +17 -15
  48. data/test/cardconnect/services/deposit/deposit_test.rb +4 -4
  49. data/test/cardconnect/services/inquire/inquire_request_test.rb +3 -3
  50. data/test/cardconnect/services/inquire/inquire_response_test.rb +12 -12
  51. data/test/cardconnect/services/inquire/inquire_test.rb +5 -5
  52. data/test/cardconnect/services/refund/refund_request_test.rb +3 -3
  53. data/test/cardconnect/services/refund/refund_response_test.rb +15 -13
  54. data/test/cardconnect/services/refund/refund_test.rb +1 -2
  55. data/test/cardconnect/services/settlement_status/settlement_status_request_test.rb +12 -11
  56. data/test/cardconnect/services/settlement_status/settlement_status_response_test.rb +9 -8
  57. data/test/cardconnect/services/settlement_status/settlement_status_test.rb +4 -4
  58. data/test/cardconnect/services/void/void_request_test.rb +3 -3
  59. data/test/cardconnect/services/void/void_response_test.rb +16 -14
  60. data/test/cardconnect/services/void/void_test.rb +1 -2
  61. data/test/cardconnect_test.rb +0 -1
  62. data/test/test_helper.rb +15 -13
  63. metadata +6 -3
@@ -29,14 +29,14 @@ describe CardConnect::Service::Deposit do
29
29
  @service.build_request(@valid_params)
30
30
 
31
31
  @service.request.must_be_kind_of CardConnect::Service::DepositRequest
32
- @service.request.merchid.must_equal "000000927996"
33
- @service.request.date.must_equal "0110"
32
+ @service.request.merchid.must_equal '000000927996'
33
+ @service.request.date.must_equal '0110'
34
34
  end
35
35
 
36
36
  it 'uses default merchant ID if merchid is not passed in' do
37
- @service.build_request(@valid_params.reject!{|k,v| k == 'merchid' })
37
+ @service.build_request(@valid_params.reject! { |k, _| k == 'merchid' })
38
38
  @service.request.must_be_kind_of CardConnect::Service::DepositRequest
39
- @service.request.merchid.must_equal "merchant123"
39
+ @service.request.merchid.must_equal 'merchant123'
40
40
  end
41
41
  end
42
42
 
@@ -11,11 +11,11 @@ describe CardConnect::Service::InquireRequest do
11
11
 
12
12
  describe 'FIELDS' do
13
13
  it 'should have merchant id' do
14
- @request.merchid.must_equal "000000927996"
14
+ @request.merchid.must_equal '000000927996'
15
15
  end
16
16
 
17
17
  it 'should have retrieval reference number' do
18
- @request.retref.must_equal "288002073633"
18
+ @request.retref.must_equal '288002073633'
19
19
  end
20
20
  end
21
21
 
@@ -37,7 +37,7 @@ describe CardConnect::Service::InquireRequest do
37
37
  end
38
38
  end
39
39
 
40
- describe "#payload" do
40
+ describe '#payload' do
41
41
  it 'should generate the correct path params' do
42
42
  @request.payload.must_equal '/288002073633/000000927996'
43
43
  end
@@ -11,49 +11,49 @@ describe CardConnect::Service::InquireResponse do
11
11
 
12
12
  describe 'FIELDS' do
13
13
  it 'should have merchant id' do
14
- @response.merchid.must_equal "000000927996"
14
+ @response.merchid.must_equal '000000927996'
15
15
  end
16
16
 
17
17
  it 'should have account' do
18
- @response.account.must_equal "41XXXXXXXXXX4113"
18
+ @response.account.must_equal '41XXXXXXXXXX4113'
19
19
  end
20
20
 
21
21
  it 'should have amount' do
22
- @response.amount.must_equal "596.00"
22
+ @response.amount.must_equal '596.00'
23
23
  end
24
24
 
25
25
  it 'should have currency' do
26
- @response.currency.must_equal "USD"
26
+ @response.currency.must_equal 'USD'
27
27
  end
28
28
 
29
29
  it 'should have retrieval reference number' do
30
- @response.retref.must_equal "288015190411"
30
+ @response.retref.must_equal '288015190411'
31
31
  end
32
32
 
33
33
  it 'should have response code' do
34
- @response.respcode.must_equal "00"
34
+ @response.respcode.must_equal '00'
35
35
  end
36
36
 
37
37
  it 'should have response processor' do
38
- @response.respproc.must_equal "FNOR"
38
+ @response.respproc.must_equal 'FNOR'
39
39
  end
40
40
 
41
41
  it 'should have response status' do
42
- @response.respstat.must_equal "A"
42
+ @response.respstat.must_equal 'A'
43
43
  end
44
44
 
45
45
  it 'should have capture status' do
46
- @response.resptext.must_equal "Approval"
46
+ @response.resptext.must_equal 'Approval'
47
47
  end
48
48
 
49
49
  it 'should have settlement status' do
50
- @response.setlstat.must_equal "NOTCAPTURED"
50
+ @response.setlstat.must_equal 'NOTCAPTURED'
51
51
  end
52
52
  end
53
53
 
54
- describe "#body" do
54
+ describe '#body' do
55
55
  it 'should generate hash with all the right values' do
56
56
  @response.body.must_equal symbolize_keys(valid_inquire_response)
57
57
  end
58
58
  end
59
- end
59
+ end
@@ -3,7 +3,7 @@ require 'test_helper'
3
3
  describe CardConnect::Service::Inquire do
4
4
  before do
5
5
  @connection = CardConnect::Connection.new.connection do |stubs|
6
- path = @service.path + "/#{valid_inquire_request['retref']}/#{valid_inquire_request['merchid']}"
6
+ path = "#{@service.path}/#{valid_inquire_request['retref']}/#{valid_inquire_request['merchid']}"
7
7
  stubs.get(path) { [200, {}, valid_inquire_response] }
8
8
  end
9
9
  @service = CardConnect::Service::Inquire.new(@connection)
@@ -30,14 +30,14 @@ describe CardConnect::Service::Inquire do
30
30
  @service.build_request(@valid_params)
31
31
 
32
32
  @service.request.must_be_kind_of CardConnect::Service::InquireRequest
33
- @service.request.retref.must_equal "288002073633"
34
- @service.request.merchid.must_equal "000000927996"
33
+ @service.request.retref.must_equal '288002073633'
34
+ @service.request.merchid.must_equal '000000927996'
35
35
  end
36
36
 
37
37
  it 'uses default merchant ID if merchid is not passed in' do
38
- @service.build_request(@valid_params.reject!{|k,v| k == 'merchid' })
38
+ @service.build_request(@valid_params.reject! { |k, _| k == 'merchid' })
39
39
  @service.request.must_be_kind_of CardConnect::Service::InquireRequest
40
- @service.request.merchid.must_equal "merchant123"
40
+ @service.request.merchid.must_equal 'merchant123'
41
41
  end
42
42
  end
43
43
 
@@ -11,15 +11,15 @@ describe CardConnect::Service::RefundRequest do
11
11
 
12
12
  describe 'FIELDS' do
13
13
  it 'should have merchant id' do
14
- @request.merchid.must_equal "000000927996"
14
+ @request.merchid.must_equal '000000927996'
15
15
  end
16
16
 
17
17
  it 'should have retrieval reference number' do
18
- @request.retref.must_equal "288009185241"
18
+ @request.retref.must_equal '288009185241'
19
19
  end
20
20
 
21
21
  it 'should have amount' do
22
- @request.amount.must_equal "59.60"
22
+ @request.amount.must_equal '59.60'
23
23
  end
24
24
  end
25
25
 
@@ -11,35 +11,35 @@ describe CardConnect::Service::RefundResponse do
11
11
 
12
12
  describe 'FIELDS' do
13
13
  it 'should have the merchant id' do
14
- @response.merchid.must_equal "000000927996"
14
+ @response.merchid.must_equal '000000927996'
15
15
  end
16
16
 
17
17
  it 'should have the Amount' do
18
- @response.amount.must_equal "59.60"
18
+ @response.amount.must_equal '59.60'
19
19
  end
20
20
 
21
21
  it 'should have the Retrieval Reference Number' do
22
- @response.retref.must_equal "288010185242"
22
+ @response.retref.must_equal '288010185242'
23
23
  end
24
24
 
25
25
  it 'should have the Response Code' do
26
- @response.respcode.must_equal "00"
26
+ @response.respcode.must_equal '00'
27
27
  end
28
28
 
29
29
  it 'should have the Response Processor' do
30
- @response.respproc.must_equal "PPS"
30
+ @response.respproc.must_equal 'PPS'
31
31
  end
32
32
 
33
33
  it 'should have the status' do
34
- @response.respstat.must_equal "A"
34
+ @response.respstat.must_equal 'A'
35
35
  end
36
36
 
37
37
  it 'should have the Response text' do
38
- @response.resptext.must_equal "Approval"
38
+ @response.resptext.must_equal 'Approval'
39
39
  end
40
40
 
41
41
  it 'should have authcode' do
42
- @response.authcode.must_equal "REFUND"
42
+ @response.authcode.must_equal 'REFUND'
43
43
  end
44
44
  end
45
45
 
@@ -49,7 +49,8 @@ describe CardConnect::Service::RefundResponse do
49
49
  end
50
50
 
51
51
  it 'should be false when there are errors' do
52
- response = CardConnect::Service::RefundResponse.new(valid_refund_response.merge!("respstat" => "C", "resptext" => "this is an error"))
52
+ refund_response = valid_refund_response.merge!('respstat' => 'C', 'resptext' => 'this is an error')
53
+ response = CardConnect::Service::RefundResponse.new(refund_response)
53
54
  response.success?.must_equal false
54
55
  end
55
56
  end
@@ -60,14 +61,15 @@ describe CardConnect::Service::RefundResponse do
60
61
  end
61
62
 
62
63
  it 'should be an array of error messages when there are errors' do
63
- response = CardConnect::Service::RefundResponse.new(valid_refund_response.merge!("respstat" => "C", "resptext" => "this is an error"))
64
- response.errors.must_equal ["this is an error"]
64
+ refund_response = valid_refund_response.merge!('respstat' => 'C', 'resptext' => 'this is an error')
65
+ response = CardConnect::Service::RefundResponse.new(refund_response)
66
+ response.errors.must_equal ['this is an error']
65
67
  end
66
68
  end
67
69
 
68
- describe "#body" do
70
+ describe '#body' do
69
71
  it 'should generate hash with all the right values' do
70
72
  @response.body.must_equal symbolize_keys(valid_refund_response)
71
73
  end
72
74
  end
73
- end
75
+ end
@@ -26,7 +26,7 @@ describe CardConnect::Service::Refund do
26
26
  end
27
27
 
28
28
  it 'uses the default merchant id if it is not passed in' do
29
- @service.build_request(@valid_params.reject!{|k,v| k == 'merchid' })
29
+ @service.build_request(@valid_params.reject! { |k, _| k == 'merchid' })
30
30
  @service.request.merchid.must_equal 'merchant123'
31
31
  end
32
32
 
@@ -53,5 +53,4 @@ describe CardConnect::Service::Refund do
53
53
  @service.response.must_be_kind_of CardConnect::Service::RefundResponse
54
54
  end
55
55
  end
56
-
57
56
  end
@@ -11,11 +11,11 @@ describe CardConnect::Service::SettlementStatusRequest do
11
11
 
12
12
  describe 'FIELDS' do
13
13
  it 'should have merchant id' do
14
- @request.merchid.must_equal "000000927996"
14
+ @request.merchid.must_equal '000000927996'
15
15
  end
16
16
 
17
17
  it 'should have retrieval reference number' do
18
- @request.date.must_equal "0110"
18
+ @request.date.must_equal '0110'
19
19
  end
20
20
  end
21
21
 
@@ -31,33 +31,34 @@ describe CardConnect::Service::SettlementStatusRequest do
31
31
 
32
32
  describe '#errors' do
33
33
  CardConnect::Service::SettlementStatusRequest::REQUIRED_FIELDS.each do |field|
34
- it "should have an error message if #{field} is missing" do
35
- CardConnect::Service::SettlementStatusRequest.new.errors.must_include "#{field.to_s.capitalize} is missing"
34
+ field_name = field.to_s.capitalize
35
+ it "should have an error message if #{field_name} is missing" do
36
+ CardConnect::Service::SettlementStatusRequest.new.errors.must_include "#{field_name} is missing"
36
37
  end
37
38
  end
38
39
 
39
40
  describe '#validate_date_format' do
40
41
  it 'should have an error when date is less than 4 characters long' do
41
- request = CardConnect::Service::SettlementStatusRequest.new({date: '123'})
42
+ request = CardConnect::Service::SettlementStatusRequest.new(date: '123')
42
43
  request.valid?.must_equal false
43
- request.errors.must_include "Date format is invalid. Please use MMDD format"
44
+ request.errors.must_include 'Date format is invalid. Please use MMDD format'
44
45
  end
45
46
 
46
47
  it 'should have an error when date is more than 4 characters long' do
47
- request = CardConnect::Service::SettlementStatusRequest.new({date: '12345'})
48
+ request = CardConnect::Service::SettlementStatusRequest.new(date: '12345')
48
49
  request.valid?.must_equal false
49
- request.errors.must_include "Date format is invalid. Please use MMDD format"
50
+ request.errors.must_include 'Date format is invalid. Please use MMDD format'
50
51
  end
51
52
 
52
53
  it 'should have an error when date is not parseable in MMDD format' do
53
- request = CardConnect::Service::SettlementStatusRequest.new({date: '0000'})
54
+ request = CardConnect::Service::SettlementStatusRequest.new(date: '0000')
54
55
  request.valid?.must_equal false
55
- request.errors.must_include "Date format is invalid. Please use MMDD format"
56
+ request.errors.must_include 'Date format is invalid. Please use MMDD format'
56
57
  end
57
58
  end
58
59
  end
59
60
 
60
- describe "#payload" do
61
+ describe '#payload' do
61
62
  it 'should generate the correct path params' do
62
63
  @request.payload.must_equal "?merchid=#{@request.merchid}&date=#{@request.date}&"
63
64
  end
@@ -10,27 +10,28 @@ describe CardConnect::Service::SettlementStatusResponse do
10
10
  end
11
11
 
12
12
  it 'should have the merchant id' do
13
- @response.merchid.must_equal "000000927996"
13
+ @response.merchid.must_equal '000000927996'
14
14
  end
15
15
 
16
16
  it 'should have the batch id' do
17
- @response.batchid.must_equal "71742042"
17
+ @response.batchid.must_equal '71742042'
18
18
  end
19
19
 
20
20
  it 'should have the settlement status' do
21
- @response.hoststat.must_equal "GB"
21
+ @response.hoststat.must_equal 'GB'
22
22
  end
23
23
 
24
24
  it 'should have the host batch id' do
25
- @response.hostbatch.must_equal "71742041"
25
+ @response.hostbatch.must_equal '71742041'
26
26
  end
27
27
 
28
28
  it 'should have the clearing house' do
29
- @response.respproc.must_equal "FNOR"
29
+ @response.respproc.must_equal 'FNOR'
30
30
  end
31
31
 
32
32
  it 'should have the transactions' do
33
- @response.txns.must_equal [{setlstat: "N", retref: "179001161341"}, {setlstat: "Y", retref: "179002161341"}]
33
+ @response.txns.must_equal [{ setlstat: 'N', retref: '179001161341' },
34
+ { setlstat: 'Y', retref: '179002161341' }]
34
35
  end
35
36
 
36
37
  describe '#body' do
@@ -40,8 +41,8 @@ describe CardConnect::Service::SettlementStatusResponse do
40
41
 
41
42
  it 'should generate hash with all the right values' do
42
43
  valid_payload = symbolize_keys(valid_settlestat_response.first)
43
- valid_payload[:txns] = valid_payload[:txns].map{|txn| symbolize_keys(txn)}
44
+ valid_payload[:txns] = valid_payload[:txns].map { |txn| symbolize_keys(txn) }
44
45
  @response.body.must_equal valid_payload
45
46
  end
46
47
  end
47
- end
48
+ end
@@ -29,14 +29,14 @@ describe CardConnect::Service::SettlementStatus do
29
29
  @service.build_request(@valid_params)
30
30
 
31
31
  @service.request.must_be_kind_of CardConnect::Service::SettlementStatusRequest
32
- @service.request.merchid.must_equal "000000927996"
33
- @service.request.date.must_equal "0110"
32
+ @service.request.merchid.must_equal '000000927996'
33
+ @service.request.date.must_equal '0110'
34
34
  end
35
35
 
36
36
  it 'uses default merchant ID if merchid is not passed in' do
37
- @service.build_request(@valid_params.reject!{|k,v| k == 'merchid' })
37
+ @service.build_request(@valid_params.reject! { |k, _| k == 'merchid' })
38
38
  @service.request.must_be_kind_of CardConnect::Service::SettlementStatusRequest
39
- @service.request.merchid.must_equal "merchant123"
39
+ @service.request.merchid.must_equal 'merchant123'
40
40
  end
41
41
  end
42
42
 
@@ -11,15 +11,15 @@ describe CardConnect::Service::VoidRequest do
11
11
 
12
12
  describe 'FIELDS' do
13
13
  it 'should have merchant id' do
14
- @request.merchid.must_equal "000000927996"
14
+ @request.merchid.must_equal '000000927996'
15
15
  end
16
16
 
17
17
  it 'should have retrieval reference number' do
18
- @request.retref.must_equal "288013185633"
18
+ @request.retref.must_equal '288013185633'
19
19
  end
20
20
 
21
21
  it 'should have amount' do
22
- @request.amount.must_equal "101"
22
+ @request.amount.must_equal '101'
23
23
  end
24
24
  end
25
25
 
@@ -11,39 +11,39 @@ describe CardConnect::Service::VoidResponse do
11
11
 
12
12
  describe 'FIELDS' do
13
13
  it 'should have the merchant id' do
14
- @response.merchid.must_equal "000000927996"
14
+ @response.merchid.must_equal '000000927996'
15
15
  end
16
16
 
17
17
  it 'should have the Amount' do
18
- @response.amount.must_equal "1.01"
18
+ @response.amount.must_equal '1.01'
19
19
  end
20
20
 
21
21
  it 'should have the currency' do
22
- @response.currency.must_equal "USD"
22
+ @response.currency.must_equal 'USD'
23
23
  end
24
24
 
25
25
  it 'should have the Retrieval Reference Number' do
26
- @response.retref.must_equal "288013185633"
26
+ @response.retref.must_equal '288013185633'
27
27
  end
28
28
 
29
29
  it 'should have the authcode' do
30
- @response.authcode.must_equal "REVERS"
30
+ @response.authcode.must_equal 'REVERS'
31
31
  end
32
32
 
33
33
  it 'should have the Response Code' do
34
- @response.respcode.must_equal "00"
34
+ @response.respcode.must_equal '00'
35
35
  end
36
36
 
37
37
  it 'should have the Response Processor' do
38
- @response.respproc.must_equal "FNOR"
38
+ @response.respproc.must_equal 'FNOR'
39
39
  end
40
40
 
41
41
  it 'should have the status' do
42
- @response.respstat.must_equal "A"
42
+ @response.respstat.must_equal 'A'
43
43
  end
44
44
 
45
45
  it 'should have the Response text' do
46
- @response.resptext.must_equal "Approval"
46
+ @response.resptext.must_equal 'Approval'
47
47
  end
48
48
  end
49
49
 
@@ -53,7 +53,8 @@ describe CardConnect::Service::VoidResponse do
53
53
  end
54
54
 
55
55
  it 'should be false when there are errors' do
56
- response = CardConnect::Service::VoidResponse.new(valid_void_response.merge!("respstat" => "C", "resptext" => "this is an error"))
56
+ void_response = valid_void_response.merge!('respstat' => 'C', 'resptext' => 'this is an error')
57
+ response = CardConnect::Service::VoidResponse.new(void_response)
57
58
  response.success?.must_equal false
58
59
  end
59
60
  end
@@ -64,14 +65,15 @@ describe CardConnect::Service::VoidResponse do
64
65
  end
65
66
 
66
67
  it 'should be an array of error messages when there are errors' do
67
- response = CardConnect::Service::VoidResponse.new(valid_void_response.merge!("respstat" => "C", "resptext" => "this is an error"))
68
- response.errors.must_equal ["this is an error"]
68
+ void_response = valid_void_response.merge!('respstat' => 'C', 'resptext' => 'this is an error')
69
+ response = CardConnect::Service::VoidResponse.new(void_response)
70
+ response.errors.must_equal ['this is an error']
69
71
  end
70
72
  end
71
73
 
72
- describe "#body" do
74
+ describe '#body' do
73
75
  it 'should generate hash with all the right values' do
74
76
  @response.body.must_equal symbolize_keys(valid_void_response)
75
77
  end
76
78
  end
77
- end
79
+ end