@Test
  public void testGetInstanceTitulo()
      throws NotSuporttedBancoException, NotSuporttedCampoLivreException {

    // Básico:
    titulo.setNossoNumero("10000000020061732");
    clCaixaSINCO = CampoLivreFactory.create(titulo);

    assertNotNull(clCaixaSINCO);
    //

    clCaixaSINCO = null;

    // Nosso número > 17:
    titulo.setNossoNumero("010000000020061732");

    try {

      clCaixaSINCO = CampoLivreFactory.create(titulo);

      assertTrue(false);

      fail("Teste Falho!");

    } catch (NotSuporttedCampoLivreException e) {
      assertTrue(true);
    }
  }
Exemple #2
0
  public CLBanestes(Titulo titulo) {
    super(FIELDS_LENGTH, STRING_LENGTH);

    this.add(new Field<Integer>(Integer.valueOf(titulo.getNossoNumero()), 8, Filler.ZERO_LEFT));
    this.add(
        new Field<Integer>(
            titulo.getContaBancaria().getNumeroDaConta().getCodigoDaConta(), 11, Filler.ZERO_LEFT));

    final Integer codigoDaCarteiraDeCobranca = titulo.getContaBancaria().getCarteira().getCodigo();

    if (exists(codigoDaCarteiraDeCobranca))
      this.add(new Field<Integer>(codigoDaCarteiraDeCobranca, 1));
    else {
      final TipoDeCobranca tipoDeCobranca =
          titulo.getContaBancaria().getCarteira().getTipoCobranca();
      switch (tipoDeCobranca) {
        case SEM_REGISTRO:
          this.add(new Field<Integer>(2, 1));
          break;
        case COM_REGISTRO:
          if (codigoDaCarteiraDeCobranca >= 3 && codigoDaCarteiraDeCobranca <= 7) {
            this.add(new Field<Integer>(codigoDaCarteiraDeCobranca, 1));
            break;
          } else
            throw new CampoLivreException(
                "Código da carteira de cobrança com registro deve ser"
                    + " especificado com 3,4,5,6 ou 7. Valor atual = ["
                    + codigoDaCarteiraDeCobranca
                    + "]");
        default:
          if (tipoDeCobranca == null)
            throw new CampoLivreException("Tipo de cobrança da carteira não foi especificado!");
          else
            throw new CampoLivreException(
                "Tipo de cobrança [" + tipoDeCobranca + "] não é suportado!");
      }
    }

    this.add(
        new Field<Byte>(
            titulo
                .getContaBancaria()
                .getBanco()
                .getCodigoDeCompensacaoBACEN()
                .getCodigo()
                .byteValue(),
            3,
            Filler.ZERO_LEFT));
    this.setFieldsLength(this.size());
    this.setStringLength(23);
    this.add(new Field<Byte>(calculaDuploDV(this.write()), 2, Filler.ZERO_LEFT));
    this.setFieldsLength(this.size());
    this.setStringLength(25);
  }
  @Test
  public void testWrite() throws NotSuporttedBancoException, NotSuporttedCampoLivreException {

    titulo.setNossoNumero("10000000020061732");

    clCaixaSINCO = CampoLivreFactory.create(titulo);

    assertEquals("1000002910000000020061732", clCaixaSINCO.write());
  }
  public static void main(String[] args) {

    /*
     * INFORMANDO DADOS SOBRE O CEDENTE.
     * */
    Pessoa cedente = new Pessoa("Cedente de Teste", "00.000.208/0001-00");

    // Informando dados sobre a conta bancária do cendente.
    Banco banco = BancoSuportado.HSBC.create();
    ContaBancaria contaBancariaCed = new ContaBancaria(banco);
    contaBancariaCed.setNumeroDaConta(new NumeroDaConta(1234567));

    Carteira carteira = new Carteira();
    carteira.setTipoCobranca(TipoDeCobranca.SEM_REGISTRO);
    contaBancariaCed.setCarteira(carteira);
    cedente.addContaBancaria(contaBancariaCed);

    /*
     * INFORMANDO DADOS SOBRE O SACADO.
     * */
    Pessoa sacado = new Pessoa("Martin A. G. Souza", "333.333.333-33");

    // Informando o endereço do sacado.
    Endereco enderecoSac = new Endereco();
    enderecoSac.setLogradouro("Alameda dos Tocantins");
    enderecoSac.setNumero("678");
    enderecoSac.setComplemento("Bloco A Ap.32");
    enderecoSac.setBairro("Centro");
    enderecoSac.setCep(new CEP("59064-120"));
    enderecoSac.setLocalidade("Belo Horizonte");
    enderecoSac.setUF(UnidadeFederativa.MG);
    sacado.addEndereco(enderecoSac);

    /*
     * INFORMANDO OS DADOS SOBRE O TÍTULO.
     * */
    Titulo titulo = new Titulo(contaBancariaCed, sacado, cedente);
    titulo.setNumeroDoDocumento("222");
    titulo.setNossoNumero("222449");
    titulo.setValor(BigDecimal.valueOf(9.65));
    titulo.setDataDoDocumento(DateUtil.parse("05/09/2008"));
    titulo.setDataDoVencimento(DateUtil.parse("25/09/2009"));
    titulo.setAceite(EnumAceite.A);
    titulo.setEnumMoeda(TipoDeMoeda.REAL);
    /*
     * INFORMANDO MAIS DADOS BANCÁRIOS, QUANDO NECESSÁRIO.
     * Dependendo do banco, talvez seja necessário informar mais dados além de:
     *
     * > Valor do título;
     * > Vencimento;
     * > Nosso número;
     * > Código do banco
     * > Data de vencimento;
     * > Agência/Código do cedente;
     * > Código da carteira;
     * > Código da moeda;
     *
     * Definidos como padrão pela FEBRABAN.
     * Verifique na documentação.
     */
    titulo.setDadosBancarios(new DadoBancario() {});

    /*
     * INFORMANDO OS DADOS SOBRE O BOLETO.
     * */
    Boleto boleto = new Boleto(titulo);
    boleto.setLocalPagamento("PAGAR PREFERENCIALMENTE EM AGÊNCIA DO HSBC");
    boleto.setInstrucao1(
        "Após o vencimento cobrar multa de 2,00% e juros de 0,02% por mês de atraso.");
    boleto.setInstrucao3("Até o vencimento conceder desconto de 10%.");
    boleto.setInstrucao5("Não receber após 25/09/2009.");
    /*
     * GERANDO O BOLETO BANCÁRIO.
     * */
    // Instanciando um objeto "BoletoViewer", classe responsável pela geração
    // do boleto bancário.
    BoletoViewer boletoViewer = new BoletoViewer(boleto);

    // Gerando o arquivo. No caso o arquivo mencionado será salvo na mesma
    // pasta do projeto. Outros exemplos:
    // WINDOWS: boletoViewer.getAsPDF("C:/Temp/MeuBoleto.pdf");
    // LINUX: boletoViewer.getAsPDF("/home/temp/MeuBoleto.pdf");
    File arquivoPdf = boletoViewer.getPdfAsFile("MeuPrimeiroBoleto.pdf");

    // Mostrando o boleto gerado na tela.
    mostreBoletoNaTela(arquivoPdf);
  }