package de.avalax.fitbuddy.port.adapter.service; import org.junit.Before; import org.junit.Test; import de.avalax.fitbuddy.domain.model.exercise.Exercise; import de.avalax.fitbuddy.domain.model.set.Set; import de.avalax.fitbuddy.domain.model.workout.BasicWorkout; import de.avalax.fitbuddy.domain.model.workout.Workout; import static org.hamcrest.CoreMatchers.equalTo; import static org.junit.Assert.assertThat; public class WorkoutToJsonAdapterTest { private WorkoutToJsonAdapter workoutToJsonAdapter; private Workout workout; @Before public void setUp() throws Exception { workoutToJsonAdapter = new WorkoutToJsonAdapter(); workout = new BasicWorkout(); } @Test public void emptyWorkout_shouldReturnJson() throws Exception { String json = workoutToJsonAdapter.fromWorkout(workout); assertThat(json, equalTo("[\"\",[]]")); } @Test public void emptyWorkoutWithName_shouldReturnJson() throws Exception { workout.setName("nameOfWorkout"); String json = workoutToJsonAdapter.fromWorkout(workout); assertThat(json, equalTo("[\"nameOfWorkout\",[]]")); } @Test public void workoutWithOneExerciseAndNoSets_shouldReturnJson() throws Exception { workout.setName("nameOfWorkout"); Exercise exercise = workout.getExercises().createExercise(); String json = workoutToJsonAdapter.fromWorkout(workout); assertThat(json, equalTo("[\"nameOfWorkout\",[[\"\",[]]]]")); } @Test public void workoutWithOneExerciseWithNameAndOneSet_shouldReturnJson() throws Exception { workout.setName("nameOfWorkout"); workout.getExercises().createExercise(); Exercise exercise = workout.getExercises().get(0); exercise.setName("bankdrücken"); Set set = exercise.getSets().createSet(); set.setMaxReps(15); set.setWeight(42); String json = workoutToJsonAdapter.fromWorkout(workout); assertThat(json, equalTo("[\"nameOfWorkout\",[[\"bankdrücken\",[[42.0,15]]]]]")); } }