Package br.com.objectos.comuns.cnab

Source Code of br.com.objectos.comuns.cnab.TesteDeColunaAlfanumerica

/*
* Copyright 2012 Objectos, Fábrica de Software LTDA.
*
* 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.
*/
package br.com.objectos.comuns.cnab;

import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.equalTo;

import org.testng.annotations.Test;

import br.com.objectos.comuns.cnab.obj.Caixa;

/**
* @author marcos.piazzolla@objectos.com.br (Marcos Piazzolla)
*/
@Test
public class TesteDeColunaAlfanumerica {

  private ColunaWriter<String> writer;

  public void deve_formatar_coluna_nome_do_sacado_em_caixa_alta() {
    int inicio = 235;
    int fim = 274;
    String valor = "Fulano de tal";
    Caixa caixa = Caixa.ALTA;
    int tamanho = 40;

    writer = new ColunaAlfanumerica(inicio, fim, caixa).set(valor);
    String res = writer.get();

    assertThat(res.length(), equalTo(tamanho));
    assertThat(res.trim(), equalTo(caixaAlta(valor, tamanho)));
  }

  public void deve_formatar_coluna_endereco_do_sacado_em_caixa_normal() {
    int inicio = 275;
    int fim = 314;
    String valor = "Rua dos fulanos, 244";
    int tamanho = 40;

    writer = new ColunaAlfanumerica(inicio, fim).set(valor);
    String res = writer.get();

    assertThat(res.length(), equalTo(tamanho));
    assertThat(res.trim(), equalTo(caixaNormal(valor, tamanho)));
  }

  public void deve_formatar_digito_de_conta_em_caixa_alta() {
    int inicio = 20;
    int fim = 20;
    String valor = "a";
    Caixa caixa = Caixa.ALTA;
    int tamanho = 1;

    writer = new ColunaAlfanumerica(inicio, fim, caixa).set(valor);
    String res = writer.get();

    assertThat(res.length(), equalTo(tamanho));
    assertThat(res, equalTo(caixaAlta(valor, tamanho)));
  }

  @Test(expectedExceptions = { NullPointerException.class })
  public void caso_texto_for_null_lancar_excecao() {
    int inicio = 0;
    int fim = 10;
    Caixa caixa = Caixa.ALTA;
    String valor = null;

    writer = new ColunaAlfanumerica(inicio, fim, caixa).set(valor);
    writer.get();
  }

  @Test(expectedExceptions = { IllegalArgumentException.class })
  public void caso_texto_for_vazio_lancar_excecao() {
    int inicio = 0;
    int fim = 10;
    String valor = "";

    writer = new ColunaAlfanumerica(inicio, fim).set(valor);
    writer.get();
  }

  public void caso_texto_ultrapasse_largura_truncar_texto() {
    int inicio = 0;
    int fim = 4;
    Caixa caixa = Caixa.BAIXA;
    String valor = "teste-123";
    int tamanho = 5;

    writer = new ColunaAlfanumerica(inicio, fim, caixa).set(valor);
    String res = writer.get();

    assertThat(res.length(), equalTo(tamanho));
    assertThat(res, equalTo("teste"));
  }

  private String caixaAlta(String texto, int largura) {
    return caixaNormal(texto, largura).toUpperCase();
  }

  private String caixaNormal(String texto, int largura) {
    return texto.trim();
  }

}
TOP

Related Classes of br.com.objectos.comuns.cnab.TesteDeColunaAlfanumerica

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.