package br.com.caelum.stella.gateway.integration;
import java.io.File;
import java.math.BigDecimal;
import java.net.Socket;
import java.util.HashMap;
import org.junit.AfterClass;
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.core.GatewaysConf;
import br.com.caelum.stella.gateway.redecard.RedecardBandeira;
import br.com.caelum.stella.gateway.redecard.RedecardCheckout;
import br.com.caelum.stella.gateway.redecard.RedecardDadosAutorizacaoPagamento;
import br.com.caelum.stella.gateway.redecard.RedecardFormaPagamento;
import br.com.caelum.stella.gateway.redecard.RedecardSolicitacaoAutorizacaoPagamento;
/**
* Os testes estão gerando paginas html que fazem a comunicação com a forma de pagamento.
* @author Alberto Pc
*
*/
public class RedecardTestSolicitacaoDeIntegracao {
private static RedecardCheckout checkout;
private static SeleniumHelper seleniumHelper;
private static String pathPastaPagina;
@BeforeClass
public static void setUp() throws Exception {
pathPastaPagina = new File("").getAbsolutePath() + File.separator;
checkout = new RedecardCheckout(BigDecimal.ONE, RedecardFormaPagamento
.newPagamentoAVista(), RedecardBandeira.MASTERCARD, "123456", "");
// seleniumHelper.iniciarSelenium().configurarContextoDoTeste("file:///"+pathPastaPagina,"Testando integracao com Komerci");
}
@AfterClass
public static void shutDown() {
// seleniumHelper.finalizar();
}
@Test
public void testSolicitaDeAberturaDeTelaParaAutorizacaoDePagamento()
throws Exception {
/*
* talvez esse teste não devesse ficar aqui, mas como ele apenas testa
* se a tela foi aberta com sucesso...
*/
RedecardDadosAutorizacaoPagamento dadosAutorizacaoPagamento = new RedecardSolicitacaoAutorizacaoPagamento(
checkout, new Socket().getLocalAddress().getHostAddress())
.handle();
abrirPaginaHTMLComOsDadosDeAutorizacao(dadosAutorizacaoPagamento);
}
private void abrirPaginaHTMLComOsDadosDeAutorizacao(
RedecardDadosAutorizacaoPagamento dadosAutorizacaoPagamento)
throws Exception {
HtmlViewerHelper htmlViewerHelper = new HtmlViewerHelper();
HashMap<String, Object> fields = new HashMap<String, Object>();
fields.put("TOTAL", dadosAutorizacaoPagamento
.getTotalComDuasCasasDecimais());
fields.put("TRANSACAO", dadosAutorizacaoPagamento.getFormaPagamento()
.getTipoTransacao());
fields.put("PARCELAS", dadosAutorizacaoPagamento.getFormaPagamento()
.getNumeroDeParcelasComNoMinimoDoisDigitos());
fields.put("FILIACAO", dadosAutorizacaoPagamento.getFiliacao());
fields.put("DISTRIBUIDOR", dadosAutorizacaoPagamento
.getFiliacaoDistribuidor());
fields.put("BANDEIRA", dadosAutorizacaoPagamento.getBandeira());
fields.put("NUMPEDIDO", dadosAutorizacaoPagamento.getNumeroDoPedido());
fields.put("PAX1", dadosAutorizacaoPagamento.getPax1());
fields.put("CODVER", dadosAutorizacaoPagamento.getCodVer());
fields.put("URLBACK", "http://www.acharuma.com.br");
fields.put("URLCIMA", dadosAutorizacaoPagamento.getUrlCima());
fields.put("TARGET", dadosAutorizacaoPagamento.getTarget());
htmlViewerHelper.body(
"onload=document.getElementById('teste').submit();").form(
new GatewaysConf().getRedeCardUrlParaComponenteDeAutorizacao(),
"post", "teste").createInputsHidden(fields)
.criarPaginaTemporariaNoDisco(
pathPastaPagina + "post_dados_master.html");
// TODO Auto-generated method stub
}
}