java-exercism-exercises/bird-watcher/src/test/java/BirdWatcherTest.java

77 lines
2.1 KiB
Java

import org.junit.Before;
import org.junit.Test;
import static org.assertj.core.api.Assertions.*;
public class BirdWatcherTest {
private static final int DAY1 = 0;
private static final int DAY2 = 2;
private static final int DAY3 = 5;
private static final int DAY4 = 3;
private static final int DAY5 = 7;
private static final int DAY6 = 8;
private static final int TODAY = 4;
private BirdWatcher birdWatcher;
private int lastWeek[] = {DAY1, DAY2, DAY3, DAY4, DAY5, DAY6, TODAY};
@Before
public void setUp() {
birdWatcher = new BirdWatcher(lastWeek);
}
@Test
public void itTestGetLastWeek() {
assertThat(birdWatcher.getLastWeek())
.containsExactly(DAY1, DAY2, DAY3, DAY4, DAY5, DAY6, TODAY);
}
@Test
public void itTestGetToday() {
assertThat(birdWatcher.getToday()).isEqualTo(TODAY);
}
@Test
public void itIncrementTodaysCount() {
birdWatcher.incrementTodaysCount();
assertThat(birdWatcher.getToday()).isEqualTo(TODAY + 1);
}
@Test
public void itHasDayWithoutBirds() {
assertThat(birdWatcher.hasDayWithoutBirds()).isTrue();
}
@Test
public void itShouldNotHaveDaysWithoutBirds() {
birdWatcher = new BirdWatcher(new int[]{1, 2, 5, 3, 7, 8, 4});
assertThat(birdWatcher.hasDayWithoutBirds()).isFalse();
}
@Test
public void itTestGetCountForFirstDays() {
assertThat(birdWatcher.getCountForFirstDays(4)).isEqualTo(DAY1 + DAY2 + DAY3 + DAY4);
}
@Test
public void itTestGetCountForMoreDaysThanTheArraySize() {
assertThat(birdWatcher.getCountForFirstDays(10))
.isEqualTo(DAY1 + DAY2 + DAY3 + DAY4 + DAY5 + DAY6 + TODAY);
}
@Test
public void itTestGetCountForBusyDays() {
// DAY3, DAY5 and DAY6 are all >= 5 birds
assertThat(birdWatcher.getBusyDays()).isEqualTo(3);
}
@Test
public void itShouldNotHaveBusyDays() {
birdWatcher = new BirdWatcher(new int[]{1, 2, 3, 3, 2, 1, 4});
assertThat(birdWatcher.getBusyDays()).isEqualTo(0);
}
}