package br.com.concretesolutions.canarinho.test;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config;
import br.com.concretesolutions.canarinho.formatador.Formatador;
import br.com.concretesolutions.canarinho.formatador.FormatadorValor;
import br.com.concretesolutions.canarinho.sample.BuildConfig;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.is;
import static org.junit.Assert.fail;
@RunWith(RobolectricTestRunner.class)
@Config(constants = BuildConfig.class, sdk = 22)
public class TesteFormatadorValor {
@Test
public void consegueFormatar() {
assertThat(Formatador.VALOR.formata("1.00"), is("1,00"));
assertThat(Formatador.VALOR.formata("1.0"), is("1,00"));
assertThat(Formatador.VALOR.formata("1"), is("1,00"));
assertThat(Formatador.VALOR.formata("1000"), is("1.000,00"));
assertThat(Formatador.VALOR.formata("1.23"), is("1,23"));
assertThat(Formatador.VALOR.formata("1.233"), is("1,23"));
assertThat(Formatador.VALOR.formata("1.01"), is("1,01"));
assertThat(Formatador.VALOR.formata("1.1"), is("1,10"));
assertThat(Formatador.VALOR.formata("1234.56"), is("1.234,56"));
assertThat(Formatador.VALOR.formata("1234.5"), is("1.234,50"));
}
@Test
public void consegueFormatarComSimbolo() {
assertThat(Formatador.VALOR_COM_SIMBOLO.formata("1.00"), is("R$ 1,00"));
assertThat(Formatador.VALOR_COM_SIMBOLO.formata("1.0"), is("R$ 1,00"));
assertThat(Formatador.VALOR_COM_SIMBOLO.formata("1"), is("R$ 1,00"));
assertThat(Formatador.VALOR_COM_SIMBOLO.formata("1000"), is("R$ 1.000,00"));
assertThat(Formatador.VALOR_COM_SIMBOLO.formata("1.23"), is("R$ 1,23"));
assertThat(Formatador.VALOR_COM_SIMBOLO.formata("1.233"), is("R$ 1,23"));
assertThat(Formatador.VALOR_COM_SIMBOLO.formata("1.01"), is("R$ 1,01"));
assertThat(Formatador.VALOR_COM_SIMBOLO.formata("1.1"), is("R$ 1,10"));
assertThat(Formatador.VALOR_COM_SIMBOLO.formata("1234.56"), is("R$ 1.234,56"));
assertThat(Formatador.VALOR_COM_SIMBOLO.formata("1234.5"), is("R$ 1.234,50"));
}
@Test
public void consegueDesformatar() {
assertThat(Formatador.VALOR.desformata("1,00"), is("1.00"));
assertThat(Formatador.VALOR.desformata("1.234,10"), is("1234.10"));
assertThat(Formatador.VALOR.desformata("0,10"), is("0.10"));
}
@Test
public void consegueDizerSeEstaFormatado() {
assertThat(Formatador.VALOR.estaFormatado("1,00"), is(true));
assertThat(Formatador.VALOR.estaFormatado("1.234,10"), is(true));
assertThat(Formatador.VALOR.estaFormatado("1.34,10"), is(false));
try {
Formatador.VALOR.estaFormatado(null);
fail("Should have thrown!!!");
} catch (IllegalArgumentException e) {
}
}
@Test
public void consegueDizerSePodeFormatar() {
assertThat(Formatador.VALOR.podeSerFormatado("1.00"), is(true));
assertThat(Formatador.VALOR.podeSerFormatado("10"), is(true));
assertThat(Formatador.VALOR.podeSerFormatado("10.1"), is(true));
assertThat(Formatador.VALOR.podeSerFormatado("10,10"), is(false));
try {
Formatador.VALOR.podeSerFormatado(null);
fail("Should have thrown!!!");
} catch (IllegalArgumentException e) {
}
}
}