package de.avalax.fitbuddy.presentation.edit.workout;
import android.content.Context;
import android.view.View;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import de.avalax.fitbuddy.BuildConfig;
import de.avalax.fitbuddy.R;
import de.avalax.fitbuddy.domain.model.exercise.BasicExercise;
import de.avalax.fitbuddy.domain.model.exercise.Exercise;
import de.avalax.fitbuddy.presentation.helper.ExerciseViewHelper;
import static org.hamcrest.CoreMatchers.equalTo;
import static org.junit.Assert.assertThat;
@RunWith(RobolectricTestRunner.class)
@Config(constants = BuildConfig.class, manifest = "src/main/AndroidManifest.xml", sdk=21)
public class ExerciseAdapterTest {
private ExerciseAdapter exerciseAdapter;
private Exercise exercise;
@Before
public void setUp() throws Exception {
Context context = RuntimeEnvironment.application.getApplicationContext();
List<Exercise> exercises = new ArrayList<>();
exercise = new BasicExercise();
exercises.add(exercise);
exerciseAdapter = new ExerciseAdapter(context, R.layout.item_exercise, exercises);
exerciseAdapter.exerciseViewHelper = new ExerciseViewHelper(Locale.ENGLISH);
}
@Test
public void viewHolder_shouldCreateANewViewHolderWithDefaultValues() throws Exception {
View view = exerciseAdapter.getView(0, null, null);
ExerciseAdapter.ExerciseViewHolder viewHolder = (ExerciseAdapter.ExerciseViewHolder) view.getTag();
assertThat(viewHolder.name.getText().toString(),equalTo(exerciseAdapter.exerciseViewHelper.nameOfExercise(exercise)));
assertThat(viewHolder.reps.getText().toString(),equalTo(String.valueOf(exerciseAdapter.exerciseViewHelper.maxRepsOfExercise(exercise))));
assertThat(viewHolder.sets.getText().toString(),equalTo(String.valueOf(exerciseAdapter.exerciseViewHelper.setCountOfExercise(exercise))));
assertThat(viewHolder.weight.getText().toString(),equalTo(exerciseAdapter.exerciseViewHelper.weightOfExercise(exercise)));
}
@Test
public void viewHolder_shouldReuseViewHolderWithDefaultValues() throws Exception {
View view = exerciseAdapter.getView(0, null, null);
View reusedView = exerciseAdapter.getView(0, view, null);
assertThat(reusedView,equalTo(view));
}
}