From 9e10180da40559db4190a10fefb19d8eff2b7a57 Mon Sep 17 00:00:00 2001 From: pultzlucas Date: Mon, 4 May 2026 09:57:17 -0300 Subject: [PATCH] COF #20800 - Adiciona Banco Fibra --- .../org/jrimum/bopepo/BancosSuportados.java | 10 ++++ .../campolivre/AbstractCLBancoFibra.java | 20 +++++++ .../bopepo/campolivre/AbstractCampoLivre.java | 1 + .../bopepo/campolivre/CLBancoFibra.java | 42 ++++++++++++++ .../bopepo/parametro/ParametroBancoFibra.java | 35 ++++++++++++ src/main/resources/img/224.png | Bin 0 -> 5148 bytes .../jrimum/bopepo/TestBancosSuportados.java | 1 + .../bopepo/campolivre/TestCLBancoFibra.java | 52 ++++++++++++++++++ 8 files changed, 161 insertions(+) create mode 100644 src/main/java/org/jrimum/bopepo/campolivre/AbstractCLBancoFibra.java create mode 100644 src/main/java/org/jrimum/bopepo/campolivre/CLBancoFibra.java create mode 100644 src/main/java/org/jrimum/bopepo/parametro/ParametroBancoFibra.java create mode 100644 src/main/resources/img/224.png create mode 100644 src/test/java/org/jrimum/bopepo/campolivre/TestCLBancoFibra.java 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 0000000000000000000000000000000000000000..e3f64b05934ba8108d977d8916fd6642c9a626fe GIT binary patch literal 5148 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 { + + @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); + } + +}