package br.com.caelum.stella.gateway.visa;
import junit.framework.Assert;
import org.junit.Test;
import br.com.caelum.stella.gateway.core.InvalidCheckoutException;
public class TestParcelamento {
@Test
public void testFormatacaoCodigoParcelamentoComVisaElectron(){
Assert.assertEquals("A001",new VISAFormaPagamento(VISATipoTransacao.DEBITO,1).getCodigoDePagamento());
}
@Test
public void testFormatacaoCodigoParcelamentoComVisaElectronOuCreditoAVisaEMaisDeUmaParcela(){
/*
* nao sei direito como testar as exceptions já que por enquanto só tem um tipo... esse não é o melhor jeito, mas fica como solução temporaria...
*/
try{
new VISAFormaPagamento(VISATipoTransacao.DEBITO,2);
}
catch(InvalidCheckoutException numeroDeParcelasMaiorQuePermitidoException){
Assert.assertEquals("Com débito ou crédito a vista só pode pagar em 1 parcela",numeroDeParcelasMaiorQuePermitidoException.getMessage());
}
try{
new VISAFormaPagamento(VISATipoTransacao.CREDITO_A_VISTA,2);
}
catch(InvalidCheckoutException numeroDeParcelasMaiorQuePermitidoException){
Assert.assertEquals("Com débito ou crédito a vista só pode pagar em 1 parcela",numeroDeParcelasMaiorQuePermitidoException.getMessage());
}
}
@Test
public void testFormatacaoCodigoComNumeroDeParcelasIgualAZero(){
try{
new VISAFormaPagamento(VISATipoTransacao.CREDITO_A_VISTA,0);
}
catch(InvalidCheckoutException numeroDeParcelasMaiorQuePermitidoException){
Assert.assertEquals("O número de parcelas não pode ser igual ou menor que 0",numeroDeParcelasMaiorQuePermitidoException.getMessage());
}
}
@Test
public void testFormatacaoCodigoComJurosDaAdministradora(){
Assert.assertEquals("3012",new VISAFormaPagamento(VISATipoTransacao.PARCELADO_JUROS_EMISSOR,12).getCodigoDePagamento());
}
@Test
public void testFormatacaoCodigoComJurosDaLoja(){
Assert.assertEquals("2012",new VISAFormaPagamento(VISATipoTransacao.PARCELADO_JUROS_LOJISTA,12).getCodigoDePagamento());
}
@Test
public void testFormatacaoCodigoComCreditoAVisa(){
Assert.assertEquals("1001",new VISAFormaPagamento(VISATipoTransacao.CREDITO_A_VISTA,1).getCodigoDePagamento());
}
}