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

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

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

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.core.ProblematicTransactionException;
import br.com.caelum.stella.gateway.redecard.RedecardAutorizacaoReturn;
import br.com.caelum.stella.gateway.redecard.RedecardConfirmacaoSemDadosException;
import br.com.caelum.stella.gateway.redecard.RedecardConfirmacaoTransacaoReturn;
import br.com.caelum.stella.gateway.redecard.RedecardIdiomaOperacao;
import br.com.caelum.stella.gateway.redecard.RedecardVerificaRetornoAutorizacao;
import br.com.caelum.stella.gateway.redecard.RedecardVerificadorRetornoConfirmacaoTransacao;

public class RedecardTestRetornoIntegracao {

  @Test
  public void testVerificaRetornoValidoDaTransacao() {
    Mockery mockery = new Mockery();
    final HttpServletRequest request = mockery
        .mock(HttpServletRequest.class);
    mockery.checking(new Expectations() {
      {
        one(request).getParameter("DATA");
        will(returnValue("20090320"));
        one(request).getParameter("NUMPEDIDO");
        will(returnValue("123456"));
        one(request).getParameter("NR_CARTAO");
        will(returnValue("1234567890123456"));
        one(request).getParameter("ORIGEM_BIN");
        will(returnValue("BRA"));
        one(request).getParameter("NUMAUTOR");
        will(returnValue("123456"));
        one(request).getParameter("NUMCV");
        will(returnValue("123456789"));
        one(request).getParameter("NUMAUTENT");
        will(returnValue("463294639534953535657687"));
        one(request).getParameter("NUMSQN");
        will(returnValue("123456789012"));
        one(request).getParameter("CODRET");
        will(returnValue(null));
        one(request).getParameter("MSGRET");
        will(returnValue("TRANSAÇÃO APROVADA"));
      }
    });
    RedecardAutorizacaoReturn autorizacaoReturn = new RedecardVerificaRetornoAutorizacao(
        request,RedecardIdiomaOperacao.INGLES).handle();
    Assert.assertEquals("20090320", autorizacaoReturn.getDataFormatada());
    Assert.assertEquals(autorizacaoReturn.getCodigoRetorno(), 0);
  }

  @Test
  public void testVerificaRetornoInvalidoDaTransacao() {
    Mockery mockery = new Mockery();
    final HttpServletRequest request = mockery
        .mock(HttpServletRequest.class);
    mockery.checking(new Expectations() {
      {
        one(request).getParameter("DATA");
        will(returnValue("20090320"));
        one(request).getParameter("NUMPEDIDO");
        will(returnValue("123456"));
        one(request).getParameter("NR_CARTAO");
        will(returnValue("1234567890123456"));
        one(request).getParameter("ORIGEM_BIN");
        will(returnValue("BRA"));
        one(request).getParameter("NUMAUTOR");
        will(returnValue("123456"));
        one(request).getParameter("NUMCV");
        will(returnValue("123456789"));
        one(request).getParameter("NUMAUTENT");
        will(returnValue("463294639534953535657687"));
        one(request).getParameter("NUMSQN");
        will(returnValue("123456789012"));
        one(request).getParameter("CODRET");
        will(returnValue("55"));
        one(request).getParameter("MSGRET");
        will(returnValue("TRANSAÇÃO NÃO APROVADA"));
      }
    });
    try {
      new RedecardVerificaRetornoAutorizacao(request,RedecardIdiomaOperacao.INGLES).handle();
    } catch (ProblematicTransactionException problematicTransactionException) {
      Assert.assertEquals("TRANSAÇÃO NÃO APROVADA",
          problematicTransactionException.getMessage());
    }
  }

  @Test
  public void testVerificadorDeRetornoDaConfirmacaoDaTransacao() {
    String retorno = "CODRET=0&MSGRET=CONFIRMACAO COM SUCESSO";
    RedecardConfirmacaoTransacaoReturn confirmacaoTransacaoReturn = new RedecardVerificadorRetornoConfirmacaoTransacao(
        retorno).verificaRetorno();
    Assert.assertEquals(confirmacaoTransacaoReturn.getCodigoRetorno(), 0);
    Assert.assertEquals(confirmacaoTransacaoReturn.getMensagemRetorno(),
        "CONFIRMACAO COM SUCESSO");
  }

  @Test(expected = RedecardConfirmacaoSemDadosException.class)
  public void testVerificadorDeRetornoDaConfirmacaoDaTransacaoCasoOsDadosDeRetornoNaoSejamRetornados() {
    String retorno = "";
    RedecardConfirmacaoTransacaoReturn confirmacaoTransacaoReturn = new RedecardVerificadorRetornoConfirmacaoTransacao(
        retorno).verificaRetorno();
    Assert.assertEquals(confirmacaoTransacaoReturn.getCodigoRetorno(), 0);
    Assert.assertEquals(confirmacaoTransacaoReturn.getMensagemRetorno(),
        "CONFIRMACAO COM SUCESSO");
  }
 
}
TOP

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

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.