webpay-mock 0.1.1 → 0.1.2
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 +7 -2
- data/README.md +30 -1
- data/lib/webpay/mock/fake_entity/account.rb +8 -1
- data/lib/webpay/mock/fake_entity/charge.rb +23 -1
- data/lib/webpay/mock/fake_entity/customer.rb +1 -1
- data/lib/webpay/mock/fake_entity/recursion.rb +3 -2
- data/lib/webpay/mock/version.rb +1 -1
- data/lib/webpay/mock/webmock_wrapper.rb +5 -1
- data/spec/fake_entity/recursion_spec.rb +2 -10
- data/spec/webmock_wrapper_spec.rb +29 -0
- data/webpay-mock.gemspec +1 -1
- metadata +19 -20
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3c646a455055caf1fe597bf977b68a7e54582f82
|
4
|
+
data.tar.gz: 98dfd0e1aa816edc408d15ab865020c6a1ee213a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4d6c2ff3ec10265b66b9fc73baee8be3796e723c854a8160cdd4417507abaf428966a94c4ebc71f2843133877fa50a34b2cfda5e0e82153059ccda3dae3a40c6
|
7
|
+
data.tar.gz: 0403e897c37fb52d9db7a718e3faf1aac7ad30844da973c8e5512aca98b75a8daab8c280ff2e2c12a641f3e5bbb4531eb6d0f9f05b3285771f125bc57531804c
|
data/.travis.yml
CHANGED
@@ -1,11 +1,16 @@
|
|
1
1
|
language: ruby
|
2
2
|
rvm:
|
3
3
|
- 1.9.3
|
4
|
-
- 2.
|
4
|
+
- 2.1.2
|
5
5
|
- jruby-head
|
6
|
-
-
|
6
|
+
- jruby-1.7
|
7
|
+
- rbx-2.2.7
|
7
8
|
script: "bundle exec rake"
|
8
9
|
notifications:
|
9
10
|
hipchat:
|
10
11
|
rooms:
|
11
12
|
secure: ykLsXlebzR9nnb+9ttpCySOg2hE4Ve699s2Owd7YahcZyVNxnG4q1P8Mps4jFlOgPNQ6JwkcB4A6QLavavtJlX7vXTDj1GD+zVAScjbtN/6ZV94S2eHA7hBUXHUwBmH0Cw5glrFoPEDBsQdOYbrOrJKwFNEhUTHdY0SRgEXv5Wo=
|
13
|
+
matrix:
|
14
|
+
allow_failures:
|
15
|
+
- rvm: jruby-head # cryptic gemspec problem in f444c68
|
16
|
+
- rvm: rbx-2.2.7
|
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# WebPay::Mock
|
1
|
+
# WebPay::Mock [](https://travis-ci.org/webpay/webpay-mock)
|
2
2
|
|
3
3
|
WebPay::Mock helps development of WebPay client applications.
|
4
4
|
|
@@ -43,6 +43,35 @@ specify { expect(webpay.charge.create(params).id).to eq response['id'] }
|
|
43
43
|
|
44
44
|
See [our test cases](https://github.com/webpay/webpay-mock/blob/master/spec/webmock_wrapper_spec.rb) for more examples.
|
45
45
|
|
46
|
+
### Testing error responses
|
47
|
+
|
48
|
+
Just return an error by type.
|
49
|
+
|
50
|
+
```ruby
|
51
|
+
webpay_stub(:charges, :create, error: :card_error, params: params)
|
52
|
+
```
|
53
|
+
|
54
|
+
Error kinds are:
|
55
|
+
|
56
|
+
- bad_request (400)
|
57
|
+
- unauthorized (401)
|
58
|
+
- card_error (402)
|
59
|
+
- not_found (404)
|
60
|
+
- internal_server_error (500)
|
61
|
+
|
62
|
+
Specify all fields to test a specific error.
|
63
|
+
|
64
|
+
```ruby
|
65
|
+
webpay_stub(:charges, :create, params: params, response: card_error(
|
66
|
+
message: "You must provide the card which is not expired",
|
67
|
+
caused_by: "buyer",
|
68
|
+
param: "exp_month",
|
69
|
+
code: "invalid_expiry_month"
|
70
|
+
))
|
71
|
+
```
|
72
|
+
|
73
|
+
For up-to-date details about error structure, see [API error document](https://webpay.jp/docs/api_errors) on our website.
|
74
|
+
|
46
75
|
## Contributing
|
47
76
|
|
48
77
|
1. Fork it
|
@@ -5,7 +5,14 @@ module WebPay::Mock::FakeEntity
|
|
5
5
|
end
|
6
6
|
|
7
7
|
def basic_attributes
|
8
|
-
{
|
8
|
+
{
|
9
|
+
charge_enabled: false,
|
10
|
+
currencies_supported: ["jpy"],
|
11
|
+
details_submitted: false,
|
12
|
+
email: 'test@example.com',
|
13
|
+
statement_descriptor: nil,
|
14
|
+
card_types_supported: ["Visa", "American Express", "MasterCard", "JCB", "Diners Club"],
|
15
|
+
}
|
9
16
|
end
|
10
17
|
|
11
18
|
def copy_attributes
|
@@ -5,7 +5,29 @@ module WebPay::Mock::FakeEntity
|
|
5
5
|
end
|
6
6
|
|
7
7
|
def basic_attributes
|
8
|
-
{
|
8
|
+
{
|
9
|
+
amount: 1000,
|
10
|
+
card: fake_card,
|
11
|
+
currency: 'jpy',
|
12
|
+
paid: true,
|
13
|
+
captured: true,
|
14
|
+
refunded: false,
|
15
|
+
amount_refunded: 0,
|
16
|
+
customer: nil,
|
17
|
+
shop: nil,
|
18
|
+
recursion: nil,
|
19
|
+
description: nil,
|
20
|
+
failure_message: nil,
|
21
|
+
expire_time: nil,
|
22
|
+
fees: [{
|
23
|
+
object: 'fee',
|
24
|
+
transaction_type: 'payment',
|
25
|
+
transaction_fee: 0,
|
26
|
+
rate: 3.25,
|
27
|
+
amount: 33,
|
28
|
+
created: Time.now.to_i
|
29
|
+
}]
|
30
|
+
}
|
9
31
|
end
|
10
32
|
|
11
33
|
def copy_attributes
|
@@ -10,8 +10,8 @@ module WebPay::Mock::FakeEntity
|
|
10
10
|
currency: 'jpy',
|
11
11
|
period: 'month',
|
12
12
|
customer: 'cus_XXXXXXXXX',
|
13
|
-
last_executed:
|
14
|
-
next_scheduled: Time.now.to_i,
|
13
|
+
last_executed: Time.now.to_i,
|
14
|
+
next_scheduled: Time.now.to_i + 30 * 24 * 60 * 60,
|
15
15
|
status: 'active'
|
16
16
|
}
|
17
17
|
end
|
@@ -25,6 +25,7 @@ module WebPay::Mock::FakeEntity
|
|
25
25
|
when 'first_scheduled'
|
26
26
|
if value
|
27
27
|
{
|
28
|
+
last_executed: nil,
|
28
29
|
next_scheduled: value
|
29
30
|
}
|
30
31
|
end
|
data/lib/webpay/mock/version.rb
CHANGED
@@ -94,6 +94,10 @@ module WebPay::Mock::WebMockWrapper
|
|
94
94
|
end
|
95
95
|
end
|
96
96
|
|
97
|
+
unless path
|
98
|
+
raise ArgumentError.new("Unknown entity or action is given to webpay_stub()")
|
99
|
+
end
|
100
|
+
|
97
101
|
if path.include?(':id')
|
98
102
|
if id.nil? || id == ''
|
99
103
|
raise ArgumentError.new(":id in parameters is required")
|
@@ -101,7 +105,7 @@ module WebPay::Mock::WebMockWrapper
|
|
101
105
|
path = path.gsub(':id', id)
|
102
106
|
end
|
103
107
|
|
104
|
-
spec =
|
108
|
+
spec = options[:response] ||
|
105
109
|
case options[:error]
|
106
110
|
when :bad_request
|
107
111
|
bad_request
|
@@ -14,8 +14,8 @@ describe WebPay::Mock::FakeEntity::Recursion do
|
|
14
14
|
specify { expect(recursion['currency']).to eq 'jpy' }
|
15
15
|
specify { expect(recursion['period']).to eq 'month' }
|
16
16
|
specify { expect(recursion['customer']).to eq 'cus_XXXXXXXXX' }
|
17
|
-
specify { expect(recursion['last_executed']).to
|
18
|
-
specify { expect(recursion['next_scheduled']).to be_within(2).of(Time.now.to_i) }
|
17
|
+
specify { expect(recursion['last_executed']).to be_within(2).of(Time.now.to_i) }
|
18
|
+
specify { expect(recursion['next_scheduled']).to be_within(2).of(Time.now.to_i + 30 * 24 * 60 * 60) }
|
19
19
|
specify { expect(recursion['status']).to eq 'active' }
|
20
20
|
end
|
21
21
|
|
@@ -48,13 +48,5 @@ describe WebPay::Mock::FakeEntity::Recursion do
|
|
48
48
|
specify { expect(recursion['last_executed']).to eq nil }
|
49
49
|
specify { expect(recursion['next_scheduled']).to eq(first_scheduled) }
|
50
50
|
end
|
51
|
-
|
52
|
-
context 'params has period no first_scheduled' do
|
53
|
-
let(:period) { 'year' }
|
54
|
-
let(:first_scheduled) { nil }
|
55
|
-
|
56
|
-
specify { expect(recursion['last_executed']).to eq nil }
|
57
|
-
specify { expect(recursion['next_scheduled']).to be_within(2).of(Time.now.to_i) }
|
58
|
-
end
|
59
51
|
end
|
60
52
|
end
|
@@ -18,12 +18,41 @@ describe WebPay::Mock::WebMockWrapper do
|
|
18
18
|
specify { expect(webpay.charge.create(params).id).to eq response['id'] }
|
19
19
|
end
|
20
20
|
|
21
|
+
describe 'create responds card error' do
|
22
|
+
let(:params) { { amount: 1000, currency: 'jpy', card: 'tok_xxxxxxxxx', description: 'test charge' } }
|
23
|
+
let!(:response) { webpay_stub(:charges, :create, error: :card_error, params: params) }
|
24
|
+
|
25
|
+
specify { expect { webpay.charge.create(params).id }.to raise_error(WebPay::ErrorResponse::CardError) }
|
26
|
+
end
|
27
|
+
|
28
|
+
describe 'create responds card error with specified cause' do
|
29
|
+
let(:params) { { amount: 1000, currency: 'jpy', card: 'tok_xxxxxxxxx', description: 'test charge' } }
|
30
|
+
let!(:response) { webpay_stub(:charges, :create, params: params, response: card_error(
|
31
|
+
message: "You must provide the card which is not expired",
|
32
|
+
caused_by: "buyer",
|
33
|
+
param: "exp_month",
|
34
|
+
code: "invalid_expiry_month"
|
35
|
+
)) }
|
36
|
+
|
37
|
+
specify { expect { webpay.charge.create(params).id }.to raise_error { |e|
|
38
|
+
expect(e.data.error.caused_by).to eq 'buyer'
|
39
|
+
expect(e.data.error.code).to eq 'invalid_expiry_month'
|
40
|
+
} }
|
41
|
+
end
|
42
|
+
|
21
43
|
describe 'retrieve' do
|
22
44
|
let(:id) { 'ch_xxxxxxxxx' }
|
23
45
|
before { webpay_stub(:charges, :retrieve, id: id) }
|
24
46
|
specify { expect(webpay.charge.retrieve(id).id).to eq id }
|
25
47
|
end
|
26
48
|
|
49
|
+
describe 'retrieve responds not found' do
|
50
|
+
let(:params) { { amount: 1000, currency: 'jpy', card: 'tok_xxxxxxxxx', description: 'test charge' } }
|
51
|
+
let!(:response) { webpay_stub(:charges, :create, error: :not_found, params: params) }
|
52
|
+
|
53
|
+
specify { expect { webpay.charge.create(params).id }.to raise_error(WebPay::ErrorResponse::InvalidRequestError) }
|
54
|
+
end
|
55
|
+
|
27
56
|
describe 'refund' do
|
28
57
|
let(:id) { 'ch_xxxxxxxxx' }
|
29
58
|
let(:data) { charge_from({amount: 5000}, id: id) }
|
data/webpay-mock.gemspec
CHANGED
@@ -23,5 +23,5 @@ Gem::Specification.new do |spec|
|
|
23
23
|
spec.add_development_dependency "bundler", "~> 1.3"
|
24
24
|
spec.add_development_dependency "rake"
|
25
25
|
spec.add_development_dependency 'rspec', '~> 3.0'
|
26
|
-
spec.add_development_dependency 'webpay', '~> 3.0
|
26
|
+
spec.add_development_dependency 'webpay', '~> 3.0'
|
27
27
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: webpay-mock
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- webpay
|
@@ -9,78 +9,78 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-
|
12
|
+
date: 2014-12-07 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: webmock
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
|
-
- - ~>
|
18
|
+
- - "~>"
|
19
19
|
- !ruby/object:Gem::Version
|
20
20
|
version: 1.18.0
|
21
21
|
type: :runtime
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
|
-
- - ~>
|
25
|
+
- - "~>"
|
26
26
|
- !ruby/object:Gem::Version
|
27
27
|
version: 1.18.0
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: bundler
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
|
-
- - ~>
|
32
|
+
- - "~>"
|
33
33
|
- !ruby/object:Gem::Version
|
34
34
|
version: '1.3'
|
35
35
|
type: :development
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
|
-
- - ~>
|
39
|
+
- - "~>"
|
40
40
|
- !ruby/object:Gem::Version
|
41
41
|
version: '1.3'
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: rake
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
45
45
|
requirements:
|
46
|
-
- -
|
46
|
+
- - ">="
|
47
47
|
- !ruby/object:Gem::Version
|
48
48
|
version: '0'
|
49
49
|
type: :development
|
50
50
|
prerelease: false
|
51
51
|
version_requirements: !ruby/object:Gem::Requirement
|
52
52
|
requirements:
|
53
|
-
- -
|
53
|
+
- - ">="
|
54
54
|
- !ruby/object:Gem::Version
|
55
55
|
version: '0'
|
56
56
|
- !ruby/object:Gem::Dependency
|
57
57
|
name: rspec
|
58
58
|
requirement: !ruby/object:Gem::Requirement
|
59
59
|
requirements:
|
60
|
-
- - ~>
|
60
|
+
- - "~>"
|
61
61
|
- !ruby/object:Gem::Version
|
62
62
|
version: '3.0'
|
63
63
|
type: :development
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
66
66
|
requirements:
|
67
|
-
- - ~>
|
67
|
+
- - "~>"
|
68
68
|
- !ruby/object:Gem::Version
|
69
69
|
version: '3.0'
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
71
|
name: webpay
|
72
72
|
requirement: !ruby/object:Gem::Requirement
|
73
73
|
requirements:
|
74
|
-
- - ~>
|
74
|
+
- - "~>"
|
75
75
|
- !ruby/object:Gem::Version
|
76
|
-
version: 3.0
|
76
|
+
version: '3.0'
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
79
|
version_requirements: !ruby/object:Gem::Requirement
|
80
80
|
requirements:
|
81
|
-
- - ~>
|
81
|
+
- - "~>"
|
82
82
|
- !ruby/object:Gem::Version
|
83
|
-
version: 3.0
|
83
|
+
version: '3.0'
|
84
84
|
description: WebPay::Mock helps development of WebPay client applications
|
85
85
|
email:
|
86
86
|
- administrators@webpay.jp
|
@@ -89,8 +89,8 @@ executables: []
|
|
89
89
|
extensions: []
|
90
90
|
extra_rdoc_files: []
|
91
91
|
files:
|
92
|
-
- .gitignore
|
93
|
-
- .travis.yml
|
92
|
+
- ".gitignore"
|
93
|
+
- ".travis.yml"
|
94
94
|
- Gemfile
|
95
95
|
- LICENSE.txt
|
96
96
|
- README.md
|
@@ -130,17 +130,17 @@ require_paths:
|
|
130
130
|
- lib
|
131
131
|
required_ruby_version: !ruby/object:Gem::Requirement
|
132
132
|
requirements:
|
133
|
-
- -
|
133
|
+
- - ">="
|
134
134
|
- !ruby/object:Gem::Version
|
135
135
|
version: '0'
|
136
136
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
137
137
|
requirements:
|
138
|
-
- -
|
138
|
+
- - ">="
|
139
139
|
- !ruby/object:Gem::Version
|
140
140
|
version: '0'
|
141
141
|
requirements: []
|
142
142
|
rubyforge_project:
|
143
|
-
rubygems_version: 2.
|
143
|
+
rubygems_version: 2.2.2
|
144
144
|
signing_key:
|
145
145
|
specification_version: 4
|
146
146
|
summary: Dummy response generator and wrapper of webmock gem for WebPay
|
@@ -154,4 +154,3 @@ test_files:
|
|
154
154
|
- spec/fake_entity_spec.rb
|
155
155
|
- spec/spec_helper.rb
|
156
156
|
- spec/webmock_wrapper_spec.rb
|
157
|
-
has_rdoc:
|