Classe Funcionário
public class Funcionario {
private String nome;
private LocalDate dataAdmissao;
private BigDecimal salario;
public Funcionario(String nome, LocalDate dataAdmissao, BigDecimal salario) {
this.nome = nome;
this.dataAdmissao = dataAdmissao;
this.salario = salario.setScale(2, RoundingMode.HALF_UP);
}
public String getNome() {
return nome;
}
public LocalDate getDataAdmissao() {
return dataAdmissao;
}
public BigDecimal getSalario() {
return salario;
}
}
Classe BonusService
public class BonusService {
public BigDecimal calcularBonus(Funcionario funcionario) {
BigDecimal valor = funcionario.getSalario().multiply(new BigDecimal("0.1"));
if (valor.compareTo(new BigDecimal("1000")) > 0) {
valor = BigDecimal.ZERO;
}
return valor;
}
}
Classe BonusServiceTest
class BonusServiceTest {
@Test
void bonusZero() {
Funcionario funcionario = new Funcionario("Luccas", LocalDate.now(), new BigDecimal(1000));
BonusService service = new BonusService();
BigDecimal bonus = service.calcularBonus(funcionario);
System.out.println(bonus);
System.out.println(funcionario.getSalario());
assertEquals(BigDecimal.ZERO, bonus);
}
}
Quando rodo o test em algumas situaçoes o bonus vem com 3 casas decimais pq?? e o getSalario vem com 2 em todas que eu fiz