Skip to content

Commit

Permalink
added size method for performance
Browse files Browse the repository at this point in the history
  • Loading branch information
avalax committed Dec 6, 2017
1 parent e83af24 commit b8c05ac
Show file tree
Hide file tree
Showing 6 changed files with 38 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -25,4 +25,8 @@ public FinishedWorkout load(FinishedWorkoutId finishedWorkoutId) throws Finished
public void delete(FinishedWorkout finishedWorkout) {
finishedWorkoutRepository.delete(finishedWorkout.getFinishedWorkoutId());
}

public boolean hasFinishedWorkouts() {
return finishedWorkoutRepository.size() > 0;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,6 @@ public interface FinishedWorkoutRepository {
List<FinishedWorkout> loadAll();

void delete(FinishedWorkoutId finishedWorkoutId);

long size();
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import android.content.ContentValues;
import android.database.Cursor;
import android.database.DatabaseUtils;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

Expand All @@ -13,8 +14,8 @@
import de.avalax.fitbuddy.domain.model.finished_exercise.FinishedExerciseRepository;
import de.avalax.fitbuddy.domain.model.finished_workout.BasicFinishedWorkout;
import de.avalax.fitbuddy.domain.model.finished_workout.FinishedWorkout;
import de.avalax.fitbuddy.domain.model.finished_workout.FinishedWorkoutId;
import de.avalax.fitbuddy.domain.model.finished_workout.FinishedWorkoutException;
import de.avalax.fitbuddy.domain.model.finished_workout.FinishedWorkoutId;
import de.avalax.fitbuddy.domain.model.finished_workout.FinishedWorkoutRepository;
import de.avalax.fitbuddy.domain.model.workout.Workout;
import de.avalax.fitbuddy.domain.model.workout.WorkoutId;
Expand Down Expand Up @@ -93,6 +94,14 @@ public void delete(FinishedWorkoutId finishedWorkoutId) {
database.close();
}

@Override
public long size() {
SQLiteDatabase db = sqLiteOpenHelper.getReadableDatabase();
long size = DatabaseUtils.queryNumEntries(db, TABLE_FINISHED_WORKOUT);
db.close();
return size;
}

private FinishedWorkout createFinishedWorkout(Cursor cursor) {
FinishedWorkoutId finishedWorkoutId = new FinishedWorkoutId(cursor.getString(0));
WorkoutId workoutId = new WorkoutId(cursor.getString(1));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,9 +62,7 @@ public void updateBottomNavigation() {
MenuItem itemWorkout = bottomNavigation.getMenu().getItem(1);
MenuItem itemFinishedWorkout = bottomNavigation.getMenu().getItem(2);
itemWorkout.setEnabled(workoutApplicationService.hasActiveWorkout());
// TODO: performance
boolean enabled = !finishedWorkoutApplicationService.loadAllFinishedWorkouts().isEmpty();
itemFinishedWorkout.setEnabled(enabled);
itemFinishedWorkout.setEnabled(finishedWorkoutApplicationService.hasFinishedWorkouts());
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,12 @@
import java.util.ArrayList;
import java.util.List;

import de.avalax.fitbuddy.domain.model.finished_workout.BasicFinishedWorkout;
import de.avalax.fitbuddy.domain.model.finished_workout.BasicFinishedWorkoutBuilder;
import de.avalax.fitbuddy.domain.model.finished_workout.FinishedWorkout;
import de.avalax.fitbuddy.domain.model.finished_workout.FinishedWorkoutException;
import de.avalax.fitbuddy.domain.model.finished_workout.FinishedWorkoutId;
import de.avalax.fitbuddy.domain.model.finished_workout.FinishedWorkoutRepository;

import static de.avalax.fitbuddy.domain.model.finished_workout.BasicFinishedWorkoutBuilder.*;
import static de.avalax.fitbuddy.domain.model.finished_workout.BasicFinishedWorkoutBuilder.aFinishedWorkout;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.doThrow;
Expand All @@ -43,16 +41,19 @@ public void noFinishedWorkouts_shouldReturnEmptyList() throws Exception {
List<FinishedWorkout> finishedWorkouts = finishedWorkoutApplicationService.loadAllFinishedWorkouts();

assertThat(finishedWorkouts).isEmpty();
assertThat(finishedWorkoutApplicationService.hasFinishedWorkouts()).isFalse();
}

@Test
public void finishedWorkouts_shouldReturnListFromRepository() throws Exception {
finishedWorkoutsFromRepository.add(mock(FinishedWorkout.class));
finishedWorkoutsFromRepository.add(mock(FinishedWorkout.class));
when(finishedWorkoutRepository.size()).thenReturn((long) finishedWorkoutsFromRepository.size());

List<FinishedWorkout> finishedWorkouts = finishedWorkoutApplicationService.loadAllFinishedWorkouts();

assertThat(finishedWorkouts).containsAll(finishedWorkoutsFromRepository);
assertThat(finishedWorkoutApplicationService.hasFinishedWorkouts()).isTrue();
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ public void saveWorkout_shouldInsertWorkoutWithNewFinishedWorkoutId() throws Exc
}

@Test
public void saveWorkout_shouldInsertWorkoutInformationsIntoDatabase() throws Exception {
public void saveWorkout_shouldInsertWorkoutInformationIntoDatabase() throws Exception {
FinishedWorkoutId finishedWorkoutId = finishedWorkoutRepository.saveWorkout(workout);

FinishedWorkout finishedWorkout = finishedWorkoutRepository.load(finishedWorkoutId);
Expand All @@ -78,6 +78,22 @@ public void saveWorkout_shouldInsertWorkoutInformationsIntoDatabase() throws Exc
assertThat(finishedWorkout.getCreated(), any(String.class));
}

@Test
public void emptyTable_shouldReturnSizeFromTable() throws Exception {
long size = finishedWorkoutRepository.size();

assertThat(size, equalTo(0L));
}

@Test
public void oneWorkoutSaved_shouldReturnSizeFromTable() throws Exception {
finishedWorkoutRepository.saveWorkout(workout);

long size = finishedWorkoutRepository.size();

assertThat(size, equalTo(1L));
}

@Test
public void saveWorkout_shouldAlsoInsertExerciseInformationsIntoDatabase() throws Exception {
Exercise exercise = workout.getExercises().createExercise();
Expand Down

0 comments on commit b8c05ac

Please sign in to comment.