diff --git a/src/androidTest/java/de/avalax/fitbuddy/FitbuddyAcceptanceTest.java b/src/androidTest/java/de/avalax/fitbuddy/FitbuddyAcceptanceTest.java index 815048eb..c7d156d1 100644 --- a/src/androidTest/java/de/avalax/fitbuddy/FitbuddyAcceptanceTest.java +++ b/src/androidTest/java/de/avalax/fitbuddy/FitbuddyAcceptanceTest.java @@ -297,14 +297,21 @@ public void doWorkout_shouldFinishAfterLastExercise() throws Exception { @Test public void aWorkout_shouldBeDeleted() throws Exception { - persistence.addWorkout(aWorkout().withExercise(anExercise())); + persistence.addWorkout(aWorkout().withName("first").withExercise(anExercise())); + persistence.addWorkout(aWorkout().withName("second").withExercise(anExercise())); + persistence.addWorkout(aWorkout().withName("third").withExercise(anExercise())); activityRule.launchActivity(null); + application.deleteWorkout(1); + application.hasShownWorkoutDetails(0, "first", "Never", "Executed 0 times"); + application.hasShownWorkoutDetails(1, "third", "Never", "Executed 0 times"); + application.deleteWorkout(0); + application.hasShownWorkoutDetails(0, "third", "Never", "Executed 0 times"); + application.deleteWorkout(0); application.hasShownAddNewWorkoutHint(); - application.showsSupportMenuItem(); } @Test diff --git a/src/androidTest/java/de/avalax/fitbuddy/runner/PersistenceRunner.java b/src/androidTest/java/de/avalax/fitbuddy/runner/PersistenceRunner.java index 1c6491ec..3ed891e6 100644 --- a/src/androidTest/java/de/avalax/fitbuddy/runner/PersistenceRunner.java +++ b/src/androidTest/java/de/avalax/fitbuddy/runner/PersistenceRunner.java @@ -32,7 +32,7 @@ public void finishWorkout(Workout workout) throws ResourceException { public void deleteWorkouts() throws ResourceException { List workouts = activityRule.editWorkoutService.loadAllWorkouts(); for (Workout workout : workouts) { - activityRule.editWorkoutService.deleteWorkout(workout); + activityRule.editWorkoutService.deleteWorkout(workout.getWorkoutId()); } if (activityRule.workoutService.hasActiveWorkout()) { diff --git a/src/main/java/de/avalax/fitbuddy/application/edit/workout/EditWorkoutService.java b/src/main/java/de/avalax/fitbuddy/application/edit/workout/EditWorkoutService.java index ec3d1d88..9d2eaf5b 100644 --- a/src/main/java/de/avalax/fitbuddy/application/edit/workout/EditWorkoutService.java +++ b/src/main/java/de/avalax/fitbuddy/application/edit/workout/EditWorkoutService.java @@ -4,6 +4,7 @@ import de.avalax.fitbuddy.domain.model.workout.Workout; import de.avalax.fitbuddy.domain.model.workout.WorkoutException; +import de.avalax.fitbuddy.domain.model.workout.WorkoutId; import de.avalax.fitbuddy.domain.model.workout.WorkoutRepository; public class EditWorkoutService { @@ -15,8 +16,8 @@ public EditWorkoutService( this.workoutRepository = workoutRepository; } - public void deleteWorkout(Workout workout) { - workoutRepository.delete(workout.getWorkoutId()); + public void deleteWorkout(WorkoutId workoutId) { + workoutRepository.delete(workoutId); } public void saveWorkout(Workout workout) throws WorkoutException { diff --git a/src/main/java/de/avalax/fitbuddy/presentation/MainActivity.java b/src/main/java/de/avalax/fitbuddy/presentation/MainActivity.java index b1624b66..b24fdd7f 100644 --- a/src/main/java/de/avalax/fitbuddy/presentation/MainActivity.java +++ b/src/main/java/de/avalax/fitbuddy/presentation/MainActivity.java @@ -87,7 +87,7 @@ public boolean onOptionsItemSelected(MenuItem item) { } if (item.getItemId() == R.id.toolbar_delete_workout) { Workout workout = (Workout) item.getIntent().getSerializableExtra("workout"); - editWorkoutService.deleteWorkout(workout); + editWorkoutService.deleteWorkout(workout.getWorkoutId()); removeWorkoutFromList(workout); mainToolbar(); return true; diff --git a/src/main/java/de/avalax/fitbuddy/presentation/welcome_screen/WorkoutListFragment.java b/src/main/java/de/avalax/fitbuddy/presentation/welcome_screen/WorkoutListFragment.java index c988f51a..1e6c3c18 100644 --- a/src/main/java/de/avalax/fitbuddy/presentation/welcome_screen/WorkoutListFragment.java +++ b/src/main/java/de/avalax/fitbuddy/presentation/welcome_screen/WorkoutListFragment.java @@ -82,7 +82,9 @@ public void removeSelection() { public void removeWorkout(Workout workout) { removeSelection(); - workouts.remove(workout); + int index = workouts.indexOf(workout); + workouts.remove(index); + workoutAdapter.notifyItemRemoved(index); recyclerView.updateEmptyView(); } diff --git a/src/test/java/de/avalax/fitbuddy/application/edit/workout/EditWorkoutServiceTest.java b/src/test/java/de/avalax/fitbuddy/application/edit/workout/EditWorkoutServiceTest.java index a5bcd963..4dda1e40 100644 --- a/src/test/java/de/avalax/fitbuddy/application/edit/workout/EditWorkoutServiceTest.java +++ b/src/test/java/de/avalax/fitbuddy/application/edit/workout/EditWorkoutServiceTest.java @@ -65,7 +65,7 @@ public void saveWorkout_shouldSaveWorkoutInRepository() throws Exception { @Test public void deleteWorkout_shouldRemoveTheWorkoutFromThePersistence() throws Exception { - editWorkoutService.deleteWorkout(workout); + editWorkoutService.deleteWorkout(workoutId); verify(workoutRepository).delete(workoutId); }