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/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