Conclui o desafio proposto pelo professor e quero saber se esta correto.
package br.com.alura.tdd.service;
import static org.junit.jupiter.api.Assertions.assertEquals;
import java.math.BigDecimal;
import java.time.LocalDate;
import org.junit.jupiter.api.Test;
import br.com.alura.tdd.modelo.Desempenho;
import br.com.alura.tdd.modelo.Funcionario;
public class ReajusteServiceTest {
@Test
public void reajusteDeveriaSerDeTresPorcentoQuandoDesempenhoForADesejar() {
ReajusteService service = new ReajusteService();
Funcionario funcionario = new Funcionario("Ana", LocalDate.now(), new BigDecimal("1000.00"));
service.concederReajuste(funcionario, Desempenho.A_DESEJAR);
assertEquals(new BigDecimal("1030.00"), funcionario.getSalario());
}
@Test
public void reajusteDeveriaSerDeQuinzePorcentoQuandoDesempenhoForBom() {
ReajusteService service = new ReajusteService();
Funcionario funcionario = new Funcionario("Ana", LocalDate.now(), new BigDecimal("1000.00"));
service.concederReajuste(funcionario, Desempenho.A_DESEJAR);
assertEquals(new BigDecimal("1030.00"), funcionario.getSalario());
}
@Test
public void reajusteDeveriaSerDeVintePorcentoQuandoDesempenhoForOtimo() {
ReajusteService service = new ReajusteService();
Funcionario funcionario = new Funcionario("Ana", LocalDate.now(), new BigDecimal("1000.00"));
service.concederReajuste(funcionario, Desempenho.A_DESEJAR);
assertEquals(new BigDecimal("1030.00"), funcionario.getSalario());
}
}
package br.com.alura.tdd.service;
import java.math.BigDecimal;
import br.com.alura.tdd.modelo.Desempenho;
import br.com.alura.tdd.modelo.Funcionario;
public class ReajusteService {
public void concederReajuste(Funcionario funcionario, Desempenho desempenho) {
if (desempenho == Desempenho.A_DESEJAR) {
BigDecimal reajuste = funcionario.getSalario().multiply(new BigDecimal("0.03"));
funcionario.reajustarSalario(reajuste);
} else if (desempenho == Desempenho.BOM) {
BigDecimal reajuste = funcionario.getSalario().multiply(new BigDecimal("0.15"));
funcionario.reajustarSalario(reajuste);
} else {
BigDecimal reajuste = funcionario.getSalario().multiply(new BigDecimal("0.20"));
funcionario.reajustarSalario(reajuste);
}
}
}
package br.com.alura.tdd.modelo;
public enum Desempenho {
A_DESEJAR, BOM, OTIMO;
}
Tudo ok?