package br.com.caelum.stella.gateway.integration; import java.io.File; import java.math.BigDecimal; import java.util.Calendar; import java.util.HashMap; import java.util.Map; import org.junit.BeforeClass; import org.junit.Test; import br.com.caelum.stella.gateway.HtmlViewerHelper; import br.com.caelum.stella.gateway.SeleniumHelper; import br.com.caelum.stella.gateway.bb.BBDadosAutorizacaoPagamento; import br.com.caelum.stella.gateway.bb.BBSolicitaAutorizacaoPagamento; import br.com.caelum.stella.gateway.bb.BBCheckout; import br.com.caelum.stella.gateway.bb.BBTipoTransacao; import br.com.caelum.stella.gateway.core.DadosComprador; import br.com.caelum.stella.gateway.core.GatewaysConf; /** * Os testes estão gerando paginas html que fazem a comunicação com a forma de pagamento. * @author Alberto Pc * */ public class BBTestSolicitacaoDeIntegracao { /* * tenho que tentar abrir o browser corretamente ainda. */ private static SeleniumHelper seleniumHelper; private static String pathPastaPagina; @BeforeClass public static void setUp() throws Exception { pathPastaPagina = new File("").getAbsolutePath() + File.separator; // seleniumHelper.iniciarSelenium().configurarContextoDoTeste("file:///"+pathPastaPagina,"Testando integracao com Komerci"); } @Test public void testSolicitarPagamentoComBoleto() throws Exception{ BBCheckout checkout = new BBCheckout(BigDecimal.TEN, Calendar.getInstance(), BBTipoTransacao.BLOQUETO_BANCARIO, new DadosComprador("41900000", "Salvador", "Endereco de teste", "Alberto", "BA"), "Mensagem de teste", "123"); // o numero a ser anexado pode ser diferente do numero do pedido BBDadosAutorizacaoPagamento dadosAutorizacaoPagamento = new BBSolicitaAutorizacaoPagamento( checkout, checkout.getNumeroDoPedido(), new Object[] { checkout .getNumeroDoPedido() }, new Object[] { checkout .getNumeroDoPedido() }).handle(); HtmlViewerHelper htmlViewerHelper = new HtmlViewerHelper(); Map<String, Object> fields = criarMapaComCampos(dadosAutorizacaoPagamento); htmlViewerHelper.body( "onload=document.getElementById('pagamento').submit();").form( new GatewaysConf().getBBUrlComponenteDeAutorizacao(), "post", "pagamento").createInputsHidden(fields) .criarPaginaTemporariaNoDisco( pathPastaPagina + "/post_dados_bb_bloqueto.html"); } @Test public void testSolicitarPagamentoComDebito() throws Exception{ BBCheckout checkout = new BBCheckout(BigDecimal.TEN, Calendar.getInstance(), BBTipoTransacao.DEBITO_EM_CONTA, new DadosComprador("41900000", "Salvador", "Endereco de teste", "Alberto", "BA"), "Mensagem de teste", "12345"); // o numero a ser anexado pode ser diferente do numero do pedido BBDadosAutorizacaoPagamento dadosAutorizacaoPagamento = new BBSolicitaAutorizacaoPagamento( checkout, checkout.getNumeroDoPedido(), new Object[] { checkout .getNumeroDoPedido() }, new Object[] { checkout .getNumeroDoPedido() }).handle(); HtmlViewerHelper htmlViewerHelper = new HtmlViewerHelper(); Map<String, Object> fields = criarMapaComCampos(dadosAutorizacaoPagamento); htmlViewerHelper.body( "onload=document.getElementById('pagamento').submit();").form( new GatewaysConf().getBBUrlComponenteDeAutorizacao(), "post", "pagamento").createInputsHidden(fields) .criarPaginaTemporariaNoDisco( pathPastaPagina + "/post_dados_bb_debito.html"); } @Test public void testSolicitarPagamentoComCrediario() throws Exception{ BBCheckout checkout = new BBCheckout(BigDecimal.TEN, Calendar.getInstance(), BBTipoTransacao.CREDIARIO_INTERNET, new DadosComprador("41900000", "Salvador", "Endereco de teste", "Alberto", "BA"), "Mensagem de teste", "12345"); // o numero a ser anexado pode ser diferente do numero do pedido BBDadosAutorizacaoPagamento dadosAutorizacaoPagamento = new BBSolicitaAutorizacaoPagamento( checkout, checkout.getNumeroDoPedido(), new Object[] { checkout .getNumeroDoPedido() }, new Object[] { checkout .getNumeroDoPedido() }).handle(); HtmlViewerHelper htmlViewerHelper = new HtmlViewerHelper(); Map<String, Object> fields = criarMapaComCampos(dadosAutorizacaoPagamento); htmlViewerHelper.body( "onload=document.getElementById('pagamento').submit();").form( new GatewaysConf().getBBUrlComponenteDeAutorizacao(), "post", "pagamento").createInputsHidden(fields) .criarPaginaTemporariaNoDisco( pathPastaPagina + "/post_dados_bb_crediario.html"); } private Map<String, Object> criarMapaComCampos( BBDadosAutorizacaoPagamento dadosAutorizacaoPagamento) { Map<String, Object> fields = new HashMap<String, Object>(); fields.put("idConv", dadosAutorizacaoPagamento.getIdConv()); fields.put("refTran", dadosAutorizacaoPagamento.getRefTran()); fields.put("valor", dadosAutorizacaoPagamento.getValorFormatado()); fields.put("dtVenc", dadosAutorizacaoPagamento .getDataVencimentoFormatada()); fields.put("tpPagamento", dadosAutorizacaoPagamento.getTipoTransacao()); fields.put("urlRetorno", dadosAutorizacaoPagamento.getUrlRetornoFormatada()); fields.put("urlInforma", dadosAutorizacaoPagamento.getUrlInformaFormatada()); fields.put("nome", dadosAutorizacaoPagamento.getNome()); fields.put("endereco", dadosAutorizacaoPagamento.getEndereco()); fields.put("cidade", dadosAutorizacaoPagamento.getCidade()); fields.put("uf", dadosAutorizacaoPagamento.getEstado()); fields.put("cep", dadosAutorizacaoPagamento.getCep()); fields.put("msgLoja", dadosAutorizacaoPagamento.getMensagemLoja()); return fields; } }