package de.avalax.fitbuddy.application.summary; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; import java.util.ArrayList; import java.util.List; import de.avalax.fitbuddy.domain.model.finished_workout.FinishedWorkout; import de.avalax.fitbuddy.domain.model.finished_workout.FinishedWorkoutRepository; import static org.hamcrest.collection.IsEmptyCollection.emptyCollectionOf; import static org.hamcrest.collection.IsIterableContainingInAnyOrder.containsInAnyOrder; import static org.junit.Assert.assertThat; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @RunWith(MockitoJUnitRunner.class) public class FinishedWorkoutApplicationServiceTest { private FinishedWorkoutApplicationService finishedWorkoutApplicationService; private List<FinishedWorkout> finishedWorkoutsFromRepository; @Mock private FinishedWorkoutRepository finishedWorkoutRepository; @Before public void setUp() throws Exception { finishedWorkoutApplicationService = new FinishedWorkoutApplicationService(finishedWorkoutRepository); finishedWorkoutsFromRepository = new ArrayList<>(); when(finishedWorkoutRepository.loadAll()).thenReturn(finishedWorkoutsFromRepository); } @Test public void noFinishedWorkouts_shouldReturnEmptyList() throws Exception { List<FinishedWorkout> finishedWorkouts = finishedWorkoutApplicationService.allFinishedWorkouts(); assertThat(finishedWorkouts, emptyCollectionOf(FinishedWorkout.class)); } @Test public void finishedWorkouts_shouldReturnListFromRepository() throws Exception { finishedWorkoutsFromRepository.add(mock(FinishedWorkout.class)); finishedWorkoutsFromRepository.add(mock(FinishedWorkout.class)); List<FinishedWorkout> finishedWorkouts = finishedWorkoutApplicationService.allFinishedWorkouts(); assertThat(finishedWorkouts, containsInAnyOrder(finishedWorkoutsFromRepository.toArray())); } }