public class AnoBissexto {
public boolean ehBissexto(int anoInt) {
Ano ano = new Ano(anoInt);
if ((ano.ehMultiploDe(4) && !ano.ehMultiploDe(100)) || ano.ehMultiploDe(400)) {
return true;
}
return false;
}
private class Ano {
private int ano;
public Ano(int ano) {
this.ano = ano;
}
public boolean ehMultiploDe(int divisor) {
return ano % divisor == 0;
}
}
}
public class AnoBissextoTest {
@Test
public void deveSerMultiploDe4() {
assertEquals(true, new AnoBissexto().ehBissexto(16));
}
@Test
public void naoDeveSerMultiploDe100ExcetoQuandoMultiploDe400() {
assertEquals(true, new AnoBissexto().ehBissexto(800));
assertEquals(false, new AnoBissexto().ehBissexto(500));
}
}