package br.com.caelum.stella.gateway.integration; import java.math.BigDecimal; import javax.servlet.http.HttpServletRequest; import junit.framework.Assert; import org.jmock.Expectations; import org.jmock.Mockery; import org.junit.Test; import br.com.caelum.stella.gateway.visa.VISAAutorizacaoReturn; import br.com.caelum.stella.gateway.visa.VISACancelamentoReturn; import br.com.caelum.stella.gateway.visa.VISACapturaReturn; import br.com.caelum.stella.gateway.visa.VISAConsultaReturn; import br.com.caelum.stella.gateway.visa.VISAHttpReturnBuilder; import br.com.caelum.stella.gateway.visa.VISAVerificacaoRetornoIntegracaoViaHttp; public class VISATestRetornoIntegracaoComponente { @Test public void testRetornoAutorizacao(){ Mockery mockery = new Mockery(); final HttpServletRequest request = mockery.mock(HttpServletRequest.class); mockery.checking(new Expectations(){ { atLeast(2).of(request).getParameter("lr");will(returnValue("00")); one(request).getParameter("orderid");will(returnValue("123456")); one(request).getParameter("free");will(returnValue("free")); one(request).getParameter("Price");will(returnValue("100")); one(request).getParameter("ars");will(returnValue("autorizada")); one(request).getParameter("tid");will(returnValue("12345678")); one(request).getParameter("arp");will(returnValue("1332")); one(request).getParameter("Pan");will(returnValue("4739856348950")); } }); VISAVerificacaoRetornoIntegracaoViaHttp retornoIntegracaoViaHttp = new VISAVerificacaoRetornoIntegracaoViaHttp(request,VISAHttpReturnBuilder.AUTORIZACAO_RETORNO_BUILDER); VISAAutorizacaoReturn autorizacaoReturn = (VISAAutorizacaoReturn)retornoIntegracaoViaHttp.handle(); Assert.assertEquals(BigDecimal.ONE.setScale(2),autorizacaoReturn.getCheckout().getPrice()); } @Test public void testRetornoCaptura(){ Mockery mockery = new Mockery(); final HttpServletRequest request = mockery.mock(HttpServletRequest.class); mockery.checking(new Expectations(){ { atLeast(2).of(request).getParameter("lr");will(returnValue("00")); one(request).getParameter("free");will(returnValue("free")); one(request).getParameter("ars");will(returnValue("autorizada")); one(request).getParameter("tid");will(returnValue("12345678")); one(request).getParameter("cap");will(returnValue("200")); } }); VISAVerificacaoRetornoIntegracaoViaHttp retornoIntegracaoViaHttp = new VISAVerificacaoRetornoIntegracaoViaHttp(request,VISAHttpReturnBuilder.CAPTURA_RETORNO_BUILDER); VISACapturaReturn capturaReturn = (VISACapturaReturn)retornoIntegracaoViaHttp.handle(); Assert.assertEquals(new BigDecimal(2).setScale(2),capturaReturn.getCap()); } @Test public void testRetornoCancelamento(){ Mockery mockery = new Mockery(); final HttpServletRequest request = mockery.mock(HttpServletRequest.class); mockery.checking(new Expectations(){ { atLeast(2).of(request).getParameter("lr");will(returnValue("00")); one(request).getParameter("ars");will(returnValue("autorizada")); one(request).getParameter("tid");will(returnValue("12345678")); } }); VISAVerificacaoRetornoIntegracaoViaHttp retornoIntegracaoViaHttp = new VISAVerificacaoRetornoIntegracaoViaHttp(request,VISAHttpReturnBuilder.CANCELAMENTO_RETORNO_BUILDER); VISACancelamentoReturn cancelamentoReturn = (VISACancelamentoReturn)retornoIntegracaoViaHttp.handle(); } @Test public void testRetornoConsulta(){ Mockery mockery = new Mockery(); final HttpServletRequest request = mockery.mock(HttpServletRequest.class); mockery.checking(new Expectations(){ { one(request).getParameter("lr");will(returnValue("00")); one(request).getParameter("orderid");will(returnValue("123456")); one(request).getParameter("free");will(returnValue("free")); one(request).getParameter("price");will(returnValue("100")); one(request).getParameter("ars");will(returnValue("autorizada")); one(request).getParameter("tid");will(returnValue("12345678")); one(request).getParameter("arp");will(returnValue("1332")); one(request).getParameter("bank");will(returnValue("4739")); one(request).getParameter("Authent");will(returnValue("0")); } }); VISAVerificacaoRetornoIntegracaoViaHttp retornoIntegracaoViaHttp = new VISAVerificacaoRetornoIntegracaoViaHttp(request,VISAHttpReturnBuilder.CONSULTA_RETORNO_BUILDER); VISAConsultaReturn consultaReturn = (VISAConsultaReturn)retornoIntegracaoViaHttp.handle(); } }