diff --git a/app/models/solidus_paypal_braintree/gateway.rb b/app/models/solidus_paypal_braintree/gateway.rb
index 4bbbb874b1c..e9684c36561 100644
--- a/app/models/solidus_paypal_braintree/gateway.rb
+++ b/app/models/solidus_paypal_braintree/gateway.rb
@@ -54,9 +54,15 @@ def capture(_money, _source, _gateway_options)
raise NotImplementedError
end
+ # Used to refeund a customer for an already settled transaction.
+ #
+ # @api public
+ # @param money [#to_s] amount to refund
+ # @param response_code [String] the transaction is of the payment to refund
# @return [Response]
- def credit(_money, _source, _response_code, _gateway_options)
- raise NotImplementedError
+ def credit(money, _source, response_code, _gateway_options)
+ result = Braintree::Transaction.refund(response_code, money)
+ Response.build(result)
end
# Used to cancel a transaction before it is settled.
diff --git a/spec/fixtures/cassettes/braintree/authorize.yml b/spec/fixtures/cassettes/braintree/authorize.yml
index f0c7402ac80..92bc4c17dce 100644
--- a/spec/fixtures/cassettes/braintree/authorize.yml
+++ b/spec/fixtures/cassettes/braintree/authorize.yml
@@ -34,7 +34,7 @@ http_interactions:
message: Created
headers:
Date:
- - Fri, 02 Sep 2016 22:11:11 GMT
+ - Fri, 02 Sep 2016 22:37:08 GMT
Content-Type:
- application/xml; charset=utf-8
Transfer-Encoding:
@@ -55,52 +55,52 @@ http_interactions:
Content-Encoding:
- gzip
Etag:
- - W/"8d93c049b9f16c9ffe371fbab80201f9"
+ - W/"a85394242d425cac7884c1f46aee6514"
Cache-Control:
- max-age=0, private, must-revalidate
X-Request-Id:
- - eb613b0b-b8c5-4d6d-ab8e-2c1354b040bf
+ - bd7d3219-5e82-4d47-ad73-ee20429ae9a7
X-Runtime:
- - '0.451787'
+ - '0.346961'
Strict-Transport-Security:
- max-age=31536000; includeSubDomains
body:
encoding: ASCII-8BIT
string: !binary |-
- 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
- 5m7y7h8AAAD//wMApTSUsEkVAAA=
+ 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
+ LL25G777BwAA//8DANMsoGFJFQAA
http_version:
- recorded_at: Fri, 02 Sep 2016 22:11:50 GMT
+ recorded_at: Fri, 02 Sep 2016 22:37:08 GMT
recorded_with: VCR 3.0.3
diff --git a/spec/fixtures/cassettes/braintree/credit.yml b/spec/fixtures/cassettes/braintree/credit.yml
new file mode 100644
index 00000000000..8ac371ff039
--- /dev/null
+++ b/spec/fixtures/cassettes/braintree/credit.yml
@@ -0,0 +1,302 @@
+---
+http_interactions:
+- request:
+ method: post
+ uri: https://api.sandbox.braintreegateway.com/merchants/7rdg92j7bm7fk5h3/transactions
+ body:
+ encoding: UTF-8
+ string: |
+
+
+ 40
+ fake-paypal-future-nonce
+
+ true
+
+ sale
+
+ headers:
+ Accept-Encoding:
+ - gzip
+ Accept:
+ - application/xml
+ User-Agent:
+ - Braintree Ruby Gem 2.66.0
+ X-Apiversion:
+ - '4'
+ Authorization:
+ - Basic bXdqa2t4d2NwMzJja2huZjphOTI5OGY0M2IzMGM2OTlkYjMwNzJjYzRhMDBmN2Y0OQ==
+ Content-Type:
+ - application/xml
+ response:
+ status:
+ code: 201
+ message: Created
+ headers:
+ Date:
+ - Fri, 02 Sep 2016 22:42:45 GMT
+ Content-Type:
+ - application/xml; charset=utf-8
+ Transfer-Encoding:
+ - chunked
+ X-Frame-Options:
+ - SAMEORIGIN
+ - SAMEORIGIN
+ X-Xss-Protection:
+ - 1; mode=block
+ X-Content-Type-Options:
+ - nosniff
+ X-Authentication:
+ - basic_auth
+ X-User:
+ - 3v249hqtptsg744y
+ Vary:
+ - Accept-Encoding
+ Content-Encoding:
+ - gzip
+ Etag:
+ - W/"f3a1560798cb24a66ef4e5e73eea1972"
+ Cache-Control:
+ - max-age=0, private, must-revalidate
+ X-Request-Id:
+ - b4f790dd-b5cb-43b8-82a7-6e27632636e3
+ X-Runtime:
+ - '0.379835'
+ Strict-Transport-Security:
+ - max-age=31536000; includeSubDomains
+ body:
+ encoding: ASCII-8BIT
+ string: !binary |-
+ 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
+ Xthgu+DNnwAAAP//AwC5j9scnBcAAA==
+ http_version:
+ recorded_at: Fri, 02 Sep 2016 22:42:45 GMT
+- request:
+ method: put
+ uri: https://api.sandbox.braintreegateway.com/merchants/7rdg92j7bm7fk5h3/transactions/hfrvwgtm/settle
+ body:
+ encoding: UTF-8
+ string: ''
+ headers:
+ Accept-Encoding:
+ - gzip
+ Accept:
+ - application/xml
+ User-Agent:
+ - Braintree Ruby Gem 2.66.0
+ X-Apiversion:
+ - '4'
+ Authorization:
+ - Basic bXdqa2t4d2NwMzJja2huZjphOTI5OGY0M2IzMGM2OTlkYjMwNzJjYzRhMDBmN2Y0OQ==
+ Content-Type:
+ - application/xml
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Date:
+ - Fri, 02 Sep 2016 22:42:47 GMT
+ Content-Type:
+ - application/xml; charset=utf-8
+ Transfer-Encoding:
+ - chunked
+ X-Frame-Options:
+ - SAMEORIGIN
+ - SAMEORIGIN
+ X-Xss-Protection:
+ - 1; mode=block
+ X-Content-Type-Options:
+ - nosniff
+ X-Authentication:
+ - basic_auth
+ X-User:
+ - 3v249hqtptsg744y
+ Vary:
+ - Accept-Encoding
+ Content-Encoding:
+ - gzip
+ Etag:
+ - W/"e3649378352bf711b686c7884dba68f5"
+ Cache-Control:
+ - max-age=0, private, must-revalidate
+ X-Request-Id:
+ - 4216fe7e-f24c-4898-8282-312772929373
+ X-Runtime:
+ - '1.692917'
+ Strict-Transport-Security:
+ - max-age=31536000; includeSubDomains
+ body:
+ encoding: ASCII-8BIT
+ string: !binary |-
+ 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
+ AFgau56oGAAA
+ http_version:
+ recorded_at: Fri, 02 Sep 2016 22:42:47 GMT
+- request:
+ method: post
+ uri: https://api.sandbox.braintreegateway.com/merchants/7rdg92j7bm7fk5h3/transactions/hfrvwgtm/refund
+ body:
+ encoding: UTF-8
+ string: |
+
+
+ 20
+
+ headers:
+ Accept-Encoding:
+ - gzip
+ Accept:
+ - application/xml
+ User-Agent:
+ - Braintree Ruby Gem 2.66.0
+ X-Apiversion:
+ - '4'
+ Authorization:
+ - Basic bXdqa2t4d2NwMzJja2huZjphOTI5OGY0M2IzMGM2OTlkYjMwNzJjYzRhMDBmN2Y0OQ==
+ Content-Type:
+ - application/xml
+ response:
+ status:
+ code: 201
+ message: Created
+ headers:
+ Date:
+ - Fri, 02 Sep 2016 22:42:47 GMT
+ Content-Type:
+ - application/xml; charset=utf-8
+ Transfer-Encoding:
+ - chunked
+ X-Frame-Options:
+ - SAMEORIGIN
+ - SAMEORIGIN
+ X-Xss-Protection:
+ - 1; mode=block
+ X-Content-Type-Options:
+ - nosniff
+ X-Authentication:
+ - basic_auth
+ X-User:
+ - 3v249hqtptsg744y
+ Vary:
+ - Accept-Encoding
+ Content-Encoding:
+ - gzip
+ Etag:
+ - W/"1c5337e012846cb439b5755f7a2b55e0"
+ Cache-Control:
+ - max-age=0, private, must-revalidate
+ X-Request-Id:
+ - 5163c0e9-aca2-435c-992e-765e44877f92
+ X-Runtime:
+ - '0.309892'
+ Strict-Transport-Security:
+ - max-age=31536000; includeSubDomains
+ body:
+ encoding: ASCII-8BIT
+ string: !binary |-
+ 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
+ AAA=
+ http_version:
+ recorded_at: Fri, 02 Sep 2016 22:42:47 GMT
+recorded_with: VCR 3.0.3
diff --git a/spec/fixtures/cassettes/braintree/payment.yml b/spec/fixtures/cassettes/braintree/payment.yml
index e5fb5f47293..3d2397f741d 100644
--- a/spec/fixtures/cassettes/braintree/payment.yml
+++ b/spec/fixtures/cassettes/braintree/payment.yml
@@ -35,7 +35,7 @@ http_interactions:
message: Created
headers:
Date:
- - Fri, 02 Sep 2016 22:11:10 GMT
+ - Fri, 02 Sep 2016 22:36:03 GMT
Content-Type:
- application/xml; charset=utf-8
Transfer-Encoding:
@@ -56,54 +56,54 @@ http_interactions:
Content-Encoding:
- gzip
Etag:
- - W/"550fbc6fe40cfa602d6b2104f9465dec"
+ - W/"1fca2063410b600590b2ad423e4ed3c9"
Cache-Control:
- max-age=0, private, must-revalidate
X-Request-Id:
- - 849aab8d-5be2-43c8-b7a9-9959b01fa584
+ - f311b38c-7db3-4213-b2b8-cf0c0dc98643
X-Runtime:
- - '0.510242'
+ - '0.430471'
Strict-Transport-Security:
- max-age=31536000; includeSubDomains
body:
encoding: ASCII-8BIT
string: !binary |-
- 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
- AA==
+ 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
+ k6kXAAA=
http_version:
- recorded_at: Fri, 02 Sep 2016 22:11:49 GMT
+ recorded_at: Fri, 02 Sep 2016 22:36:03 GMT
recorded_with: VCR 3.0.3
diff --git a/spec/fixtures/cassettes/braintree/purchase.yml b/spec/fixtures/cassettes/braintree/purchase.yml
index 8dc14152890..9492cc039d8 100644
--- a/spec/fixtures/cassettes/braintree/purchase.yml
+++ b/spec/fixtures/cassettes/braintree/purchase.yml
@@ -35,7 +35,7 @@ http_interactions:
message: Created
headers:
Date:
- - Fri, 02 Sep 2016 22:11:09 GMT
+ - Fri, 02 Sep 2016 22:36:05 GMT
Content-Type:
- application/xml; charset=utf-8
Transfer-Encoding:
@@ -56,54 +56,54 @@ http_interactions:
Content-Encoding:
- gzip
Etag:
- - W/"c08f682cf483be66d923408916993638"
+ - W/"5818840e848777fb85174c5d4be0db9f"
Cache-Control:
- max-age=0, private, must-revalidate
X-Request-Id:
- - 5f23169e-faf0-4b4c-9496-4846a968097a
+ - 4afef4aa-3a2b-4605-8d99-f2220a0e86c0
X-Runtime:
- - '0.647860'
+ - '0.530645'
Strict-Transport-Security:
- max-age=31536000; includeSubDomains
body:
encoding: ASCII-8BIT
string: !binary |-
- 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
- AA==
+ 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
+ AAA=
http_version:
- recorded_at: Fri, 02 Sep 2016 22:11:47 GMT
+ recorded_at: Fri, 02 Sep 2016 22:36:05 GMT
recorded_with: VCR 3.0.3
diff --git a/spec/fixtures/cassettes/braintree/token.yml b/spec/fixtures/cassettes/braintree/token.yml
index a459ab0df7e..fac358cee2a 100644
--- a/spec/fixtures/cassettes/braintree/token.yml
+++ b/spec/fixtures/cassettes/braintree/token.yml
@@ -29,7 +29,7 @@ http_interactions:
message: Created
headers:
Date:
- - Fri, 02 Sep 2016 22:11:12 GMT
+ - Fri, 02 Sep 2016 22:36:39 GMT
Content-Type:
- application/xml; charset=utf-8
Transfer-Encoding:
@@ -50,44 +50,44 @@ http_interactions:
Content-Encoding:
- gzip
Etag:
- - W/"6ff04291f2858d2ed634b0547b758c62"
+ - W/"a661b1df8f38f1c21497066d7437316c"
Cache-Control:
- max-age=0, private, must-revalidate
X-Request-Id:
- - f2d9bac0-5dea-4f1e-bec4-f7cbe94a4cf2
+ - 2b984fd3-c8cb-42de-8e0c-1a4b1e850a2c
X-Runtime:
- - '0.134842'
+ - '0.086035'
Strict-Transport-Security:
- max-age=31536000; includeSubDomains
body:
encoding: ASCII-8BIT
string: !binary |-
- H4sIAAD5yVcAA6RV246bSBB9z1eM5j0bLkM2SDOJYnvAIAMxxg3db9DtCZdu
- sILN7etTjZO5SN4o0j4gJKiuOnXOqer7L4PgN93hR1s09cOt+o9ye3OoacOK
- +vvD7T6y3n+6/fL53T3lxaE+vT811aH+/O7m5r5L+fnw+TC6GkncKY3Ns1M2
- 42bp5iwJm0x3jwdhKfJ7KPiZaGika/eY1dsiKBzVsx/vAtvRg4gV3iovyAob
- ZGUJHNEhWD2quKQDjhD3p23vxY4RrL5PWAsLf6qmwLZKHLvCi/Z6YOPBW303
- fNtTnmx/JLGlkDh8wsnW9Mqvg18ofbBTeo9vR69sBi+Cp7jT/HKv+lFleKv9
- D2/1tfesQYX36AuVU+E3ODaUROPVt4iNxKaGJxodC0UnolXTlU9ZBGdK0rPY
- bdPYf0o1ZHyLVT0Vpx+HNSvpyhuxdmoygQvgpMw0Q6QxQ1T00L/bsHXY06np
- NprVpztjgnoVFubdRrgjjvmZrV1OYpYzG+k4qc5YM09BuVW80TwB32VqWxDj
- db7uVmSqxrRkRRYxkU6ogZgysznPasnD4rjR8bDR/C4T5Eh0NOIkPGba3YwL
- 8rSZjaQ+k1Mes2TXFyQ2tDRxIV7lF73cZ3xO0RdYG44Qo2whN0rcFnQv0nWo
- 0LX3cTOaObWrM9WsM7Hd7rA0Cios0D0EbVANtTnTLGMjAE/UKP7K67IYMGl5
- DjHTZrrGt9f9rpnMfDmtI6yJakihKhqzpfPREbnC1ospKD51OPEnkkCuP3A5
- 95EgJbWunYfvS0ODeqds/Dtt5nyxkWdrDp73JZf/OvWV3L/62MTWGceDwWxe
- 0r+s8R/cFE+gGbNzye/jXkMlS1weAhYsBk6gPuRSCcRQ2zLgaf/0b8YtwiPV
- Fy1OeIBjlUt993rIsxg8sd5e/HzxlytzZDVqsyXkgPlmwioP6HXfX6Un+MG2
- TtQe+Kz7zuzpEjSsEejkLogue5VeC9/Mh+SLJOCLZNGSnQEzpHTMNqeZa9Cf
- oP+j/SXuin9hJlCZaqbKlkYPHPQ47p/PEZsDz76yfVX/d/+gZ5vpzJHYgUeF
- 1ogDV9AXOVJhnsHnZ/ZodJFACtPMMR1f+L8ycx0RBHaLwWVdBv8Br9xt/vP8
- Q20irJZqe5iHV/3ufTgna/FK9pbF1gT9j7+9541yfmAX28MxE+w1/9M1b7ya
- zwWGPQJYlF182QuQ9wS+bZnUU/gqraFf4Ru7xO+2mlmRHejDURQuXfOyB/l5
- 1m6PwP9uS2QeQWBufMnVy277hf36fpPeIVBH7eb+NCIumi562GVb0LkI6rag
- epiztdxrkgPQde77gp/WfJVp4exthLzZ0zA3oK1RHvZ+R+y97A/tldnvb3BJ
- DtMYdmniyJiXf0ujIgk+49rNU1lDgP61D5qpgHFQNoJ3EifVUU9tcwTuqmcv
- 6F4R8LZggk943m9qDvjlXZRTMWPIQYc7h6vm0/bh4f7D5f59d//h7c38EwAA
- //8DAO44f5jQBwAA
+ H4sIAPf+yVcAA6RVXY+bOhB9769Y7XtvwYTeIu22apJCgoLTkMRgv4GdLR82
+ RCWBwK/vmGy3Wym3qnQfUCIYz5w558z44dNFybv28L3J6+rx3vzHuL87VLwW
+ efXt8X6/c99+uP/08c0Dl/mhOr091eWh+vjm7u6hTeT58PHQ+4jF/pBEznlZ
+ 1P1q5mciDuvU8o8H5Rr6fajkmSHS84V/TKtNvs79kio3x8W3CTwXuiNF4JGS
+ DrzHHp3gOR3YHMO7zYALfmEKF8zbW+vdvl97boGH/STQZwo+4LmUEGPAN/Tk
+ 4Z5FrsGi8InGGycoPl9wbnTrrdEFctMHRQ356mG9nVh4KOF/2eFd+T2Yf+4C
+ 92LCb4+VKbnCNY1sI0ay/LoTPfO4HajaosqwmGrMZI652MGZgnUi8pskwk8J
+ IvbXyLQSdfp+WIiCz4OeolOdKpoDJ0WKbJVEgnDV6f5rsQg7PtTtCrldsrUH
+ qAecOJOV8nsaybNY+JJFIhMesWhcnilyTutiYwS9cwK+i8RzISZoseWXbCj7
+ pBB5uhMqGUgNMUXqSZlWmofpcWXRywrhNlXsyCzS0zg8pmgy4oI8TeoRrc+w
+ LI5pvO1yFtkoiX2IN+WzXi/4lnmXU3Q5Qoyxgdwk9hvQPU8WocEXwftV72Tc
+ K88cuWfm+e1hZudcuaB7CNqQCmpLgVx7pQDPrjbwPGjTCDChLIOYYTXc4jto
+ f9aMR76WzVK5A0fE4Cbp09ny/VJlhlhMh3X+oaUxHlgMuf7A5dhHTIzEvXUe
+ 3s9sBPVOaf932oz5IjtLFxI8jzWX/y6rG7mf+1hF7plGF1t4suB/WeM/uMmf
+ QDPhZZrfL3tEChH7MgQsVF0kg/qQy2QQwz3Xhqf507cRtwqP3Jo2NJZrGplS
+ 67u3QplG4InF5urnq798nSOtSJPOIAfMt1BucSCv+/6sPSEPnnvi3kWOum+d
+ js9Aw4qATv6UWbpX7bXwt/nQfLEYfBFPG7a1YYaMVnjOMHIN+jPyf7S/xt3w
+ L8wEKRLkmGJmd8BBR6Pu5RzzJPCMjc2r+j/7Bz2b1BJLjR14NHhFJHAFfbEj
+ V84ZfH4WX+x2p4ghkNMn/S/+b8xcyxSD3WJLXVfAd8Crdxt+mX+ozZTbcLSH
+ eXjV7x7DOV1Llrq3NHIH6L//6b2g1/MDu9i7HFMlXvM/3PLGq/mcUtgjgMXY
+ Rte9AHlP4NtGaD0VNnkF/Spsb2PcbpBTsi3oI8kunPnOdQ/K86jdnoD//Ybp
+ PIrB3GDN1a/d9oz99n7T3mFQx2zH/hBTV02nHeyyDeicr6sm51aYiYXea5oD
+ 0HXs+4qfV3KeonD0NiHB6GmYG9DWLg573MJ9o/sje2P0+2+4NIdJBLs0XuqY
+ X99mdslieqaVnyW6hgL9KwyamYDxYqyUbDVObpGOe04P3JUvXrCCfC2bXCg5
+ 0HG/mRng13dRxtWIIQMdJktpOk+bx8eHd9f7983Du99v5h8AAAD//wMAwcP3
+ 59AHAAA=
http_version:
- recorded_at: Fri, 02 Sep 2016 22:11:51 GMT
+ recorded_at: Fri, 02 Sep 2016 22:36:39 GMT
recorded_with: VCR 3.0.3
diff --git a/spec/fixtures/cassettes/braintree/void.yml b/spec/fixtures/cassettes/braintree/void.yml
index df044e442fe..1f7c4dab514 100644
--- a/spec/fixtures/cassettes/braintree/void.yml
+++ b/spec/fixtures/cassettes/braintree/void.yml
@@ -8,7 +8,7 @@ http_interactions:
string: |
- 1
+ 40
fake-paypal-future-nonce
sale
@@ -31,7 +31,7 @@ http_interactions:
message: Created
headers:
Date:
- - Fri, 02 Sep 2016 22:11:12 GMT
+ - Fri, 02 Sep 2016 22:36:09 GMT
Content-Type:
- application/xml; charset=utf-8
Transfer-Encoding:
@@ -52,56 +52,56 @@ http_interactions:
Content-Encoding:
- gzip
Etag:
- - W/"cb248351f7018347db27551faac8a928"
+ - W/"11a1c3503b84cf6d9c6b7689b686e463"
Cache-Control:
- max-age=0, private, must-revalidate
X-Request-Id:
- - fe02fb5c-7c8e-4569-8957-26b983914c96
+ - 83c3cb13-7fd3-4646-aada-0f0343c5e792
X-Runtime:
- - '0.339175'
+ - '0.349462'
Strict-Transport-Security:
- max-age=31536000; includeSubDomains
body:
encoding: ASCII-8BIT
string: !binary |-
- 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
+ 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
http_version:
- recorded_at: Fri, 02 Sep 2016 22:11:50 GMT
+ recorded_at: Fri, 02 Sep 2016 22:36:09 GMT
- request:
method: put
- uri: https://api.sandbox.braintreegateway.com/merchants/7rdg92j7bm7fk5h3/transactions/dzzawfrn/void
+ uri: https://api.sandbox.braintreegateway.com/merchants/7rdg92j7bm7fk5h3/transactions/2y7qg1r8/void
body:
encoding: UTF-8
string: ''
@@ -124,7 +124,7 @@ http_interactions:
message: OK
headers:
Date:
- - Fri, 02 Sep 2016 22:11:12 GMT
+ - Fri, 02 Sep 2016 22:36:09 GMT
Content-Type:
- application/xml; charset=utf-8
Transfer-Encoding:
@@ -145,52 +145,52 @@ http_interactions:
Content-Encoding:
- gzip
Etag:
- - W/"21286df229a3b38126ae34970f669f91"
+ - W/"f133fdd9724b142eb9c87d4f59f67117"
Cache-Control:
- max-age=0, private, must-revalidate
X-Request-Id:
- - bef59749-bab9-4e4d-8385-24991a5b2946
+ - b356b1ff-7bc6-4612-af21-4c0d2e561883
X-Runtime:
- - '0.161856'
+ - '0.207812'
Strict-Transport-Security:
- max-age=31536000; includeSubDomains
body:
encoding: ASCII-8BIT
string: !binary |-
- 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
- AwDYYZg3PhYAAA==
+ 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
+ AwDQp4KAQRYAAA==
http_version:
- recorded_at: Fri, 02 Sep 2016 22:11:50 GMT
+ recorded_at: Fri, 02 Sep 2016 22:36:09 GMT
recorded_with: VCR 3.0.3
diff --git a/spec/models/solidus_paypal_braintree/gateway_spec.rb b/spec/models/solidus_paypal_braintree/gateway_spec.rb
index 19cec79cc32..3259e4cd421 100644
--- a/spec/models/solidus_paypal_braintree/gateway_spec.rb
+++ b/spec/models/solidus_paypal_braintree/gateway_spec.rb
@@ -3,27 +3,14 @@
require 'support/order_ready_for_payment'
RSpec.describe SolidusPaypalBraintree::Gateway do
- let(:source) do
- SolidusPaypalBraintree::Source.new(
- nonce: 'fake-paypal-future-nonce'
- )
- end
-
let(:gateway) do
described_class.new
end
- cassette_options = { cassette_name: "braintree/purchase" }
- describe '#purchase', vcr: cassette_options do
- subject(:purchase) { gateway.purchase(10.00, source, {}) }
-
- it 'returns a successful billing response', aggregate_failures: true do
- expect(purchase).to be_a ActiveMerchant::Billing::Response
- expect(purchase).to be_success
- expect(purchase).to be_test
- expect(purchase.message).to eq 'settling'
- expect(purchase.authorization).to be_present
- end
+ let(:source) do
+ SolidusPaypalBraintree::Source.new(
+ nonce: 'fake-paypal-future-nonce'
+ )
end
cassette_options = { cassette_name: "braintree/payment" }
@@ -53,37 +40,76 @@
end
end
- cassette_options = { cassette_name: "braintree/authorize" }
- describe "#authorize", vcr: cassette_options do
- subject(:authorize) do
- gateway.authorize(10.00, source, {})
+ describe "instance methods" do
+ let(:authorized_id) do
+ Braintree::Transaction.sale(
+ amount: 40,
+ payment_method_nonce: source.nonce
+ ).transaction.id
end
- it "returns a successful billing response", aggregate_failures: true do
- expect(authorize).to be_a ActiveMerchant::Billing::Response
- expect(authorize).to be_success
- expect(authorize).to be_test
- expect(authorize.message).to eq "authorized"
+ let(:sale_id) do
+ Braintree::Transaction.sale(
+ amount: 40,
+ payment_method_nonce: source.nonce,
+ options: {
+ submit_for_settlement: true
+ }
+ ).transaction.id
end
- end
- cassette_options = { cassette_name: "braintree/void" }
- describe "#void", vcr: cassette_options do
- subject(:void) { gateway.void(response_code, source, {}) }
+ let(:settled_id) do
+ Braintree::TestTransaction.settle(sale_id).transaction.id
+ end
- let(:response_code) do
- result = Braintree::Transaction.sale(
- amount: 1,
- payment_method_nonce: source.nonce
- )
- result.transaction.id
+ cassette_options = { cassette_name: "braintree/purchase" }
+ describe '#purchase', vcr: cassette_options do
+ subject(:purchase) { gateway.purchase(10.00, source, {}) }
+
+ it 'returns a successful billing response', aggregate_failures: true do
+ expect(purchase).to be_a ActiveMerchant::Billing::Response
+ expect(purchase).to be_success
+ expect(purchase).to be_test
+ expect(purchase.message).to eq 'settling'
+ expect(purchase.authorization).to be_present
+ end
+ end
+
+ cassette_options = { cassette_name: "braintree/authorize" }
+ describe "#authorize", vcr: cassette_options do
+ subject(:authorize) { gateway.authorize(10.00, source, {}) }
+
+ it 'returns a successful billing response', aggregate_failures: true do
+ expect(authorize).to be_a ActiveMerchant::Billing::Response
+ expect(authorize).to be_success
+ expect(authorize).to be_test
+ expect(authorize.message).to eq 'authorized'
+ expect(authorize.authorization).to be_present
+ end
end
- it 'returns a successful billing response', aggregate_failures: true do
- expect(void).to be_a ActiveMerchant::Billing::Response
- expect(void).to be_success
- expect(void).to be_test
- expect(void.message).to eq 'voided'
+ cassette_options = { cassette_name: "braintree/credit" }
+ describe "#credit", vcr: cassette_options do
+ subject(:credit) { gateway.credit(20, source, settled_id, {}) }
+
+ it 'returns a successful billing response', aggregate_failures: true do
+ expect(credit).to be_a ActiveMerchant::Billing::Response
+ expect(credit).to be_success
+ expect(credit).to be_test
+ expect(credit.message).to eq 'settling'
+ end
+ end
+
+ cassette_options = { cassette_name: "braintree/void" }
+ describe "#void", vcr: cassette_options do
+ subject(:void) { gateway.void(authorized_id, source, {}) }
+
+ it 'returns a successful billing response', aggregate_failures: true do
+ expect(void).to be_a ActiveMerchant::Billing::Response
+ expect(void).to be_success
+ expect(void).to be_test
+ expect(void.message).to eq 'voided'
+ end
end
end