From ec2492ad8c3e7e98224a2c9c0967db95446d268d Mon Sep 17 00:00:00 2001 From: Benjamin Date: Thu, 14 Dec 2017 00:55:09 +0100 Subject: [PATCH] added PersistenceRunner --- .../fitbuddy/FitbuddyAcceptanceTest.java | 57 +++++++++++++++---- .../runner/FitbuddyActivityTestRule.java | 35 +----------- .../fitbuddy/runner/PersistenceRunner.java | 39 +++++++++++++ .../domain/model/workout/BasicWorkout.java | 2 +- 4 files changed, 89 insertions(+), 44 deletions(-) create mode 100644 src/androidTest/java/de/avalax/fitbuddy/runner/PersistenceRunner.java diff --git a/src/androidTest/java/de/avalax/fitbuddy/FitbuddyAcceptanceTest.java b/src/androidTest/java/de/avalax/fitbuddy/FitbuddyAcceptanceTest.java index fff6b230..d10272d0 100644 --- a/src/androidTest/java/de/avalax/fitbuddy/FitbuddyAcceptanceTest.java +++ b/src/androidTest/java/de/avalax/fitbuddy/FitbuddyAcceptanceTest.java @@ -9,15 +9,23 @@ import org.junit.Test; import org.junit.runner.RunWith; +import de.avalax.fitbuddy.domain.model.exercise.BasicExercise; +import de.avalax.fitbuddy.domain.model.exercise.Exercise; +import de.avalax.fitbuddy.domain.model.set.BasicSet; +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 de.avalax.fitbuddy.presentation.MainActivity; import de.avalax.fitbuddy.runner.ApplicationRunner; import de.avalax.fitbuddy.runner.FitbuddyActivityTestRule; +import de.avalax.fitbuddy.runner.PersistenceRunner; @RunWith(AndroidJUnit4.class) @LargeTest public class FitbuddyAcceptanceTest { - private ApplicationRunner application = new ApplicationRunner(); + private ApplicationRunner application; + private PersistenceRunner persistence; @Rule public FitbuddyActivityTestRule activityRule = new FitbuddyActivityTestRule( @@ -25,11 +33,14 @@ public class FitbuddyAcceptanceTest { @Before public void setUp() throws Exception { - activityRule.launchActivity(null); + application = new ApplicationRunner(); + persistence = new PersistenceRunner(activityRule); } @Test public void initialStart_shouldShowEmptyStartFragment() throws Exception { + activityRule.launchActivity(null); + application.showsStartBottomNavAsActive(); application.hasShownAddNewWorkoutHint(); application.showsSupportMenuItem(); @@ -39,6 +50,8 @@ public void initialStart_shouldShowEmptyStartFragment() throws Exception { @Test public void newWorkout_shouldBeDisplayed() throws Exception { + activityRule.launchActivity(null); + application.addWorkout("new workout"); application.hasShownAddNewExerciseHint(); @@ -60,13 +73,19 @@ public void newWorkout_shouldBeDisplayed() throws Exception { @Test public void existingWorkout_shouldDisplayChanges() throws Exception { - //TODO: use provider for arrange - application.addWorkout("old workout"); - application.addExercise("old exercise"); - application.addSet("15", "42.5"); - application.saveSet(); - application.saveExercise(); - application.saveWorkout(); + //TODO: use builder for arrange + Set set = new BasicSet(); + set.setWeight(42.5); + set.setMaxReps(15); + Exercise exercise = new BasicExercise(); + exercise.getSets().add(set); + exercise.setName("old exercise"); + Workout workout = new BasicWorkout(); + workout.setName("old workout"); + workout.getExercises().add(exercise); + persistence.addWorkout(workout); + + activityRule.launchActivity(null); application.editWorkout(0); application.hasShownOldWorkoutNameInEditView("old workout"); @@ -91,6 +110,8 @@ public void existingWorkout_shouldDisplayChanges() throws Exception { @Test public void existingWorkout_shouldNotSaveExerciseWithoutSets() throws Exception { + activityRule.launchActivity(null); + //TODO: use provider for arrange application.addWorkout("old workout"); application.addExercise("old exercise"); @@ -119,6 +140,8 @@ public void existingWorkout_shouldNotSaveExerciseWithoutSets() throws Exception @Test public void existingWorkout_shouldNotSaveWorkoutWithoutExercises() throws Exception { + activityRule.launchActivity(null); + //TODO: use provider for arrange application.addWorkout("old workout"); application.addExercise("first exercise"); @@ -148,6 +171,8 @@ public void existingWorkout_shouldNotSaveWorkoutWithoutExercises() throws Except @Test public void existingWorkout_shouldBeDeleted() throws Exception { + activityRule.launchActivity(null); + //TODO: use provider for arrange application.addWorkout("a workout"); application.addExercise("an exercise"); @@ -164,6 +189,8 @@ public void existingWorkout_shouldBeDeleted() throws Exception { @Test public void activeWorkoutGiven_shouldNavigateBetweenFragments() throws Exception { + activityRule.launchActivity(null); + //TODO: use provider for arrange application.addWorkout("a workout"); application.addExercise("an exercise"); @@ -199,6 +226,8 @@ public void activeWorkoutGiven_shouldNavigateBetweenFragments() throws Exception @Test public void doWorkout_shouldDisplaySwipeEvents() throws Exception { + activityRule.launchActivity(null); + //TODO: use provider for arrange application.addWorkout("a workout"); application.addExercise("first exercise"); @@ -241,6 +270,8 @@ public void doWorkout_shouldDisplaySwipeEvents() throws Exception { @Test public void doWorkout_shouldFinishAfterLastExercise() throws Exception { + activityRule.launchActivity(null); + //TODO: use provider for arrange application.addWorkout("a workout"); application.addExercise("only one exercise"); @@ -265,6 +296,8 @@ public void doWorkout_shouldFinishAfterLastExercise() throws Exception { @Test public void aFinishedWorkout_shouldSeeDetailOverSummary() throws Exception { + activityRule.launchActivity(null); + //TODO: use provider for arrange application.addWorkout("a workout"); application.addExercise("only one exercise"); @@ -284,6 +317,8 @@ public void aFinishedWorkout_shouldSeeDetailOverSummary() throws Exception { @Test public void aFinishedWorkout_shouldBeDeleted() throws Exception { + activityRule.launchActivity(null); + //TODO: use provider for arrange application.addWorkout("a workout"); application.addExercise("only one exercise"); @@ -303,7 +338,7 @@ public void aFinishedWorkout_shouldBeDeleted() throws Exception { @After public void tearDown() throws Exception { - activityRule.deleteWorkouts(); - activityRule.deleteFinishedWorkouts(); + persistence.deleteWorkouts(); + persistence.deleteFinishedWorkouts(); } } diff --git a/src/androidTest/java/de/avalax/fitbuddy/runner/FitbuddyActivityTestRule.java b/src/androidTest/java/de/avalax/fitbuddy/runner/FitbuddyActivityTestRule.java index 2b4d1cc0..b04a792d 100644 --- a/src/androidTest/java/de/avalax/fitbuddy/runner/FitbuddyActivityTestRule.java +++ b/src/androidTest/java/de/avalax/fitbuddy/runner/FitbuddyActivityTestRule.java @@ -1,20 +1,15 @@ package de.avalax.fitbuddy.runner; -import android.support.test.InstrumentationRegistry; import android.support.test.rule.ActivityTestRule; -import java.util.List; - import javax.inject.Inject; import de.avalax.fitbuddy.application.edit.workout.EditWorkoutApplicationService; import de.avalax.fitbuddy.application.summary.FinishedWorkoutApplicationService; import de.avalax.fitbuddy.application.workout.WorkoutApplicationService; -import de.avalax.fitbuddy.domain.model.ResourceException; -import de.avalax.fitbuddy.domain.model.finished_workout.FinishedWorkout; -import de.avalax.fitbuddy.domain.model.workout.Workout; import de.avalax.fitbuddy.presentation.MainActivity; +import static android.support.test.InstrumentationRegistry.getTargetContext; import static de.avalax.fitbuddy.runner.TestFitbuddyApplication.TestComponent; public class FitbuddyActivityTestRule extends ActivityTestRule { @@ -27,32 +22,8 @@ public class FitbuddyActivityTestRule extends ActivityTestRule { public FitbuddyActivityTestRule(Class activityClass) { super(activityClass, false, false); - TestFitbuddyApplication application = (TestFitbuddyApplication) InstrumentationRegistry.getTargetContext().getApplicationContext(); + TestFitbuddyApplication application = + (TestFitbuddyApplication) getTargetContext().getApplicationContext(); ((TestComponent) application.getComponent()).inject(this); } - - @Override - protected void afterActivityLaunched() { - super.afterActivityLaunched(); - } - - public void deleteWorkouts() throws Exception { - List workouts = editWorkoutApplicationService.loadAllWorkouts(); - for (Workout workout : workouts) { - editWorkoutApplicationService.deleteWorkout(workout); - } - - try { - workoutApplicationService.finishCurrentWorkout(); - } catch (ResourceException ignored) { - - } - } - - public void deleteFinishedWorkouts() { - List workouts = finishedWorkoutApplicationService.loadAllFinishedWorkouts(); - for (FinishedWorkout finishedWorkout : workouts) { - finishedWorkoutApplicationService.delete(finishedWorkout); - } - } } diff --git a/src/androidTest/java/de/avalax/fitbuddy/runner/PersistenceRunner.java b/src/androidTest/java/de/avalax/fitbuddy/runner/PersistenceRunner.java new file mode 100644 index 00000000..234b42a5 --- /dev/null +++ b/src/androidTest/java/de/avalax/fitbuddy/runner/PersistenceRunner.java @@ -0,0 +1,39 @@ +package de.avalax.fitbuddy.runner; + +import java.util.List; + +import de.avalax.fitbuddy.domain.model.ResourceException; +import de.avalax.fitbuddy.domain.model.finished_workout.FinishedWorkout; +import de.avalax.fitbuddy.domain.model.workout.Workout; + +public class PersistenceRunner { + private FitbuddyActivityTestRule activityRule; + + public PersistenceRunner(FitbuddyActivityTestRule activityRule) { + this.activityRule = activityRule; + } + + public void addWorkout(Workout workout) { + activityRule.editWorkoutApplicationService.saveWorkout(workout); + } + + public void deleteWorkouts() { + List workouts = activityRule.editWorkoutApplicationService.loadAllWorkouts(); + for (Workout workout : workouts) { + activityRule.editWorkoutApplicationService.deleteWorkout(workout); + } + + try { + activityRule.workoutApplicationService.finishCurrentWorkout(); + } catch (ResourceException ignored) { + + } + } + + public void deleteFinishedWorkouts() { + List workouts = activityRule.finishedWorkoutApplicationService.loadAllFinishedWorkouts(); + for (FinishedWorkout finishedWorkout : workouts) { + activityRule.finishedWorkoutApplicationService.delete(finishedWorkout); + } + } +} diff --git a/src/main/java/de/avalax/fitbuddy/domain/model/workout/BasicWorkout.java b/src/main/java/de/avalax/fitbuddy/domain/model/workout/BasicWorkout.java index 7b874fae..a363ccda 100644 --- a/src/main/java/de/avalax/fitbuddy/domain/model/workout/BasicWorkout.java +++ b/src/main/java/de/avalax/fitbuddy/domain/model/workout/BasicWorkout.java @@ -20,7 +20,7 @@ public BasicWorkout(WorkoutId workoutId, String name, List exercises) } public BasicWorkout() { - this.exercises = new BasicExercises(new ArrayList()); + this.exercises = new BasicExercises(new ArrayList<>()); this.name = ""; }