breadmachine 0.0.0 → 0.0.1
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.
- data/README.rdoc +48 -4
- data/lib/breadmachine/dto/card.rb +23 -9
- data/lib/breadmachine/dto/customer_info.rb +19 -5
- data/lib/breadmachine/dto/order_info.rb +18 -5
- data/lib/breadmachine/extensions/string.rb +11 -0
- data/lib/breadmachine/extensions.rb +2 -1
- data/lib/breadmachine/secure_trading/auth_request.rb +4 -2
- data/lib/breadmachine/secure_trading/auth_reversal_request.rb +3 -5
- data/lib/breadmachine/secure_trading/auth_reversal_response.rb +6 -1
- data/lib/breadmachine/secure_trading/card_xml.rb +13 -9
- data/lib/breadmachine/secure_trading/payment_methods.rb +18 -6
- data/lib/breadmachine/secure_trading/st_3d_auth_request.rb +32 -10
- data/lib/breadmachine/secure_trading/st_3d_auth_response.rb +20 -11
- data/lib/breadmachine/secure_trading/st_3d_card_query_request.rb +28 -9
- data/lib/breadmachine/secure_trading/st_3d_card_query_response.rb +122 -23
- data/lib/breadmachine/secure_trading/xpay.rb +121 -10
- data/lib/breadmachine/secure_trading/xpay_response.rb +29 -0
- data/lib/breadmachine/secure_trading/xpay_socket.rb +5 -1
- data/lib/breadmachine/secure_trading.rb +4 -2
- data/lib/breadmachine.rb +7 -2
- data/spec/secure_trading/auth_request_spec.rb +12 -7
- data/spec/secure_trading/card_xml_spec.rb +43 -17
- data/spec/secure_trading/order_info_xml_spec.rb +2 -2
- data/spec/secure_trading/st_3d_auth_request_spec.rb +12 -7
- data/spec/secure_trading/st_3d_card_query_request_spec.rb +19 -8
- data/spec/secure_trading/st_3d_card_query_response_spec.rb +87 -30
- data/spec/secure_trading/st_auth_reversal_request_spec.rb +42 -0
- data/spec/secure_trading/xpay_response_spec.rb +26 -0
- data/spec/secure_trading/xpay_socket_spec.rb +15 -2
- data/spec/secure_trading/xpay_spec.rb +19 -2
- metadata +35 -3
- data/spec/secure_trading/st_auth_request_spec.rb +0 -0
@@ -0,0 +1,26 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
2
|
+
|
3
|
+
describe BreadMachine::SecureTrading::XpayResponse do
|
4
|
+
|
5
|
+
def response
|
6
|
+
described_class.new(sample_response)
|
7
|
+
end
|
8
|
+
|
9
|
+
def sample_response
|
10
|
+
<<-XML
|
11
|
+
<ResponseBlock Live="FALSE" Version="3.51">
|
12
|
+
<Response Type="ST3DCARDQUERY">
|
13
|
+
<OperationResponse>
|
14
|
+
<Result>1</Result>
|
15
|
+
</OperationResponse>
|
16
|
+
</Response>
|
17
|
+
</ResponseBlock>
|
18
|
+
XML
|
19
|
+
end
|
20
|
+
|
21
|
+
it "should select result from xml" do
|
22
|
+
response.result.should == '1'
|
23
|
+
end
|
24
|
+
|
25
|
+
|
26
|
+
end
|
@@ -7,8 +7,21 @@ describe BreadMachine::SecureTrading::XPaySocket do
|
|
7
7
|
BreadMachine::SecureTrading::XPaySocket.open("localhost", 5000)
|
8
8
|
end
|
9
9
|
|
10
|
-
it "should
|
11
|
-
|
10
|
+
it "should forward block to the socket" do
|
11
|
+
mock_socket = mock('socket')
|
12
|
+
mock_socket.should_receive(:method)
|
13
|
+
TCPSocket.stub(:open).and_yield(mock_socket)
|
14
|
+
|
15
|
+
BreadMachine::SecureTrading::XPaySocket.open("localhost", 5000) do |socket|
|
16
|
+
socket.method
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
it "should raise a BreadMachine error when failing to connect to the gateway" do
|
21
|
+
TCPSocket.stub(:open).and_raise(Errno::ECONNREFUSED)
|
22
|
+
lambda {
|
23
|
+
BreadMachine::SecureTrading::XPaySocket.open("localhost", 5000)
|
24
|
+
}.should raise_error(BreadMachine::GatewayConnectionError)
|
12
25
|
end
|
13
26
|
|
14
27
|
end
|
@@ -2,8 +2,25 @@ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
|
2
2
|
|
3
3
|
describe BreadMachine::SecureTrading::XPay do
|
4
4
|
|
5
|
-
it "should
|
6
|
-
|
5
|
+
it "should retry socket exchange 3 times when a connection error occurs" do
|
6
|
+
request = stub('request')
|
7
|
+
request.stub(:to_xml => '<nothingtoseehere>')
|
8
|
+
BreadMachine::SecureTrading::XPaySocket.should_receive(:open).exactly(3).times.and_raise(BreadMachine::GatewayConnectionError)
|
9
|
+
lambda {
|
10
|
+
BreadMachine::SecureTrading::XPay.exchange(request)
|
11
|
+
}.should raise_error(BreadMachine::GatewayConnectionError)
|
12
|
+
end
|
13
|
+
|
14
|
+
it "should not retry for other errors" do
|
15
|
+
request = stub('request')
|
16
|
+
request.stub(:to_xml => '<nothingtoseehere>')
|
17
|
+
request.stub(:response)
|
18
|
+
BreadMachine::SecureTrading::XPaySocket.stub(:open)
|
19
|
+
xpay = BreadMachine::SecureTrading::XPay.new
|
20
|
+
xpay.should_receive(:handle_errors).once.and_raise(BreadMachine::MerchantConfigurationError)
|
21
|
+
lambda {
|
22
|
+
xpay.exchange(request)
|
23
|
+
}.should raise_error(BreadMachine::MerchantConfigurationError)
|
7
24
|
end
|
8
25
|
|
9
26
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: breadmachine
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matt Southerden
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-10-
|
12
|
+
date: 2009-10-22 00:00:00 +01:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -42,6 +42,26 @@ dependencies:
|
|
42
42
|
- !ruby/object:Gem::Version
|
43
43
|
version: "0"
|
44
44
|
version:
|
45
|
+
- !ruby/object:Gem::Dependency
|
46
|
+
name: activesupport
|
47
|
+
type: :runtime
|
48
|
+
version_requirement:
|
49
|
+
version_requirements: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - ">="
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: "0"
|
54
|
+
version:
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rake
|
57
|
+
type: :development
|
58
|
+
version_requirement:
|
59
|
+
version_requirements: !ruby/object:Gem::Requirement
|
60
|
+
requirements:
|
61
|
+
- - ">="
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: "0"
|
64
|
+
version:
|
45
65
|
- !ruby/object:Gem::Dependency
|
46
66
|
name: rspec
|
47
67
|
type: :development
|
@@ -72,6 +92,16 @@ dependencies:
|
|
72
92
|
- !ruby/object:Gem::Version
|
73
93
|
version: "0"
|
74
94
|
version:
|
95
|
+
- !ruby/object:Gem::Dependency
|
96
|
+
name: rest-client
|
97
|
+
type: :development
|
98
|
+
version_requirement:
|
99
|
+
version_requirements: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: "0"
|
104
|
+
version:
|
75
105
|
description: BreadMachine facilitates payment processing, including 3-D Secure, with the SecureTrading XPay gateway
|
76
106
|
email: matt@localbubble.com
|
77
107
|
executables: []
|
@@ -89,6 +119,7 @@ files:
|
|
89
119
|
- lib/breadmachine/dto/three_d_secure_credentials.rb
|
90
120
|
- lib/breadmachine/extensions.rb
|
91
121
|
- lib/breadmachine/extensions/money.rb
|
122
|
+
- lib/breadmachine/extensions/string.rb
|
92
123
|
- lib/breadmachine/secure_trading.rb
|
93
124
|
- lib/breadmachine/secure_trading/auth_request.rb
|
94
125
|
- lib/breadmachine/secure_trading/auth_reversal_request.rb
|
@@ -105,6 +136,7 @@ files:
|
|
105
136
|
- lib/breadmachine/secure_trading/st_3d_card_query_response.rb
|
106
137
|
- lib/breadmachine/secure_trading/three_d_secure_credentials_xml.rb
|
107
138
|
- lib/breadmachine/secure_trading/xpay.rb
|
139
|
+
- lib/breadmachine/secure_trading/xpay_response.rb
|
108
140
|
- lib/breadmachine/secure_trading/xpay_socket.rb
|
109
141
|
- LICENSE
|
110
142
|
- README.rdoc
|
@@ -151,12 +183,12 @@ test_files:
|
|
151
183
|
- spec/secure_trading/st_3d_auth_response_spec.rb
|
152
184
|
- spec/secure_trading/st_3d_card_query_request_spec.rb
|
153
185
|
- spec/secure_trading/st_3d_card_query_response_spec.rb
|
154
|
-
- spec/secure_trading/st_auth_request_spec.rb
|
155
186
|
- spec/secure_trading/st_auth_reversal_request_spec.rb
|
156
187
|
- spec/secure_trading/st_refund_request_spec.rb
|
157
188
|
- spec/secure_trading/st_refund_reversal_request_spec.rb
|
158
189
|
- spec/secure_trading/st_settlement_request_spec.rb
|
159
190
|
- spec/secure_trading/three_d_secure_credentials_xml_spec.rb
|
191
|
+
- spec/secure_trading/xpay_response_spec.rb
|
160
192
|
- spec/secure_trading/xpay_socket_spec.rb
|
161
193
|
- spec/secure_trading/xpay_spec.rb
|
162
194
|
- spec/spec_helper.rb
|
File without changes
|