diff --git a/src/main/java/org/jrimum/bopepo/BancosSuportados.java b/src/main/java/org/jrimum/bopepo/BancosSuportados.java index 5a402973..5083bd96 100644 --- a/src/main/java/org/jrimum/bopepo/BancosSuportados.java +++ b/src/main/java/org/jrimum/bopepo/BancosSuportados.java @@ -370,6 +370,15 @@ public enum BancosSuportados{ */ BANCO_VOTORANTIM("655", "59588111004443", "BANCO VOTORANTIM S.A.", "BANCO VOTORANTIM S.A."), + /** + * Tipo enumerado que representa o BANCO FIBRA S.A., código de + * compensação 224 site. + * + * @since 0.2 + */ + BANCO_FIBRA("224", "58616418000108", "BANCO FIBRA S.A.", "BANCO FIBRA S.A."), + /** * Tipo enumerado que representa o Banco Sofisa, código de * compensação 637 (titulo.getContaBancaria().getAgencia().getCodigo(), AGENCIA_LENGTH, Fillers.ZERO_LEFT)); + this.add(new FixedField(titulo.getContaBancaria().getCarteira().getCodigo(), CARTEIRA_LENGTH, Fillers.ZERO_LEFT)); + this.add(new FixedField(titulo.getParametrosBancarios().getValor(ParametroBancoFibra.OPERACAO), OPERACAO_LENGTH, Fillers.ZERO_LEFT)); + this.add(new FixedField(titulo.getNossoNumero() + titulo.getDigitoDoNossoNumero(), NOSSO_NUMERO_COM_DV_LENGTH, Fillers.ZERO_LEFT)); + } +} diff --git a/src/main/java/org/jrimum/bopepo/parametro/ParametroBancoFibra.java b/src/main/java/org/jrimum/bopepo/parametro/ParametroBancoFibra.java new file mode 100644 index 00000000..1b7e9306 --- /dev/null +++ b/src/main/java/org/jrimum/bopepo/parametro/ParametroBancoFibra.java @@ -0,0 +1,35 @@ +/* + * Copyright 2014 JRimum Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + * + * Created at: 21/01/2014 - 13:57:10 + * + * ================================================================================ + * + * Direitos autorais 2014 JRimum Project + * + * Licenciado sob a Licença Apache, Versão 2.0 ("LICENÇA"); você não pode + * usar esse arquivo exceto em conformidade com a esta LICENÇA. Você pode obter uma + * cópia desta LICENÇA em http://www.apache.org/licenses/LICENSE-2.0 A menos que + * haja exigência legal ou acordo por escrito, a distribuição de software sob esta + * LICENÇA se dará “COMO ESTÁ”, SEM GARANTIAS OU CONDIÇÕES DE QUALQUER TIPO, sejam + * expressas ou tácitas. Veja a LICENÇA para a redação específica a reger permissões + * e limitações sob esta LICENÇA. + * + * Criado em: 21/01/2014 - 13:57:10 + * + */ +package org.jrimum.bopepo.parametro; +import org.jrimum.domkee.financeiro.banco.ParametroBancario; + +public enum ParametroBancoFibra implements ParametroBancario { + OPERACAO; +} \ No newline at end of file diff --git a/src/main/resources/img/224.png b/src/main/resources/img/224.png new file mode 100644 index 00000000..e3f64b05 Binary files /dev/null and b/src/main/resources/img/224.png differ diff --git a/src/test/java/org/jrimum/bopepo/TestBancosSuportados.java b/src/test/java/org/jrimum/bopepo/TestBancosSuportados.java index 1303ff36..5c1a1712 100644 --- a/src/test/java/org/jrimum/bopepo/TestBancosSuportados.java +++ b/src/test/java/org/jrimum/bopepo/TestBancosSuportados.java @@ -82,6 +82,7 @@ public void deve_ter_o_codigos_bacen_igual_o_da_especificacao_febraban() { assertEquals(BancosSuportados.BANCO_B2S.create().getCodigoDeCompensacaoBACEN().getCodigoFormatado(), "218"); assertEquals(BancosSuportados.MONEYPLUS.create().getCodigoDeCompensacaoBACEN().getCodigoFormatado(),"274"); assertEquals(BancosSuportados.BANCO_VOTORANTIM.create().getCodigoDeCompensacaoBACEN().getCodigoFormatado(),"655"); + assertEquals(BancosSuportados.BANCO_FIBRA.create().getCodigoDeCompensacaoBACEN().getCodigoFormatado(),"224"); assertEquals(BancosSuportados.BANCO_SOFISA.create().getCodigoDeCompensacaoBACEN().getCodigoFormatado(),"637"); } diff --git a/src/test/java/org/jrimum/bopepo/campolivre/TestCLBancoFibra.java b/src/test/java/org/jrimum/bopepo/campolivre/TestCLBancoFibra.java new file mode 100644 index 00000000..109ab40b --- /dev/null +++ b/src/test/java/org/jrimum/bopepo/campolivre/TestCLBancoFibra.java @@ -0,0 +1,52 @@ +package org.jrimum.bopepo.campolivre; + +import org.jrimum.bopepo.BancosSuportados; +import org.jrimum.domkee.financeiro.banco.ParametrosBancariosMap; +import org.jrimum.domkee.financeiro.banco.febraban.Agencia; +import org.jrimum.domkee.financeiro.banco.febraban.Carteira; +import org.jrimum.domkee.financeiro.banco.febraban.NumeroDaConta; +import org.junit.Before; +import org.junit.Test; + + +public class TestCLBancoFibra extends AbstractCampoLivreBaseTest { + + @Before + public void setUp(){ + + titulo.getContaBancaria().setBanco(BancosSuportados.BANCO_FIBRA.create()); + titulo.getContaBancaria().setAgencia(new Agencia(1234, "1")); + titulo.getContaBancaria().setNumeroDaConta(new NumeroDaConta(6789)); + titulo.getContaBancaria().setCarteira(new Carteira(500)); + titulo.setNossoNumero("123456789"); + titulo.setDigitoDoNossoNumero("1"); + titulo.setParametrosBancarios(new ParametrosBancariosMap(org.jrimum.bopepo.parametro.ParametroBancoFibra.OPERACAO, 1234567)); + + createCampoLivreToTest(); + + setCampoLivreEsperadoComoString("1234567890500123456789100"); + } + + + @Test(expected = CampoLivreException.class) + public void seNaoPermiteNossoNumeroNulo() { + testeSeNaoPermiteNossoNumeroNulo(); + } + + @Test(expected = CampoLivreException.class) + public void seNaoPermiteNossoNumeroComBrancos() { + testeSeNaoPermiteNossoNumeroComBrancos(CLBancoFibra.NOSSO_NUMERO_COM_DV_LENGTH); + } + + @Test(expected = CampoLivreException.class) + public void seNaoPermiteNossoNumeroComEspacos() { + + testeSeNaoPermiteNossoNumeroComEspacos(CLBancoFibra.NOSSO_NUMERO_COM_DV_LENGTH); + } + + @Test(expected = CampoLivreException.class) + public void seNaoPermiteNossoNumeroComTamanhoDiferenteDe10() { + testeSeNaoPermiteNossoNumeroComTamanhoDiferenteDoEspecificado(CLBancoFibra.NOSSO_NUMERO_COM_DV_LENGTH - 1); + } + +}