ActiveMerchant-FatZebra 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -3,7 +3,7 @@ $:.push File.expand_path("../lib", __FILE__)
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "ActiveMerchant-FatZebra"
6
- s.version = "1.0.0"
6
+ s.version = "1.0.1"
7
7
  s.authors = ["Matthew Savage"]
8
8
  s.email = ["matthew.savage@fatzebra.com.au"]
9
9
  s.homepage = "https://www.fatzebra.com.au"
@@ -116,8 +116,7 @@ module ActiveMerchant #:nodoc:
116
116
  message,
117
117
  response,
118
118
  :test => response.has_key?("test") ? response["test"] : false,
119
- :authorization => response["response"]["authorization"],
120
- :id => response["response"]["id"])
119
+ :authorization => response["response"]["id"] || response["response"]["token"])
121
120
  end
122
121
 
123
122
  # Parse the returned JSON, if parse errors are raised then return a detailed error.
@@ -144,7 +143,7 @@ module ActiveMerchant #:nodoc:
144
143
  # Builds the auth and U-A headers for the request
145
144
  def headers
146
145
  {
147
- "Authorization" => "Basic " + Base64.encode64(@username.to_s + ":" + @token.to_s).strip,
146
+ "Authorization" => "Basic " + Base64.strict_encode64(@username.to_s + ":" + @token.to_s).strip,
148
147
  "User-Agent" => "Fat Zebra v1.0/ActiveMerchant #{ActiveMerchant::VERSION}"
149
148
  }
150
149
  end
@@ -38,7 +38,7 @@ class RemoteFatZebraTest < Test::Unit::TestCase
38
38
  def test_refund
39
39
  purchase = @gateway.purchase(@amount, @credit_card, @options)
40
40
 
41
- assert response = @gateway.refund(@amount, purchase.params["response"]["id"], rand(1000000).to_s)
41
+ assert response = @gateway.refund(@amount, purchase.authorization, rand(1000000).to_s)
42
42
  assert_success response
43
43
  assert_match /Approved/, response.message
44
44
  end
@@ -23,8 +23,7 @@ class FatZebraTest < Test::Unit::TestCase
23
23
  assert response = @gateway.purchase(@amount, @credit_card, @options)
24
24
  assert_success response
25
25
 
26
- # Replace with authorization number from the successful response
27
- assert_equal '55355', response.authorization
26
+ assert_equal '001-P-12345AA', response.authorization
28
27
  assert response.test?
29
28
  end
30
29
 
@@ -75,6 +74,23 @@ class FatZebraTest < Test::Unit::TestCase
75
74
  assert_failure response
76
75
  end
77
76
 
77
+ def test_successful_refund
78
+ @gateway.expects(:ssl_request).returns(successful_refund_response)
79
+
80
+ assert response = @gateway.refund(100, "TEST", "Test refund")
81
+ assert_success response
82
+ assert_equal '003-R-7MNIUMY6', response.authorization
83
+ assert response.test?
84
+ end
85
+
86
+ def test_unsuccessful_refund
87
+ @gateway.expects(:ssl_request).returns(unsuccessful_refund_response)
88
+
89
+ assert response = @gateway.refund(100, "TEST", "Test refund")
90
+ assert_failure response
91
+ assert response.test?
92
+ end
93
+
78
94
  private
79
95
 
80
96
  # Place raw successful response from gateway here
@@ -117,6 +133,52 @@ class FatZebraTest < Test::Unit::TestCase
117
133
  }.to_json
118
134
  end
119
135
 
136
+ def successful_refund_response
137
+ {
138
+ :successful => true,
139
+ :response => {
140
+ :authorization => "1339973263",
141
+ :id => "003-R-7MNIUMY6",
142
+ :amount => -10,
143
+ :refunded => "Approved",
144
+ :message => "08 Approved",
145
+ :card_holder => "Harry Smith",
146
+ :card_number => "XXXXXXXXXXXX4444",
147
+ :card_expiry => "2013-05-31",
148
+ :card_type => "MasterCard",
149
+ :transaction_id => "003-R-7MNIUMY6",
150
+ :successful => true
151
+ },
152
+ :errors => [
153
+
154
+ ],
155
+ :test => true
156
+ }.to_json
157
+ end
158
+
159
+ def unsuccessful_refund_response
160
+ {
161
+ :successful => false,
162
+ :response => {
163
+ :authorization => nil,
164
+ :id => nil,
165
+ :amount => nil,
166
+ :refunded => nil,
167
+ :message => nil,
168
+ :card_holder => "Matthew Savage",
169
+ :card_number => "XXXXXXXXXXXX4444",
170
+ :card_expiry => "2013-05-31",
171
+ :card_type => "MasterCard",
172
+ :transaction_id => nil,
173
+ :successful => false
174
+ },
175
+ :errors => [
176
+ "Reference can't be blank"
177
+ ],
178
+ :test => true
179
+ }.to_json
180
+ end
181
+
120
182
  def successful_tokenize_response
121
183
  {
122
184
  :successful => true,
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ActiveMerchant-FatZebra
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-06-16 00:00:00.000000000 Z
12
+ date: 2012-06-18 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activemerchant
16
- requirement: &70121469611100 !ruby/object:Gem::Requirement
16
+ requirement: &70156374511060 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70121469611100
24
+ version_requirements: *70156374511060
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rake
27
- requirement: &70121469610340 !ruby/object:Gem::Requirement
27
+ requirement: &70156374510460 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70121469610340
35
+ version_requirements: *70156374510460
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: mocha
38
- requirement: &70121469608900 !ruby/object:Gem::Requirement
38
+ requirement: &70156374509640 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 0.11.3
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70121469608900
46
+ version_requirements: *70156374509640
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rails
49
- requirement: &70121469645180 !ruby/object:Gem::Requirement
49
+ requirement: &70156374508320 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,7 +54,7 @@ dependencies:
54
54
  version: 2.3.11
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70121469645180
57
+ version_requirements: *70156374508320
58
58
  description: Fat Zebra support for Active Merchant - temporary gem until support is
59
59
  combined into active_merchant core.
60
60
  email:
@@ -89,7 +89,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
89
89
  version: '0'
90
90
  segments:
91
91
  - 0
92
- hash: 3400427441090863407
92
+ hash: 4098293208701406375
93
93
  required_rubygems_version: !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
@@ -98,7 +98,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
98
98
  version: '0'
99
99
  segments:
100
100
  - 0
101
- hash: 3400427441090863407
101
+ hash: 4098293208701406375
102
102
  requirements: []
103
103
  rubyforge_project: ActiveMerchant-FatZebra
104
104
  rubygems_version: 1.8.10