Skip to content

Commit

Permalink
added PersistenceRunner
Browse files Browse the repository at this point in the history
  • Loading branch information
avalax committed Dec 13, 2017
1 parent a1d4484 commit ec2492a
Show file tree
Hide file tree
Showing 4 changed files with 89 additions and 44 deletions.
57 changes: 46 additions & 11 deletions src/androidTest/java/de/avalax/fitbuddy/FitbuddyAcceptanceTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,27 +9,38 @@
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(
MainActivity.class);

@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();
Expand All @@ -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();

Expand All @@ -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");
Expand All @@ -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");
Expand Down Expand Up @@ -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");
Expand Down Expand Up @@ -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");
Expand All @@ -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");
Expand Down Expand Up @@ -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");
Expand Down Expand Up @@ -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");
Expand All @@ -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");
Expand All @@ -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");
Expand All @@ -303,7 +338,7 @@ public void aFinishedWorkout_shouldBeDeleted() throws Exception {

@After
public void tearDown() throws Exception {
activityRule.deleteWorkouts();
activityRule.deleteFinishedWorkouts();
persistence.deleteWorkouts();
persistence.deleteFinishedWorkouts();
}
}
Original file line number Diff line number Diff line change
@@ -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<MainActivity> {
Expand All @@ -27,32 +22,8 @@ public class FitbuddyActivityTestRule extends ActivityTestRule<MainActivity> {

public FitbuddyActivityTestRule(Class<MainActivity> 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<Workout> workouts = editWorkoutApplicationService.loadAllWorkouts();
for (Workout workout : workouts) {
editWorkoutApplicationService.deleteWorkout(workout);
}

try {
workoutApplicationService.finishCurrentWorkout();
} catch (ResourceException ignored) {

}
}

public void deleteFinishedWorkouts() {
List<FinishedWorkout> workouts = finishedWorkoutApplicationService.loadAllFinishedWorkouts();
for (FinishedWorkout finishedWorkout : workouts) {
finishedWorkoutApplicationService.delete(finishedWorkout);
}
}
}
Original file line number Diff line number Diff line change
@@ -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<Workout> workouts = activityRule.editWorkoutApplicationService.loadAllWorkouts();
for (Workout workout : workouts) {
activityRule.editWorkoutApplicationService.deleteWorkout(workout);
}

try {
activityRule.workoutApplicationService.finishCurrentWorkout();
} catch (ResourceException ignored) {

}
}

public void deleteFinishedWorkouts() {
List<FinishedWorkout> workouts = activityRule.finishedWorkoutApplicationService.loadAllFinishedWorkouts();
for (FinishedWorkout finishedWorkout : workouts) {
activityRule.finishedWorkoutApplicationService.delete(finishedWorkout);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ public BasicWorkout(WorkoutId workoutId, String name, List<Exercise> exercises)
}

public BasicWorkout() {
this.exercises = new BasicExercises(new ArrayList<Exercise>());
this.exercises = new BasicExercises(new ArrayList<>());
this.name = "";
}

Expand Down

0 comments on commit ec2492a

Please sign in to comment.