require 'helper' class TestTransparentRequest < Test::Unit::TestCase def test_http_method_as_post assert_equal :post, MyMoip::TransparentRequest::HTTP_METHOD end def test_path assert_equal "/ws/alpha/EnviarInstrucao/Unica", MyMoip::TransparentRequest::PATH end def test_auth_requirement assert_equal true, MyMoip::TransparentRequest::REQUIRES_AUTH end def test_success_method_with_valid_json HTTParty.stubs(:send).returns( {"EnviarInstrucaoUnicaResponse"=>{"xmlns:ns1"=>"http://www.moip.com.br/ws/alpha/", "Resposta"=>{"ID"=>"201208081614306080000000928569", "Status"=>"Sucesso", "Token"=>"G290E1H230N8L0M8J1K6F1F4B3T0N610K8B0S0H0I0T0T0E029Y2R8H5Y6H9"}}} ) request = MyMoip::TransparentRequest.new("some_id") request_data = stub(to_xml: "") request.api_call request_data assert request.success? end def test_success_method_with_failed_response HTTParty.stubs(:send).returns( {"EnviarInstrucaoUnicaResponse"=>{"xmlns:ns1"=>"http://www.moip.com.br/ws/alpha/", "Resposta"=>{"Status"=>"Falha"}}} ) request = MyMoip::TransparentRequest.new("some_id") request_data = stub(to_xml: "") request.api_call request_data assert !request.success? end def test_success_method_with_requests_that_hasnt_be_made request = MyMoip::TransparentRequest.new("some_id") assert !request.success? end def test_provides_token_when_has_a_valid_response HTTParty.stubs(:send).returns( {"EnviarInstrucaoUnicaResponse"=>{"xmlns:ns1"=>"http://www.moip.com.br/ws/alpha/", "Resposta"=>{"ID"=>"201208081614306080000000928569", "Status"=>"Sucesso", "Token"=>"token"}}} ) request = MyMoip::TransparentRequest.new("some_id") request_data = stub(to_xml: "") request.api_call request_data assert_equal "token", request.token end def test_provides_token_with_requests_that_hasnt_be_made request = MyMoip::TransparentRequest.new("some_id") assert_equal nil, request.token end def test_should_provide_the_transaction_id_get_by_the_request request = MyMoip::TransparentRequest.new("some_id") VCR.use_cassette('transparent_request') do request.api_call(Fixture.instruction(payer: Fixture.payer)) end assert_equal "201210171118501100000001102691", request.id end def test_should_provide_the_transaction_id_get_by_the_request_with_commissions_feature request = MyMoip::TransparentRequest.new("some_id") VCR.use_cassette('transparent_request_with_commissions') do request.api_call Fixture.instruction(commissions: [Fixture.commission]) end assert_equal "YOUR_REQUEST_ID", request.id end end