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 CaixaCarteira24Test { private Boleto boleto; private Caixa banco = new Caixa(); private Beneficiario beneficiario; @Before public void setUp() { // ///////////////////////////////////////////////////////////////// // SET UP de boleto com carteira SIGCB Sem Registro Carteira 2 variação // 4 (24) // ///////////////////////////////////////////////////////////////// Datas datas = Datas.novasDatas().comDocumento(10, 07, 2014) .comProcessamento(12, 12, 2014).comVencimento(10, 07, 2014); this.beneficiario = Beneficiario.novoBeneficiario() .comNomeBeneficiario("Empresa A").comAgencia("3531") .comDigitoAgencia("9").comCarteira("24") .comCodigoBeneficiario("503662") .comDigitoCodigoBeneficiario("3") .comNossoNumero("24000000000000006").comDigitoNossoNumero("3"); Pagador pagador = Pagador.novoPagador().comNome( "Candidato ao pagamento"); this.boleto = Boleto.novoBoleto().comDatas(datas) .comBeneficiario(beneficiario).comBanco(this.banco) .comPagador(pagador).comValorBoleto(1.23) .comNumeroDoDocumento("24000000000000006"); } @Test public void carteiraFormatadoDeveTerDoisDigitos() { Beneficiario beneficiario = Beneficiario.novoBeneficiario().comCarteira("24"); String numeroFormatado = this.banco.getCarteiraFormatado(beneficiario); assertEquals(2, numeroFormatado.length()); assertEquals("24", numeroFormatado); } @Test public void nossoNumeroDeveComecarCom24() { assertEquals("24", this.beneficiario.getNossoNumero().substring(0, 2)); } @Test public void nossoNumeroDeveConter17Digitos() { assertEquals(17, this.beneficiario.getNossoNumero().length()); } @Test public void testLinhaDoBancoCaixaComCarteiraSIGCBSimples() { GeradorDeLinhaDigitavel gerador = new GeradorDeLinhaDigitavel(); String codigoDeBarras = boleto.getBanco().geraCodigoDeBarrasPara(this.boleto); String linha = "10495.03665 23000.200040 00000.000604 8 61200000000123"; assertEquals(linha, gerador.geraLinhaDigitavelPara(codigoDeBarras, this.banco)); } @Test public void testCodigoDeBarraDoBancoCaixaComCarteiraSIGCBSimples() { assertEquals("10498612000000001235036623000200040000000060", this.banco.geraCodigoDeBarrasPara(this.boleto)); } @Test public void testGetImage() { assertNotNull(this.banco.getImage()); } }