datacash 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +18 -0
  3. data/Gemfile +4 -0
  4. data/LICENSE.txt +22 -0
  5. data/README.md +48 -0
  6. data/Rakefile +9 -0
  7. data/datacash.gemspec +34 -0
  8. data/lib/datacash.rb +51 -0
  9. data/lib/datacash/client.rb +61 -0
  10. data/lib/datacash/exceptions.rb +3 -0
  11. data/lib/datacash/request/amount.rb +14 -0
  12. data/lib/datacash/request/authentication.rb +7 -0
  13. data/lib/datacash/request/base.rb +37 -0
  14. data/lib/datacash/request/browser.rb +11 -0
  15. data/lib/datacash/request/card.rb +9 -0
  16. data/lib/datacash/request/card_transaction.rb +11 -0
  17. data/lib/datacash/request/cv2avs.rb +7 -0
  18. data/lib/datacash/request/historic_transaction.rb +8 -0
  19. data/lib/datacash/request/hps_transaction.rb +8 -0
  20. data/lib/datacash/request/request.rb +19 -0
  21. data/lib/datacash/request/thirdman.rb +23 -0
  22. data/lib/datacash/request/three_d_secure.rb +12 -0
  23. data/lib/datacash/request/transaction.rb +12 -0
  24. data/lib/datacash/request/transaction_details.rb +11 -0
  25. data/lib/datacash/response/auth_attempts.rb +7 -0
  26. data/lib/datacash/response/base.rb +33 -0
  27. data/lib/datacash/response/card.rb +7 -0
  28. data/lib/datacash/response/hps_transaction.rb +12 -0
  29. data/lib/datacash/response/query_transaction_result.rb +9 -0
  30. data/lib/datacash/response/response.rb +11 -0
  31. data/lib/datacash/session.rb +175 -0
  32. data/lib/datacash/version.rb +3 -0
  33. data/spec/datacash/client_spec.rb +124 -0
  34. data/spec/datacash/request/amount_spec.rb +27 -0
  35. data/spec/datacash/request/authentication_spec.rb +12 -0
  36. data/spec/datacash/request/browser_spec.rb +18 -0
  37. data/spec/datacash/request/card_spec.rb +24 -0
  38. data/spec/datacash/request/card_transaction_spec.rb +28 -0
  39. data/spec/datacash/request/cv2avs_spec.rb +12 -0
  40. data/spec/datacash/request/historic_transaction_spec.rb +16 -0
  41. data/spec/datacash/request/hps_transaction_spec.rb +16 -0
  42. data/spec/datacash/request/request_spec.rb +58 -0
  43. data/spec/datacash/request/thirdman_spec.rb +12 -0
  44. data/spec/datacash/request/three_d_secure_spec.rb +17 -0
  45. data/spec/datacash/request/transaction_details_spec.rb +36 -0
  46. data/spec/datacash/request/transaction_spec.rb +24 -0
  47. data/spec/datacash/response/response_spec.rb +48 -0
  48. data/spec/datacash/response_spec.rb +48 -0
  49. data/spec/spec_helper.rb +20 -0
  50. metadata +265 -0
@@ -0,0 +1,12 @@
1
+ require 'spec_helper'
2
+
3
+ describe Datacash::Request::Authentication do
4
+
5
+ describe "#to_xml" do
6
+ subject { MultiXml.parse(described_class.new.to_xml) }
7
+
8
+ it "should have a root element of 'Authentication'" do
9
+ subject.should have_key('Authentication')
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,18 @@
1
+ require 'spec_helper'
2
+
3
+ describe Datacash::Request::Browser do
4
+
5
+ describe "#to_xml" do
6
+ subject { MultiXml.parse(described_class.new.to_xml) }
7
+
8
+ it "should have a root element of 'CardTxn'" do
9
+ subject.should have_key('Browser')
10
+ end
11
+ end
12
+
13
+ it "should have defaults" do
14
+ subject[:device_category].should eq(0)
15
+ subject[:accept_headers].should eq('*/*')
16
+ subject[:user_agent].should eq('Mozilla/5.0')
17
+ end
18
+ end
@@ -0,0 +1,24 @@
1
+ require 'spec_helper'
2
+
3
+ describe Datacash::Request::Card do
4
+
5
+ describe "#to_xml" do
6
+ subject { MultiXml.parse(described_class.new.to_xml) }
7
+
8
+ it "should have a root element of 'Card'" do
9
+ subject.should have_key('Card')
10
+ end
11
+ end
12
+
13
+ describe ":cv2avs" do
14
+ context "when set" do
15
+ before { subject[:cv2avs] = {} }
16
+
17
+ it "should be a Cv2Avs instance" do
18
+ subject[:cv2avs].should be_kind_of(
19
+ Datacash::Request::Cv2Avs
20
+ )
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,28 @@
1
+ require 'spec_helper'
2
+
3
+ describe Datacash::Request::CardTransaction do
4
+
5
+ describe "#to_xml" do
6
+ subject { MultiXml.parse(described_class.new.to_xml) }
7
+
8
+ it "should have a root element of 'CardTxn'" do
9
+ subject.should have_key('CardTxn')
10
+ end
11
+ end
12
+
13
+ it "should have defaults" do
14
+ subject[:method].should eq('auth')
15
+ end
16
+
17
+ describe ":card" do
18
+ context "when set" do
19
+ before { subject[:card] = {} }
20
+
21
+ it "should be an Card instance" do
22
+ subject[:card].should be_kind_of(
23
+ Datacash::Request::Card
24
+ )
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,12 @@
1
+ require 'spec_helper'
2
+
3
+ describe Datacash::Request::Cv2Avs do
4
+
5
+ describe "#to_xml" do
6
+ subject { MultiXml.parse(described_class.new.to_xml) }
7
+
8
+ it "should have a root element of 'Cv2Avs'" do
9
+ subject.should have_key('Cv2Avs')
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,16 @@
1
+ require 'spec_helper'
2
+
3
+ describe Datacash::Request::HistoricTransaction do
4
+
5
+ describe "#to_xml" do
6
+ subject { MultiXml.parse(described_class.new.to_xml) }
7
+
8
+ it "should have a root element of 'CardTxn'" do
9
+ subject.should have_key('HistoricTxn')
10
+ end
11
+ end
12
+
13
+ it "should have defaults" do
14
+ subject[:method].should eq('query')
15
+ end
16
+ end
@@ -0,0 +1,16 @@
1
+ require 'spec_helper'
2
+
3
+ describe Datacash::Request::HpsTransaction do
4
+
5
+ describe "#to_xml" do
6
+ subject { MultiXml.parse(described_class.new.to_xml) }
7
+
8
+ it "should have a root element of 'CardTxn'" do
9
+ subject.should have_key('HpsTxn')
10
+ end
11
+ end
12
+
13
+ it "should have defaults" do
14
+ subject[:method].should eq('setup_full')
15
+ end
16
+ end
@@ -0,0 +1,58 @@
1
+ require 'spec_helper'
2
+
3
+ describe Datacash::Request::Request do
4
+
5
+ describe "#to_xml" do
6
+ subject { MultiXml.parse(described_class.new.to_xml) }
7
+
8
+ it "should have a root element of 'Request'" do
9
+ subject.should have_key('Request')
10
+ end
11
+ end
12
+
13
+ describe ":authentication" do
14
+ context "when set" do
15
+ before { subject[:authentication] = {} }
16
+
17
+ it "should be an Authentication instance" do
18
+ subject[:authentication].should be_kind_of(
19
+ Datacash::Request::Authentication
20
+ )
21
+ end
22
+ end
23
+ end
24
+
25
+ describe ":transaction" do
26
+ context "when set" do
27
+ before { subject[:transaction] = {} }
28
+
29
+ it "should be an Authentication instance" do
30
+ subject[:transaction].should be_kind_of(
31
+ Datacash::Request::Transaction
32
+ )
33
+ end
34
+ end
35
+ end
36
+
37
+ describe "adding authentication" do
38
+
39
+ context "with the correct arguments" do
40
+ before do
41
+ subject.add_authentication(client: "FRED", password: "PASSWORD123")
42
+ end
43
+
44
+ it "should add authentication to the request" do
45
+ subject[:authentication][:client].should eq("FRED")
46
+ subject[:authentication][:password].should eq("PASSWORD123")
47
+ end
48
+ end
49
+
50
+ it "should raise KeyError unless client is set" do
51
+ expect { subject.add_authentication(password: "PASSWORD123") }.to raise_error(KeyError)
52
+ end
53
+
54
+ it "should raise an KeyError unless password is set" do
55
+ expect { subject.add_authentication(client: "FRED") }.to raise_error(KeyError)
56
+ end
57
+ end
58
+ end
@@ -0,0 +1,12 @@
1
+ require 'spec_helper'
2
+
3
+ describe Datacash::Request::Thirdman do
4
+
5
+ describe "#to_xml" do
6
+ subject { MultiXml.parse(described_class.new.to_xml) }
7
+
8
+ it "should have a root element of 'Thirdman'" do
9
+ subject.should have_key('Thirdman')
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,17 @@
1
+ require 'spec_helper'
2
+
3
+ describe Datacash::Request::ThreeDSecure do
4
+
5
+ describe "#to_xml" do
6
+ subject { MultiXml.parse(described_class.new.to_xml) }
7
+
8
+ it "should have a root element of 'ThreeDSecure'" do
9
+ subject.should have_key('ThreeDSecure')
10
+ end
11
+ end
12
+
13
+ it "should have defaults" do
14
+ subject[:verify].should eq('yes')
15
+ subject[:purchase_desc].should eq('goods')
16
+ end
17
+ end
@@ -0,0 +1,36 @@
1
+ require 'spec_helper'
2
+
3
+ describe Datacash::Request::TransactionDetails do
4
+
5
+ describe "#to_xml" do
6
+ subject { MultiXml.parse(described_class.new.to_xml) }
7
+
8
+ it "should have a root element of 'TxnDetails'" do
9
+ subject.should have_key('TxnDetails')
10
+ end
11
+ end
12
+
13
+ describe ":three_d_secure" do
14
+ context "when set" do
15
+ before { subject[:three_d_secure] = {} }
16
+
17
+ it "should be a ThreeDSecure instance" do
18
+ subject[:three_d_secure].should be_kind_of(
19
+ Datacash::Request::ThreeDSecure
20
+ )
21
+ end
22
+ end
23
+ end
24
+
25
+ describe ":thirdman" do
26
+ context "when set" do
27
+ before { subject[:thirdman] = {} }
28
+
29
+ it "should be a Thirdman instance" do
30
+ subject[:thirdman].should be_kind_of(
31
+ Datacash::Request::Thirdman
32
+ )
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,24 @@
1
+ require 'spec_helper'
2
+
3
+ describe Datacash::Request::Transaction do
4
+
5
+ describe "#to_xml" do
6
+ subject { MultiXml.parse(described_class.new.to_xml) }
7
+
8
+ it "should have a root element of 'Transaction'" do
9
+ subject.should have_key('Transaction')
10
+ end
11
+ end
12
+
13
+ describe ":transaction_details" do
14
+ context "when set" do
15
+ before { subject[:transaction_details] = {} }
16
+
17
+ it "should be a TransactionDetails instance" do
18
+ subject[:transaction_details].should be_kind_of(
19
+ Datacash::Request::TransactionDetails
20
+ )
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,48 @@
1
+ require 'spec_helper'
2
+
3
+ describe Datacash::Response::Response do
4
+
5
+ context "with main response attributes" do
6
+
7
+ subject do
8
+ described_class.new(attributes)
9
+ end
10
+
11
+ let(:attributes) do
12
+ {
13
+ datacash_reference: 3600102439068417,
14
+ status: 274,
15
+ reason: "I don't know why",
16
+ time: 1368627820
17
+ }
18
+ end
19
+
20
+ it "should have a datacash_reference" do
21
+ subject.datacash_reference.should eq(3600102439068417)
22
+ end
23
+
24
+ it "should have a status" do
25
+ subject.status.should eq(274)
26
+ end
27
+
28
+ it "should have a reason" do
29
+ subject.reason.should eq("I don't know why")
30
+ end
31
+
32
+ it "should have a time" do
33
+ subject.time.to_i.should eq(1368627820)
34
+ end
35
+ end
36
+
37
+ describe "#success?" do
38
+ it "should be true if status is set to 1" do
39
+ subject[:status] = 1
40
+ subject.should be_success
41
+ end
42
+
43
+ it "should be false if status is not set to 1" do
44
+ subject[:status] = 0
45
+ subject.should_not be_success
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,48 @@
1
+ require 'spec_helper'
2
+
3
+ describe Datacash::Response::Response do
4
+
5
+ context "with main response attributes" do
6
+
7
+ subject do
8
+ described_class.new(attributes)
9
+ end
10
+
11
+ let(:attributes) do
12
+ {
13
+ datacash_reference: 3600102439068417,
14
+ status: 274,
15
+ reason: "I don't know why",
16
+ time: 1368627820
17
+ }
18
+ end
19
+
20
+ it "should have a datacash_reference" do
21
+ subject.datacash_reference.should eq(3600102439068417)
22
+ end
23
+
24
+ it "should have a status" do
25
+ subject.status.should eq(274)
26
+ end
27
+
28
+ it "should have a reason" do
29
+ subject.reason.should eq("I don't know why")
30
+ end
31
+
32
+ it "should have a time" do
33
+ subject.time.to_i.should eq(1368627820)
34
+ end
35
+ end
36
+
37
+ describe "#success?" do
38
+ it "should be true if status is set to 1" do
39
+ subject[:status] = 1
40
+ subject.should be_success
41
+ end
42
+
43
+ it "should be false if status is not set to 1" do
44
+ subject[:status] = 0
45
+ subject.should_not be_success
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,20 @@
1
+ require 'webmock/rspec'
2
+ require 'datacash'
3
+
4
+ # This file was generated by the `rspec --init` command. Conventionally, all
5
+ # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
6
+ # Require this file using `require "spec_helper"` to ensure that it is only
7
+ # loaded once.
8
+ #
9
+ # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
10
+ RSpec.configure do |config|
11
+ config.treat_symbols_as_metadata_keys_with_true_values = true
12
+ config.run_all_when_everything_filtered = true
13
+ config.filter_run :focus
14
+
15
+ # Run specs in random order to surface order dependencies. If you find an
16
+ # order dependency and want to debug it, you can fix the order by providing
17
+ # the seed, which is printed after each run.
18
+ # --seed 1234
19
+ config.order = 'random'
20
+ end
metadata ADDED
@@ -0,0 +1,265 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: datacash
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Robert Williams
8
+ - Richard Grundy
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-06-11 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: builder
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - '>='
19
+ - !ruby/object:Gem::Version
20
+ version: '0'
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - '>='
26
+ - !ruby/object:Gem::Version
27
+ version: '0'
28
+ - !ruby/object:Gem::Dependency
29
+ name: hashie
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - '>='
33
+ - !ruby/object:Gem::Version
34
+ version: '0'
35
+ type: :runtime
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - '>='
40
+ - !ruby/object:Gem::Version
41
+ version: '0'
42
+ - !ruby/object:Gem::Dependency
43
+ name: activesupport
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - '>='
47
+ - !ruby/object:Gem::Version
48
+ version: '0'
49
+ type: :runtime
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - '>='
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
56
+ - !ruby/object:Gem::Dependency
57
+ name: multi_xml
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - ~>
61
+ - !ruby/object:Gem::Version
62
+ version: 0.5.3
63
+ type: :runtime
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ~>
68
+ - !ruby/object:Gem::Version
69
+ version: 0.5.3
70
+ - !ruby/object:Gem::Dependency
71
+ name: rest-client
72
+ requirement: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - ~>
75
+ - !ruby/object:Gem::Version
76
+ version: '1.6'
77
+ type: :runtime
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - ~>
82
+ - !ruby/object:Gem::Version
83
+ version: '1.6'
84
+ - !ruby/object:Gem::Dependency
85
+ name: gem_config
86
+ requirement: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - '>='
89
+ - !ruby/object:Gem::Version
90
+ version: '0'
91
+ type: :runtime
92
+ prerelease: false
93
+ version_requirements: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - '>='
96
+ - !ruby/object:Gem::Version
97
+ version: '0'
98
+ - !ruby/object:Gem::Dependency
99
+ name: bundler
100
+ requirement: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - ~>
103
+ - !ruby/object:Gem::Version
104
+ version: '1.3'
105
+ type: :development
106
+ prerelease: false
107
+ version_requirements: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - ~>
110
+ - !ruby/object:Gem::Version
111
+ version: '1.3'
112
+ - !ruby/object:Gem::Dependency
113
+ name: rake
114
+ requirement: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - '>='
117
+ - !ruby/object:Gem::Version
118
+ version: '0'
119
+ type: :development
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - '>='
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
126
+ - !ruby/object:Gem::Dependency
127
+ name: rspec
128
+ requirement: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - '>='
131
+ - !ruby/object:Gem::Version
132
+ version: '0'
133
+ type: :development
134
+ prerelease: false
135
+ version_requirements: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - '>='
138
+ - !ruby/object:Gem::Version
139
+ version: '0'
140
+ - !ruby/object:Gem::Dependency
141
+ name: pry
142
+ requirement: !ruby/object:Gem::Requirement
143
+ requirements:
144
+ - - '>='
145
+ - !ruby/object:Gem::Version
146
+ version: '0'
147
+ type: :development
148
+ prerelease: false
149
+ version_requirements: !ruby/object:Gem::Requirement
150
+ requirements:
151
+ - - '>='
152
+ - !ruby/object:Gem::Version
153
+ version: '0'
154
+ - !ruby/object:Gem::Dependency
155
+ name: webmock
156
+ requirement: !ruby/object:Gem::Requirement
157
+ requirements:
158
+ - - '>='
159
+ - !ruby/object:Gem::Version
160
+ version: '0'
161
+ type: :development
162
+ prerelease: false
163
+ version_requirements: !ruby/object:Gem::Requirement
164
+ requirements:
165
+ - - '>='
166
+ - !ruby/object:Gem::Version
167
+ version: '0'
168
+ description: This library provides an idiomatic interface to the DataCash gateway.
169
+ email:
170
+ - rob@r-williams.com
171
+ - richguk@gmail.com
172
+ executables: []
173
+ extensions: []
174
+ extra_rdoc_files: []
175
+ files:
176
+ - .gitignore
177
+ - Gemfile
178
+ - LICENSE.txt
179
+ - README.md
180
+ - Rakefile
181
+ - datacash.gemspec
182
+ - lib/datacash.rb
183
+ - lib/datacash/client.rb
184
+ - lib/datacash/exceptions.rb
185
+ - lib/datacash/request/amount.rb
186
+ - lib/datacash/request/authentication.rb
187
+ - lib/datacash/request/base.rb
188
+ - lib/datacash/request/browser.rb
189
+ - lib/datacash/request/card.rb
190
+ - lib/datacash/request/card_transaction.rb
191
+ - lib/datacash/request/cv2avs.rb
192
+ - lib/datacash/request/historic_transaction.rb
193
+ - lib/datacash/request/hps_transaction.rb
194
+ - lib/datacash/request/request.rb
195
+ - lib/datacash/request/thirdman.rb
196
+ - lib/datacash/request/three_d_secure.rb
197
+ - lib/datacash/request/transaction.rb
198
+ - lib/datacash/request/transaction_details.rb
199
+ - lib/datacash/response/auth_attempts.rb
200
+ - lib/datacash/response/base.rb
201
+ - lib/datacash/response/card.rb
202
+ - lib/datacash/response/hps_transaction.rb
203
+ - lib/datacash/response/query_transaction_result.rb
204
+ - lib/datacash/response/response.rb
205
+ - lib/datacash/session.rb
206
+ - lib/datacash/version.rb
207
+ - spec/datacash/client_spec.rb
208
+ - spec/datacash/request/amount_spec.rb
209
+ - spec/datacash/request/authentication_spec.rb
210
+ - spec/datacash/request/browser_spec.rb
211
+ - spec/datacash/request/card_spec.rb
212
+ - spec/datacash/request/card_transaction_spec.rb
213
+ - spec/datacash/request/cv2avs_spec.rb
214
+ - spec/datacash/request/historic_transaction_spec.rb
215
+ - spec/datacash/request/hps_transaction_spec.rb
216
+ - spec/datacash/request/request_spec.rb
217
+ - spec/datacash/request/thirdman_spec.rb
218
+ - spec/datacash/request/three_d_secure_spec.rb
219
+ - spec/datacash/request/transaction_details_spec.rb
220
+ - spec/datacash/request/transaction_spec.rb
221
+ - spec/datacash/response/response_spec.rb
222
+ - spec/datacash/response_spec.rb
223
+ - spec/spec_helper.rb
224
+ homepage: ''
225
+ licenses:
226
+ - MIT
227
+ metadata: {}
228
+ post_install_message:
229
+ rdoc_options: []
230
+ require_paths:
231
+ - lib
232
+ required_ruby_version: !ruby/object:Gem::Requirement
233
+ requirements:
234
+ - - '>='
235
+ - !ruby/object:Gem::Version
236
+ version: '0'
237
+ required_rubygems_version: !ruby/object:Gem::Requirement
238
+ requirements:
239
+ - - '>='
240
+ - !ruby/object:Gem::Version
241
+ version: '0'
242
+ requirements: []
243
+ rubyforge_project:
244
+ rubygems_version: 2.0.0
245
+ signing_key:
246
+ specification_version: 4
247
+ summary: This library provides an idiomatic interface to the DataCash gateway.
248
+ test_files:
249
+ - spec/datacash/client_spec.rb
250
+ - spec/datacash/request/amount_spec.rb
251
+ - spec/datacash/request/authentication_spec.rb
252
+ - spec/datacash/request/browser_spec.rb
253
+ - spec/datacash/request/card_spec.rb
254
+ - spec/datacash/request/card_transaction_spec.rb
255
+ - spec/datacash/request/cv2avs_spec.rb
256
+ - spec/datacash/request/historic_transaction_spec.rb
257
+ - spec/datacash/request/hps_transaction_spec.rb
258
+ - spec/datacash/request/request_spec.rb
259
+ - spec/datacash/request/thirdman_spec.rb
260
+ - spec/datacash/request/three_d_secure_spec.rb
261
+ - spec/datacash/request/transaction_details_spec.rb
262
+ - spec/datacash/request/transaction_spec.rb
263
+ - spec/datacash/response/response_spec.rb
264
+ - spec/datacash/response_spec.rb
265
+ - spec/spec_helper.rb