Package br.com.caelum.stella.gateway.integration

Source Code of br.com.caelum.stella.gateway.integration.AmexTestSolicitacaoIntegracao

package br.com.caelum.stella.gateway.integration;

import java.io.File;
import java.io.IOException;
import java.math.BigDecimal;
import java.util.HashMap;
import java.util.Map;

import org.junit.Test;

import br.com.caelum.stella.gateway.HtmlViewerHelper;
import br.com.caelum.stella.gateway.SeleniumHelper;
import br.com.caelum.stella.gateway.amex.AmexCheckout;
import br.com.caelum.stella.gateway.amex.AmexDadosAutorizacaoPagamento;
import br.com.caelum.stella.gateway.amex.AmexDadosConfiguracao;
import br.com.caelum.stella.gateway.amex.AmexFormaPagamento;
import br.com.caelum.stella.gateway.amex.AmexLocale;
import br.com.caelum.stella.gateway.amex.AmexSolicitaAutorizacaoPagamento;
import br.com.caelum.stella.gateway.amex.AmexTipoCartao;
import br.com.caelum.stella.gateway.amex.AmexTipoTransacao;

/**
* Os testes na verdade estão apenas gerando paginas html que quando abertas
* fazem comunicação com o Amex.
*
* @author Alberto Pc
*
*/
public class AmexTestSolicitacaoIntegracao {

  private static SeleniumHelper seleniumHelper;

  @Test
  public void testSolicitarPagamentoAVista() throws IOException {
    AmexCheckout amexCheckout = new AmexCheckout("12345678", "12345678",
        BigDecimal.TEN, AmexLocale.EN, new AmexFormaPagamento(0,
            AmexTipoTransacao.A_VISTA,
            AmexTipoCartao.AMERICA_EXPRESS));
    AmexDadosAutorizacaoPagamento amexDadosAutorizacaoPagamento = new AmexSolicitaAutorizacaoPagamento(
        amexCheckout).handle();
    Map<String, Object> fields = gerarInputs(amexDadosAutorizacaoPagamento);
    new HtmlViewerHelper().body("").form(
        new AmexDadosConfiguracao().getUrlComponenteAutorizacao(),
        "get", "pagamento").createInputsHidden(fields)
        .criarPaginaTemporariaNoDisco(
            new File("").getAbsolutePath() + File.separator
                + "/post_dados_amex.html");   

  }

  @Test
  public void testSolicitarPagamentoParcelado() throws IOException {
    AmexCheckout amexCheckout = new AmexCheckout("12345678", "12345678",
        BigDecimal.TEN, AmexLocale.EN, AmexFormaPagamento
            .newPagamentoParceladoJurosLojista(2,
                AmexTipoCartao.AMERICA_EXPRESS));
    AmexDadosAutorizacaoPagamento amexDadosAutorizacaoPagamento = new AmexSolicitaAutorizacaoPagamento(
        amexCheckout).handle();
    Map<String, Object> fields = gerarInputs(amexDadosAutorizacaoPagamento);
    new HtmlViewerHelper().body(
        "onload=document.getElementById('pagamento').submit();").form(
        new AmexDadosConfiguracao().getUrlComponenteAutorizacao(),
        "get", "pagamento").createInputsHidden(fields)
        .criarPaginaTemporariaNoDisco(
            new File("").getAbsolutePath() + File.separator
                + "/post_dados_amex_parcelado.html");

  }

  private Map<String, Object> gerarInputs(
      AmexDadosAutorizacaoPagamento amexDadosAutorizacaoPagamento) {
    Map<String, Object> fields = new HashMap<String, Object>();
    fields.put("vpc_Version", amexDadosAutorizacaoPagamento
        .getVpc_Version());
    fields.put("vpc_Merchant", amexDadosAutorizacaoPagamento
        .getVpc_Merchant());
    fields.put("vpc_OrderInfo", amexDadosAutorizacaoPagamento
        .getVpc_OrderInfo());
    fields.put("vpc_OrderInfo", amexDadosAutorizacaoPagamento
        .getVpc_OrderInfo());
    fields.put("vpc_Amount", amexDadosAutorizacaoPagamento
        .getVpc_AmountFormatado());
    fields.put("vpc_ReturnURL", amexDadosAutorizacaoPagamento
        .getVpc_ReturnUrl());
    fields.put("vpc_Card", amexDadosAutorizacaoPagamento
        .getFormaPagamento().getTipoCartao());
    fields.put("vpc_Command", amexDadosAutorizacaoPagamento
        .getVpc_Command());
    fields.put("vpc_AccessCode", amexDadosAutorizacaoPagamento
        .getVpc_AcessCode());
    fields.put("vpc_Locale", amexDadosAutorizacaoPagamento.getVpc_Locale());
    fields.put("vpc_MerchTxnRef", amexDadosAutorizacaoPagamento
        .getVpc_MerchTxnRef());
    fields.put("vpc_PaymentPlan", amexDadosAutorizacaoPagamento
        .getFormaPagamento().getTipoTransacao());
    fields.put("vpc_NumPayments", amexDadosAutorizacaoPagamento
        .getFormaPagamento().getNumeroDeParcelasFormatado());
    return fields;
  }
}
TOP

Related Classes of br.com.caelum.stella.gateway.integration.AmexTestSolicitacaoIntegracao

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.