mock_braintree 0.2.1 → 0.3.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9003517a0967b41c191a6bcc5fd99ae595aa34e5ec902afd46a76426c995a7d9
4
- data.tar.gz: 861fea6fc652766bc327d5b77d62f99454707c99e75d44444eb8a08a6dfd94ea
3
+ metadata.gz: 01e87868840fd62679b76bcda219416f0b74b72df4d37b2c61f7c03309f9ccd5
4
+ data.tar.gz: cddac19381d1b59c83800e5de323678e3f48aa66c9edaaf7d2f228c24c72c778
5
5
  SHA512:
6
- metadata.gz: ef8806e2b96f0e3beebd4a8f40a93e1708b81acd24382bf96a5eb19bf419ca5c36f32414a5cbdfbba831ca67c05c8ff04133636757baf3eca24e752477de8d75
7
- data.tar.gz: 5be4305f38d88a9866b6981c4d1001fce23c05eedeed0f6d66fe250cd8b6d30faa602da961b16a4e34b58ac9acf6e869c11223501724f341c9cbdf9e4f2530a5
6
+ metadata.gz: 4d103d096e4fc4844a7d0ec0ceb9579c7477f8dc1c6f1e038e12f1cc3dce3a3c865cdac47a93d3b39d5baef7d5494f7bfe450ae5e7b098228fd1339643fbd395
7
+ data.tar.gz: b30a281a1d6e99ab312d5fe3f5a7b0943fed68f8dfd17f6d532dc060643b8c8846cf1c55e9a6f86be89d4c352c29756e7b02f37cecabef4f63e3a83a951b3440
data/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ # 0.2.2(unreleased)
2
+ * Add `created_at` attribute to transaction object
3
+ * Add `transaction.refund` call
4
+ * Have transaction response wait within 2 to 5 seconds to more closely mimic response time
5
+
1
6
  # 0.2.1
2
7
  * Fix bug where transaction object would return new ID value each time called
3
8
  * Removed `nonce` attribute from transaction object to match actual Braintree response
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- mock_braintree (0.2.1)
4
+ mock_braintree (0.3.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -1,16 +1,22 @@
1
1
  require 'securerandom'
2
2
 
3
3
  class Transaction
4
- attr_reader :amount
4
+ attr_reader :amount, :created_at, :order_id, :refunded_transaction_id
5
5
 
6
6
  def initialize(hash = {})
7
7
  @amount = hash[:amount]
8
8
  @options = hash.fetch(:options, nil)
9
+ @order_id = hash.fetch(:order_id, nil)
9
10
  @submit_for_settlement = submit_for_settlement
11
+ @created_at = Time.now.utc
12
+ @refunded_transaction_id = hash.fetch(:id, nil)
13
+ @void = hash.fetch(:void, false)
10
14
  end
11
15
 
12
16
  def status
13
- if (amount.to_f < 2000) && (submit_for_settlement == true)
17
+ if @void == true
18
+ 'voided'
19
+ elsif (amount.to_f < 2000) && (submit_for_settlement == true)
14
20
  'submitted_for_settlement'
15
21
  elsif (amount.to_f < 2000) && (submit_for_settlement == false)
16
22
  'authorized'
@@ -1,5 +1,9 @@
1
1
  class TransactionRequest
2
+ # sets time for response between 2-5 seconds (with 3 heavily weighted) to send response, adjust this to customize desired response times
3
+ # You can also reduce this to 0 if you are looking to get instant responses when running specs
4
+ # WAIT_TIME = [2, 3, 3, 3, 3, 4, 5].sample
2
5
  def sale(hash = {})
6
+ #sleep(WAIT_TIME)
3
7
  if hash[:amount].to_f < 2000.00
4
8
  SuccessfulResult.new(hash)
5
9
  elsif (hash[:amount].to_f >= 2000) && (hash[:amount].to_i < 3000)
@@ -10,4 +14,25 @@ class TransactionRequest
10
14
  UnsuccessfulResult.new(hash)
11
15
  end
12
16
  end
17
+
18
+ def refund(id, amount = '10.00', order_id = nil)
19
+ # sleep(WAIT_TIME)
20
+ hash_args = {
21
+ id: id,
22
+ amount: amount,
23
+ order_id: order_id,
24
+ options: {
25
+ submit_for_settlement: true
26
+ }
27
+ }
28
+ SuccessfulResult.new(hash_args)
29
+ end
30
+
31
+ def void(id)
32
+ hash_args = {
33
+ id: id,
34
+ void: true
35
+ }
36
+ SuccessfulResult.new(hash_args)
37
+ end
13
38
  end
@@ -1,3 +1,3 @@
1
1
  module MockBraintree
2
- VERSION = "0.2.1"
2
+ VERSION = "0.3.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mock_braintree
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brent Busby
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-05-07 00:00:00.000000000 Z
11
+ date: 2019-05-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler