mymoip 0.6.0 → 0.6.1

Sign up to get free protection for your applications and to get access to all the features.
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