package br.com.caelum.stella.boleto.bancos; import org.junit.Before; import org.junit.Test; import br.com.caelum.stella.boleto.Beneficiario; import br.com.caelum.stella.boleto.Boleto; import br.com.caelum.stella.boleto.Datas; import br.com.caelum.stella.boleto.Pagador; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; public class BradescoTest { private Boleto boleto; private Bradesco banco; private Beneficiario beneficiario; @Before public void setUp() { Datas datas = Datas.novasDatas().comDocumento(31, 5, 2006).comProcessamento(31, 5, 2006) .comVencimento(10, 6, 2006); this.beneficiario = Beneficiario.novoBeneficiario().comNomeBeneficiario("Leonardo Bessa") .comAgencia("2949").comDigitoAgencia("1") .comCodigoBeneficiario("6580").comNumeroConvenio("1207113") .comDigitoCodigoBeneficiario("3").comCarteira("6") .comNossoNumero("3"); Pagador pagador = Pagador.novoPagador().comNome("Fulano"); this.banco = new Bradesco(); this.boleto = Boleto.novoBoleto().comDatas(datas).comBeneficiario(this.beneficiario).comPagador(pagador) .comValorBoleto("1.00").comNumeroDoDocumento("4323"); } @Test public void nossoNumeroFormatadoDeveTerOnzeDigitos() { Beneficiario beneficiario = Beneficiario.novoBeneficiario().comNossoNumero("9000206").comDigitoNossoNumero("7"); String numeroFormatado = this.banco.getNossoNumeroFormatado(beneficiario); assertEquals(11, numeroFormatado.length()); assertEquals("00009000206", numeroFormatado); } @Test public void carteiraFormatadoDeveTerDoisDigitos() { Beneficiario beneficiario = Beneficiario.novoBeneficiario().comCarteira("1"); String numeroFormatado = this.banco.getCarteiraFormatado(beneficiario); assertEquals(2, numeroFormatado.length()); assertEquals("01", numeroFormatado); } @Test public void contaCorrenteFormatadaDeveTerSeteDigitos() { String numeroFormatado = this.banco.getCodigoBeneficiarioFormatado(this.beneficiario); assertEquals(7, numeroFormatado.length()); assertEquals("0006580", numeroFormatado); } @Test public void testLinhaDoBancoBradesco() { this.banco = new Bradesco(); this.boleto = this.boleto.comBanco(this.banco); GeradorDeLinhaDigitavel linhaDigitavelGenerator = new GeradorDeLinhaDigitavel(); String codigoDeBarras = boleto.getBanco().geraCodigoDeBarrasPara(this.boleto); assertEquals("23792.94909 60000.000004 03000.658009 6 31680000000100", linhaDigitavelGenerator.geraLinhaDigitavelPara(codigoDeBarras,this.banco)); } @Test public void testCodigoDeBarraDoBancoBradesco() { this.banco = new Bradesco(); this.boleto = this.boleto.comBanco(this.banco); assertEquals("23796316800000001002949060000000000300065800", this.banco.geraCodigoDeBarrasPara(this.boleto)); } @Test public void testGetImage() { assertNotNull(this.banco.getImage()); } }