mymoip 0.6.0 → 0.6.1
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.
- data/Gemfile +3 -14
- data/README.md +106 -56
- data/Rakefile +9 -44
- data/lib/mymoip/request.rb +4 -0
- data/lib/mymoip.rb +8 -0
- data/mymoip.gemspec +3 -15
- data/test/live_test.rb +1 -1
- metadata +3 -15
- data/VERSION +0 -1
- data/test/helper.rb +0 -29
- data/test/test_commission.rb +0 -121
- data/test/test_credit_card_payment.rb +0 -114
- data/test/test_creditcard.rb +0 -150
- data/test/test_formatter.rb +0 -49
- data/test/test_instruction.rb +0 -217
- data/test/test_mymoip.rb +0 -81
- data/test/test_payer.rb +0 -219
- data/test/test_payment_request.rb +0 -96
- data/test/test_request.rb +0 -50
- data/test/test_transparent_request.rb +0 -71
data/test/test_payer.rb
DELETED
@@ -1,219 +0,0 @@
|
|
1
|
-
require 'helper'
|
2
|
-
|
3
|
-
class TestPayer < Test::Unit::TestCase
|
4
|
-
def test_getters_for_attributes
|
5
|
-
payer = MyMoip::Payer.new(
|
6
|
-
id: "some id",
|
7
|
-
name: "some name",
|
8
|
-
email: "some email",
|
9
|
-
address_street: "some address_street",
|
10
|
-
address_street_number: "some address_street_number",
|
11
|
-
address_street_extra: "some address_street_extra",
|
12
|
-
address_neighbourhood: "some address_neighbourhood",
|
13
|
-
address_city: "some address_city",
|
14
|
-
address_state: "RS",
|
15
|
-
address_country: "BRA",
|
16
|
-
address_cep: "92123456",
|
17
|
-
address_phone: "5130405060"
|
18
|
-
)
|
19
|
-
|
20
|
-
assert_equal "some id", payer.id
|
21
|
-
assert_equal "some name", payer.name
|
22
|
-
assert_equal "some email", payer.email
|
23
|
-
assert_equal "some address_street", payer.address_street
|
24
|
-
assert_equal "some address_street_number", payer.address_street_number
|
25
|
-
assert_equal "some address_street_extra", payer.address_street_extra
|
26
|
-
assert_equal "some address_neighbourhood", payer.address_neighbourhood
|
27
|
-
assert_equal "some address_city", payer.address_city
|
28
|
-
assert_equal "RS", payer.address_state
|
29
|
-
assert_equal "BRA", payer.address_country
|
30
|
-
assert_equal "92123456", payer.address_cep
|
31
|
-
assert_equal "5130405060", payer.address_phone
|
32
|
-
end
|
33
|
-
|
34
|
-
def test_validate_presence_of_id_attribute
|
35
|
-
subject = Fixture.payer
|
36
|
-
subject.id = nil
|
37
|
-
assert subject.invalid?, 'should be invalid without an id'
|
38
|
-
subject.id = ''
|
39
|
-
assert subject.invalid?, 'should be invalid without an id'
|
40
|
-
end
|
41
|
-
|
42
|
-
def test_validate_presence_of_name_attribute
|
43
|
-
subject = Fixture.payer
|
44
|
-
subject.name = nil
|
45
|
-
assert subject.invalid?, 'should be invalid without an name'
|
46
|
-
subject.name = ''
|
47
|
-
assert subject.invalid?, 'should be invalid without an name'
|
48
|
-
end
|
49
|
-
|
50
|
-
def test_validate_presence_of_email_attribute
|
51
|
-
subject = Fixture.payer
|
52
|
-
subject.email = nil
|
53
|
-
assert subject.invalid?, 'should be invalid without an email'
|
54
|
-
subject.email = ''
|
55
|
-
assert subject.invalid?, 'should be invalid without an email'
|
56
|
-
end
|
57
|
-
|
58
|
-
def test_validate_presence_of_address_street_attribute
|
59
|
-
subject = Fixture.payer
|
60
|
-
subject.address_street = nil
|
61
|
-
assert subject.invalid?, 'should be invalid without an address_street'
|
62
|
-
subject.address_street = ''
|
63
|
-
assert subject.invalid?, 'should be invalid without an address_street'
|
64
|
-
end
|
65
|
-
|
66
|
-
def test_validate_presence_of_address_street_number_attribute
|
67
|
-
subject = Fixture.payer
|
68
|
-
subject.address_street_number = nil
|
69
|
-
assert subject.invalid?, 'should be invalid without an address_street_number'
|
70
|
-
subject.address_street_number = ''
|
71
|
-
assert subject.invalid?, 'should be invalid without an address_street_number'
|
72
|
-
end
|
73
|
-
|
74
|
-
def test_validate_presence_of_address_neighbourhood_attribute
|
75
|
-
subject = Fixture.payer
|
76
|
-
subject.address_neighbourhood = nil
|
77
|
-
assert subject.invalid?, 'should be invalid without an address_neighbourhood'
|
78
|
-
subject.address_neighbourhood = ''
|
79
|
-
assert subject.invalid?, 'should be invalid without an address_neighbourhood'
|
80
|
-
end
|
81
|
-
|
82
|
-
def test_validate_presence_of_address_city_attribute
|
83
|
-
subject = Fixture.payer
|
84
|
-
subject.address_city = nil
|
85
|
-
assert subject.invalid?, 'should be invalid without an address_city'
|
86
|
-
subject.address_city = ''
|
87
|
-
assert subject.invalid?, 'should be invalid without an address_city'
|
88
|
-
end
|
89
|
-
|
90
|
-
def test_validate_presence_of_address_state_attribute
|
91
|
-
subject = Fixture.payer
|
92
|
-
subject.address_state = nil
|
93
|
-
assert subject.invalid?, 'should be invalid without an address_state'
|
94
|
-
subject.address_state = ''
|
95
|
-
assert subject.invalid?, 'should be invalid without an address_state'
|
96
|
-
end
|
97
|
-
|
98
|
-
def test_validate_length_of_address_state_attribute_in_2_chars
|
99
|
-
subject = Fixture.payer
|
100
|
-
subject.address_state = 'RS'
|
101
|
-
assert subject.valid?, 'should accept 2 chars'
|
102
|
-
subject.address_state = 'RSS'
|
103
|
-
assert subject.invalid? && subject.errors[:address_state].present?,
|
104
|
-
'should not accept strings with other than 2 chars'
|
105
|
-
end
|
106
|
-
|
107
|
-
def test_upcase_assigned_address_state
|
108
|
-
subject = Fixture.payer
|
109
|
-
subject.address_state = 'rs'
|
110
|
-
assert_equal 'RS', subject.address_state
|
111
|
-
end
|
112
|
-
|
113
|
-
def test_validate_presence_of_address_country_attribute
|
114
|
-
subject = Fixture.payer
|
115
|
-
subject.address_country = nil
|
116
|
-
assert subject.invalid?, 'should be invalid without an address_country'
|
117
|
-
subject.address_country = ''
|
118
|
-
assert subject.invalid?, 'should be invalid without an address_country'
|
119
|
-
end
|
120
|
-
|
121
|
-
def test_validate_length_of_address_country_attribute_in_3_chars
|
122
|
-
subject = Fixture.payer
|
123
|
-
subject.address_country = 'BRA'
|
124
|
-
assert subject.valid?, 'should accept 3 chars'
|
125
|
-
subject.address_country = 'BR'
|
126
|
-
assert subject.invalid? && subject.errors[:address_country].present?,
|
127
|
-
'should not accept strings with other than 3 chars'
|
128
|
-
end
|
129
|
-
|
130
|
-
def test_upcase_assigned_address_country
|
131
|
-
subject = Fixture.payer
|
132
|
-
subject.address_country = 'bra'
|
133
|
-
assert_equal 'BRA', subject.address_country
|
134
|
-
end
|
135
|
-
|
136
|
-
def test_validate_presence_of_address_cep_attribute
|
137
|
-
subject = Fixture.payer
|
138
|
-
subject.address_cep = nil
|
139
|
-
assert subject.invalid?, 'should be invalid without an address_cep'
|
140
|
-
subject.address_cep = ''
|
141
|
-
assert subject.invalid?, 'should be invalid without an address_cep'
|
142
|
-
end
|
143
|
-
|
144
|
-
def test_validate_length_of_address_cep_attribute_in_2_chars
|
145
|
-
subject = Fixture.payer
|
146
|
-
subject.address_cep = '92123456'
|
147
|
-
assert subject.valid?, 'should accept 8 chars'
|
148
|
-
subject.address_cep = '921234560000'
|
149
|
-
assert subject.invalid? && subject.errors[:address_cep].present?,
|
150
|
-
'should not accept strings with other than 8 chars'
|
151
|
-
end
|
152
|
-
|
153
|
-
def test_dont_count_dashes_in_the_address_cep_length_validation
|
154
|
-
subject = Fixture.payer
|
155
|
-
subject.address_cep = '92123-456'
|
156
|
-
assert subject.valid?
|
157
|
-
end
|
158
|
-
|
159
|
-
def test_remove_dashes_from_address_cep
|
160
|
-
subject = Fixture.payer
|
161
|
-
subject.address_cep = '92123-456'
|
162
|
-
assert_equal '92123456', subject.address_cep
|
163
|
-
end
|
164
|
-
|
165
|
-
def test_validate_presence_of_address_phone_attribute
|
166
|
-
subject = Fixture.payer
|
167
|
-
subject.address_phone = nil
|
168
|
-
assert subject.invalid?, 'should be invalid without an address_phone'
|
169
|
-
subject.address_phone = ''
|
170
|
-
assert subject.invalid?, 'should be invalid without an address_phone'
|
171
|
-
end
|
172
|
-
|
173
|
-
def test_validate_length_of_address_phone_attribute_in_10_or_11_chars
|
174
|
-
subject = Fixture.payer
|
175
|
-
subject.address_phone = '5130405060'
|
176
|
-
assert subject.valid?, 'should accept 10 chars'
|
177
|
-
subject.address_phone = '51930405060'
|
178
|
-
assert subject.valid?, 'should accept 11 chars'
|
179
|
-
subject.address_phone = '215130405060'
|
180
|
-
assert subject.invalid? && subject.errors[:address_phone].present?,
|
181
|
-
'should not accept strings with other than 10 or 11 chars'
|
182
|
-
end
|
183
|
-
|
184
|
-
def test_remove_left_zeros_from_address_phone
|
185
|
-
subject = Fixture.payer
|
186
|
-
subject.address_phone = '05130405060'
|
187
|
-
assert_equal '5130405060', subject.address_phone
|
188
|
-
end
|
189
|
-
|
190
|
-
def test_remove_dashes_from_address_phone
|
191
|
-
subject = Fixture.payer
|
192
|
-
subject.address_phone = '513040-5060'
|
193
|
-
assert_equal '5130405060', subject.address_phone
|
194
|
-
subject.address_phone = '5193040-5060'
|
195
|
-
assert_equal '51930405060', subject.address_phone
|
196
|
-
end
|
197
|
-
|
198
|
-
def test_remove_parenthesis_from_address_phone
|
199
|
-
subject = Fixture.payer
|
200
|
-
subject.address_phone = '(51)30405060'
|
201
|
-
assert_equal '5130405060', subject.address_phone
|
202
|
-
subject.address_phone = '(51)930405060'
|
203
|
-
assert_equal '51930405060', subject.address_phone
|
204
|
-
end
|
205
|
-
|
206
|
-
def test_to_xml_method_uses_the_formatted_version_of_the_address_cep
|
207
|
-
subject = Fixture.payer(address_cep: '92000123')
|
208
|
-
formatter = stub_everything('formatter')
|
209
|
-
formatter.expects(:cep).with('92000123')
|
210
|
-
subject.to_xml(nil, formatter)
|
211
|
-
end
|
212
|
-
|
213
|
-
def test_to_xml_method_uses_the_formatted_version_of_the_address_phone
|
214
|
-
subject = Fixture.payer(address_phone: '5130405060')
|
215
|
-
formatter = stub_everything('formatter')
|
216
|
-
formatter.expects(:phone).with('5130405060')
|
217
|
-
subject.to_xml(nil, formatter)
|
218
|
-
end
|
219
|
-
end
|
@@ -1,96 +0,0 @@
|
|
1
|
-
# encoding: UTF-8
|
2
|
-
require 'helper'
|
3
|
-
|
4
|
-
class TestPaymentRequest < Test::Unit::TestCase
|
5
|
-
def test_http_method_as_get
|
6
|
-
assert_equal :get, MyMoip::PaymentRequest::HTTP_METHOD
|
7
|
-
end
|
8
|
-
|
9
|
-
def test_path
|
10
|
-
assert_equal "/rest/pagamento?callback=?", MyMoip::PaymentRequest::PATH
|
11
|
-
end
|
12
|
-
|
13
|
-
def test_non_auth_requirement
|
14
|
-
assert_equal false, MyMoip::PaymentRequest::REQUIRES_AUTH
|
15
|
-
end
|
16
|
-
|
17
|
-
def test_generate_json
|
18
|
-
HTTParty.stubs(:send).returns("<html>some_result</html>")
|
19
|
-
request = MyMoip::PaymentRequest.new("id")
|
20
|
-
|
21
|
-
JSON.expects(:generate).with(
|
22
|
-
pagamentoWidget: {
|
23
|
-
referer: "http://localhost",
|
24
|
-
token: "big_transparent_token",
|
25
|
-
dadosPagamento: {payment: "attributes"}
|
26
|
-
}
|
27
|
-
)
|
28
|
-
request_data = stub(to_json: {payment: "attributes"})
|
29
|
-
request.api_call(request_data, token: "big_transparent_token", referer_url: "http://localhost")
|
30
|
-
end
|
31
|
-
|
32
|
-
def test_gets_default_referer_if_another_isnt_passed
|
33
|
-
MyMoip.default_referer_url = "http://localhost/default"
|
34
|
-
HTTParty.stubs(:send).returns("<html>some_result</html>")
|
35
|
-
request = MyMoip::PaymentRequest.new("id")
|
36
|
-
|
37
|
-
JSON.expects(:generate).with(
|
38
|
-
pagamentoWidget: {
|
39
|
-
referer: MyMoip.default_referer_url,
|
40
|
-
token: "big_transparent_token",
|
41
|
-
dadosPagamento: {payment: "attributes"}
|
42
|
-
}
|
43
|
-
)
|
44
|
-
request_data = stub(to_json: {payment: "attributes"})
|
45
|
-
request.api_call(request_data, token: "big_transparent_token")
|
46
|
-
end
|
47
|
-
|
48
|
-
def test_successful_status
|
49
|
-
MyMoip.default_referer_url = "http://localhost/default"
|
50
|
-
HTTParty.stubs(:send).returns(
|
51
|
-
JSON.parse '{"Status":"EmAnalise","Codigo":0,"CodigoRetorno":"","TaxaMoIP":"7.79","StatusPagamento":"Sucesso","Classificacao":{"Codigo":999,"Descricao":"Não suportado no ambiente Sandbox"},"CodigoMoIP":77316,"Mensagem":"Requisição processada com sucesso","TotalPago":"100.00"}'
|
52
|
-
)
|
53
|
-
request = MyMoip::PaymentRequest.new("id")
|
54
|
-
|
55
|
-
request_data = stub(to_json: {payment: "attributes"})
|
56
|
-
request.api_call(request_data, token: "big_transparent_token")
|
57
|
-
assert request.success?
|
58
|
-
end
|
59
|
-
|
60
|
-
def test_success_method_returns_false_in_payments_already_made
|
61
|
-
MyMoip.default_referer_url = "http://localhost/default"
|
62
|
-
HTTParty.stubs(:send).returns(
|
63
|
-
JSON.parse '{"Codigo":236,"StatusPagamento":"Falha","Mensagem":"Pagamento já foi realizado"}'
|
64
|
-
)
|
65
|
-
request = MyMoip::PaymentRequest.new("id")
|
66
|
-
|
67
|
-
request_data = stub(to_json: {payment: "attributes"})
|
68
|
-
request.api_call(request_data, token: "big_transparent_token")
|
69
|
-
assert !request.success?
|
70
|
-
end
|
71
|
-
|
72
|
-
def test_method_to_get_moip_code
|
73
|
-
instruction = Fixture.instruction(payer: Fixture.payer)
|
74
|
-
transparent_request = MyMoip::TransparentRequest.new("your_own_id")
|
75
|
-
VCR.use_cassette('transparent_request') do
|
76
|
-
transparent_request.api_call(instruction)
|
77
|
-
end
|
78
|
-
credit_card_payment = MyMoip::CreditCardPayment.new(Fixture.credit_card, 1)
|
79
|
-
payment_request = MyMoip::PaymentRequest.new("your_own_id")
|
80
|
-
VCR.use_cassette('payment_request') do
|
81
|
-
payment_request.api_call(credit_card_payment, token: transparent_request.token)
|
82
|
-
end
|
83
|
-
assert_equal 102596, payment_request.code
|
84
|
-
end
|
85
|
-
|
86
|
-
def test_code_method_should_return_nil_with_blank_response
|
87
|
-
instruction = Fixture.instruction(payer: Fixture.payer)
|
88
|
-
transparent_request = MyMoip::TransparentRequest.new("your_own_id")
|
89
|
-
VCR.use_cassette('transparent_request') do
|
90
|
-
transparent_request.api_call(instruction)
|
91
|
-
end
|
92
|
-
credit_card_payment = MyMoip::CreditCardPayment.new(Fixture.credit_card, 1)
|
93
|
-
payment_request = MyMoip::PaymentRequest.new("your_own_id")
|
94
|
-
assert_nil payment_request.code
|
95
|
-
end
|
96
|
-
end
|
data/test/test_request.rb
DELETED
@@ -1,50 +0,0 @@
|
|
1
|
-
require 'helper'
|
2
|
-
|
3
|
-
class TestRequest < Test::Unit::TestCase
|
4
|
-
def test_initializes_receiving_data_and_optional_id
|
5
|
-
request = MyMoip::Request.new("request_id")
|
6
|
-
assert_equal "request_id", request.id
|
7
|
-
end
|
8
|
-
|
9
|
-
def test_logs_api_call_method_in_info_level
|
10
|
-
logger = stub_everything
|
11
|
-
request = MyMoip::Request.new("request_id")
|
12
|
-
params = {
|
13
|
-
http_method: :post, body: "<pretty><xml></xml></pretty>", path: "/ws/alpha/EnviarInstrucao/Unica"
|
14
|
-
}
|
15
|
-
|
16
|
-
HTTParty.stubs(:send).returns("<html>some_result</html>")
|
17
|
-
logger.expects(:info).at_least_once.
|
18
|
-
with(regexp_matches(/being sent to MoIP/))
|
19
|
-
|
20
|
-
request.api_call(params, logger: logger)
|
21
|
-
end
|
22
|
-
|
23
|
-
def test_logs_api_call_method_parameters_in_debug_level
|
24
|
-
logger = stub_everything
|
25
|
-
request = MyMoip::Request.new("request_id")
|
26
|
-
params = {
|
27
|
-
http_method: :post, body: "<pretty><xml></xml></pretty>", path: "/ws/alpha/EnviarInstrucao/Unica"
|
28
|
-
}
|
29
|
-
|
30
|
-
HTTParty.stubs(:send).returns("<html>some_result</html>")
|
31
|
-
logger.expects(:debug).at_least_once.
|
32
|
-
with(regexp_matches(/request_id.+<pretty><xml><\/xml><\/pretty>/))
|
33
|
-
|
34
|
-
request.api_call(params, logger: logger)
|
35
|
-
end
|
36
|
-
|
37
|
-
def test_logs_api_call_response_in_debug_level
|
38
|
-
logger = stub_everything
|
39
|
-
request = MyMoip::Request.new("request_id")
|
40
|
-
params = {
|
41
|
-
http_method: :post, body: "<pretty><xml></xml></pretty>", path: "/ws/alpha/EnviarInstrucao/Unica"
|
42
|
-
}
|
43
|
-
|
44
|
-
HTTParty.stubs(:send).returns("<html>some_result</html>")
|
45
|
-
logger.expects(:debug).at_least_once.
|
46
|
-
with(regexp_matches(/request_id.+<html>some_result<\/html>/))
|
47
|
-
|
48
|
-
request.api_call(params, logger: logger)
|
49
|
-
end
|
50
|
-
end
|
@@ -1,71 +0,0 @@
|
|
1
|
-
require 'helper'
|
2
|
-
|
3
|
-
class TestTransparentRequest < Test::Unit::TestCase
|
4
|
-
def test_http_method_as_post
|
5
|
-
assert_equal :post, MyMoip::TransparentRequest::HTTP_METHOD
|
6
|
-
end
|
7
|
-
|
8
|
-
def test_path
|
9
|
-
assert_equal "/ws/alpha/EnviarInstrucao/Unica", MyMoip::TransparentRequest::PATH
|
10
|
-
end
|
11
|
-
|
12
|
-
def test_auth_requirement
|
13
|
-
assert_equal true, MyMoip::TransparentRequest::REQUIRES_AUTH
|
14
|
-
end
|
15
|
-
|
16
|
-
def test_success_method_with_valid_json
|
17
|
-
HTTParty.stubs(:send).returns(
|
18
|
-
{"EnviarInstrucaoUnicaResponse"=>{"xmlns:ns1"=>"http://www.moip.com.br/ws/alpha/", "Resposta"=>{"ID"=>"201208081614306080000000928569", "Status"=>"Sucesso", "Token"=>"G290E1H230N8L0M8J1K6F1F4B3T0N610K8B0S0H0I0T0T0E029Y2R8H5Y6H9"}}}
|
19
|
-
)
|
20
|
-
request = MyMoip::TransparentRequest.new("some_id")
|
21
|
-
request_data = stub(to_xml: "<anydata></anydata>")
|
22
|
-
request.api_call request_data
|
23
|
-
assert request.success?
|
24
|
-
end
|
25
|
-
|
26
|
-
def test_success_method_with_failed_response
|
27
|
-
HTTParty.stubs(:send).returns(
|
28
|
-
{"EnviarInstrucaoUnicaResponse"=>{"xmlns:ns1"=>"http://www.moip.com.br/ws/alpha/", "Resposta"=>{"Status"=>"Falha"}}}
|
29
|
-
)
|
30
|
-
request = MyMoip::TransparentRequest.new("some_id")
|
31
|
-
request_data = stub(to_xml: "<anydata></anydata>")
|
32
|
-
request.api_call request_data
|
33
|
-
assert !request.success?
|
34
|
-
end
|
35
|
-
|
36
|
-
def test_success_method_with_requests_that_hasnt_be_made
|
37
|
-
request = MyMoip::TransparentRequest.new("some_id")
|
38
|
-
assert !request.success?
|
39
|
-
end
|
40
|
-
|
41
|
-
def test_provides_token_when_has_a_valid_response
|
42
|
-
HTTParty.stubs(:send).returns(
|
43
|
-
{"EnviarInstrucaoUnicaResponse"=>{"xmlns:ns1"=>"http://www.moip.com.br/ws/alpha/", "Resposta"=>{"ID"=>"201208081614306080000000928569", "Status"=>"Sucesso", "Token"=>"token"}}}
|
44
|
-
)
|
45
|
-
request = MyMoip::TransparentRequest.new("some_id")
|
46
|
-
request_data = stub(to_xml: "<anydata></anydata>")
|
47
|
-
request.api_call request_data
|
48
|
-
assert_equal "token", request.token
|
49
|
-
end
|
50
|
-
|
51
|
-
def test_provides_token_with_requests_that_hasnt_be_made
|
52
|
-
request = MyMoip::TransparentRequest.new("some_id")
|
53
|
-
assert_equal nil, request.token
|
54
|
-
end
|
55
|
-
|
56
|
-
def test_should_provide_the_transaction_id_get_by_the_request
|
57
|
-
request = MyMoip::TransparentRequest.new("some_id")
|
58
|
-
VCR.use_cassette('transparent_request') do
|
59
|
-
request.api_call(Fixture.instruction(payer: Fixture.payer))
|
60
|
-
end
|
61
|
-
assert_equal "201210171118501100000001102691", request.id
|
62
|
-
end
|
63
|
-
|
64
|
-
def test_should_provide_the_transaction_id_get_by_the_request_with_commissions_feature
|
65
|
-
request = MyMoip::TransparentRequest.new("some_id")
|
66
|
-
VCR.use_cassette('transparent_request_with_commissions') do
|
67
|
-
request.api_call Fixture.instruction(commissions: [Fixture.commission])
|
68
|
-
end
|
69
|
-
assert_equal "YOUR_REQUEST_ID", request.id
|
70
|
-
end
|
71
|
-
end
|