Skip to content

Commit bee7a4d

Browse files
committed
Authorize test cases completed
1 parent bacbafd commit bee7a4d

File tree

1 file changed

+102
-0
lines changed

1 file changed

+102
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
defmodule Gringotts.Integration.Gateways.MercadopagoTest do
2+
# Integration tests for the Mercadopago
3+
4+
use ExUnit.Case, async: true
5+
use ExVCR.Mock, adapter: ExVCR.Adapter.Hackney
6+
alias Gringotts.Gateways.Mercadopago, as: Gateway
7+
8+
@moduletag integration: true
9+
10+
@amount Money.new(45, :BRL)
11+
@sub_amount Money.new(30, :BRL)
12+
@config [
13+
access_token: "TEST-2774702803649645-031303-1b9d3d63acb57cdad3458d386eee62bd-307592510",
14+
public_key: "TEST-911f45a1-0560-4c16-915e-a8833830b29a"
15+
]
16+
@good_card %Gringotts.CreditCard{
17+
first_name: "Hermoine",
18+
last_name: "Grangerr",
19+
number: "4509953566233704",
20+
year: 2030,
21+
month: 07,
22+
verification_code: "123",
23+
brand: "VISA"
24+
}
25+
26+
@bad_card %Gringotts.CreditCard{
27+
first_name: "Hermoine",
28+
last_name: "Grangerr",
29+
number: "4509953566233704",
30+
year: 2000,
31+
month: 07,
32+
verification_code: "123",
33+
brand: "VISA"
34+
}
35+
36+
@good_opts [
37+
38+
order_id: 123_126,
39+
customer_id: "311211654-YrXF6J0QikpIWX",
40+
config: @config,
41+
installments: 1,
42+
order_type: "mercadopago"
43+
]
44+
@new_cutomer_good_opts [
45+
order_id: 123_126,
46+
config: @config,
47+
installments: 1,
48+
order_type: "mercadopago"
49+
]
50+
51+
def new_email_opts(good) do
52+
no1 = :rand.uniform(1_000_00) |> to_string
53+
no2 = :rand.uniform(1_000_00) |> to_string
54+
no3 = :rand.uniform(1_000_00) |> to_string
55+
email = "hp" <> no1 <> no2 <> no3 <> "@potter.com"
56+
57+
case good do
58+
true -> @new_cutomer_good_opts ++ [email: email]
59+
_ -> @new_cutomer_bad_opts ++ [email: email]
60+
end
61+
end
62+
63+
describe "[authorize] old customer" do
64+
test "old customer with good_opts and good_card" do
65+
use_cassette "mercadopago/authorize_old customer with good_opts and good_card" do
66+
assert {:ok, response} = Gateway.authorize(@amount, @good_card, @good_opts)
67+
assert response.success == true
68+
assert response.status_code == 201
69+
end
70+
end
71+
72+
test "old customer with good_opts and bad_card" do
73+
use_cassette "mercadopago/authorize_old customer with good_opts and bad_card" do
74+
assert {:error, response} = Gateway.authorize(@amount, @bad_card, @good_opts)
75+
assert response.success == false
76+
assert response.status_code == 400
77+
end
78+
end
79+
end
80+
81+
setup do
82+
[opts: new_email_opts(true)]
83+
end
84+
85+
describe "[authorize] new customer" do
86+
test "new cutomer with good_opts and good_card", %{opts: opts} do
87+
use_cassette "mercadopago/authorize_new cutomer with good_opts and good_card" do
88+
assert {:ok, response} = Gateway.authorize(@amount, @good_card, opts)
89+
assert response.success == true
90+
assert response.status_code == 201
91+
end
92+
end
93+
94+
test "new customer with good_opts and bad_card", %{opts: opts} do
95+
use_cassette "mercadopago/authorize_new customer with good_opts and bad_card" do
96+
assert {:error, response} = Gateway.authorize(@amount, @bad_card, opts)
97+
assert response.success == false
98+
assert response.status_code == 400
99+
end
100+
end
101+
end
102+
end

0 commit comments

Comments
 (0)