package br.com.caelum.stella.gateway.visa; import java.math.BigDecimal; import java.math.RoundingMode; import java.util.Calendar; import junit.framework.Assert; import org.junit.Test; import br.com.caelum.stella.gateway.core.CartaoCredito; import br.com.caelum.stella.gateway.core.GatewaysConf; public class TestVisaCheckout { private static final long NUMERO_FILIACAO_TESTE = 1001734898; private GatewaysConf gatewaysConf = new GatewaysConf(); @Test public void testFormatacaoDaDataDeValidadeDoCartao(){ Calendar data = Calendar.getInstance(); data.set(Calendar.YEAR,2009); data.set(Calendar.MONTH,Calendar.MARCH); Assert.assertEquals("0309",new CartaoCredito(1234567890123456l,data,123).getExpFormatado()); } @Test public void testValorDaCompraFormatado() { Assert.assertEquals("1234548", new VISACheckout(null,null,null,new BigDecimal(12345.48),null).getValorFormatado()); } @Test public void testFormatandoParaBigDecimalOValor(){ Assert.assertEquals(new BigDecimal(12345.45).setScale(2,RoundingMode.HALF_EVEN), new VISACheckout(null,null,null,"1234545",null).getPrice()); } @Test public void testGeracaoDoTidComCreditoAVista() { Calendar dataReferencia = getDataReferencia(); Assert.assertEquals("73489405115052541001",new TIDGenerator().getTid(new VISAFormaPagamento(VISATipoTransacao.CREDITO_A_VISTA,1),dataReferencia,NUMERO_FILIACAO_TESTE)); } @Test public void testGeracaoDoTidComCreditoParceladoPelaLoja() { // data montada pegando a referencia da documentacao do visa Calendar dataReferencia = getDataReferencia(); Assert.assertEquals("73489405115052542003",new TIDGenerator().getTid(new VISAFormaPagamento(VISATipoTransacao.PARCELADO_JUROS_LOJISTA,3),dataReferencia,NUMERO_FILIACAO_TESTE)); } private Calendar getDataReferencia() { Calendar dataReferencia = Calendar.getInstance(); dataReferencia.set(Calendar.DAY_OF_MONTH, 20); dataReferencia.set(Calendar.MONDAY, Calendar.FEBRUARY); dataReferencia.set(Calendar.YEAR, 2004); dataReferencia.set(Calendar.HOUR_OF_DAY, 15); dataReferencia.set(Calendar.MINUTE, 5); dataReferencia.set(Calendar.SECOND, 25); dataReferencia.set(Calendar.MILLISECOND, 400); return dataReferencia; } @Test public void testGeracaoDoTidComCreditoParceladoPelaAdministrador() { Calendar dataReferencia = getDataReferencia(); Assert.assertEquals("73489405115052543006",new TIDGenerator().getTid(new VISAFormaPagamento(VISATipoTransacao.PARCELADO_JUROS_EMISSOR,6),dataReferencia,NUMERO_FILIACAO_TESTE)); } @Test public void testGeracaoDoTidComDebito() { Calendar dataReferencia = getDataReferencia(); Assert.assertEquals("7348940511505254A001",new TIDGenerator().getTid(new VISAFormaPagamento(VISATipoTransacao.DEBITO,1),dataReferencia,NUMERO_FILIACAO_TESTE)); } }