package de.avalax.fitbuddy.presentation.summary;
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.Collections;
import java.util.List;
import de.avalax.fitbuddy.BuildConfig;
import de.avalax.fitbuddy.R;
import de.avalax.fitbuddy.domain.model.finished_exercise.FinishedExercise;
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.workout.WorkoutId;
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 FinishedWorkoutAdapterTest {
private FinishedWorkoutAdapter finishedWorkoutAdapter;
private FinishedWorkout finishedWorkout;
@Before
public void setUp() throws Exception {
Context context = RuntimeEnvironment.application.getApplicationContext();
List<FinishedWorkout> finishedWorkouts = new ArrayList<>();
finishedWorkout = new BasicFinishedWorkout(new FinishedWorkoutId("42"),new WorkoutId("21"),"name","2014-12-24", Collections.<FinishedExercise>emptyList());
finishedWorkouts.add(finishedWorkout);
finishedWorkoutAdapter = new FinishedWorkoutAdapter(context, R.layout.item_finished_workout, finishedWorkouts);
}
@Test
public void viewHolder_shouldCreateANewViewHolderWithDefaultValues() throws Exception {
View view = finishedWorkoutAdapter.getView(0, null, null);
FinishedWorkoutAdapter.FinishedWorkoutViewHolder viewHolder = (FinishedWorkoutAdapter.FinishedWorkoutViewHolder) view.getTag();
assertThat(viewHolder.name.getText().toString(),equalTo(finishedWorkout.getName()));
assertThat(viewHolder.date.getText().toString(),equalTo("2014-12-24"));
}
@Test
public void viewHolder_shouldReuseViewHolderWithDefaultValues() throws Exception {
View view = finishedWorkoutAdapter.getView(0, null, null);
View reusedView = finishedWorkoutAdapter.getView(0, view, null);
assertThat(reusedView,equalTo(view));
}
}