From e8ca79efa7cf466ca2a79ed866fa8160d51a3f4d Mon Sep 17 00:00:00 2001 From: Benjamin Date: Sun, 20 May 2018 23:33:46 +0200 Subject: [PATCH] added UnitTest for EditSetViewModel --- build.gradle | 3 +- .../edit/set/EditSetViewModelTest.java | 63 +++++++++++++++++++ 2 files changed, 65 insertions(+), 1 deletion(-) create mode 100644 src/test/java/de/avalax/fitbuddy/presentation/edit/set/EditSetViewModelTest.java diff --git a/build.gradle b/build.gradle index 6a34172a..a4459eee 100644 --- a/build.gradle +++ b/build.gradle @@ -162,7 +162,8 @@ task jacocoTestReport(type: JacocoReport, dependsOn: ['testDebugUnitTest']) { '**/*Adapter.class', '**/*Holder.class', '**/*Listener*.class', - '**databinding**'] + '**/*Binding*.class', + '**/DataBinderMapperImpl*.class'] ) sourceDirectories = files('src/main/java') diff --git a/src/test/java/de/avalax/fitbuddy/presentation/edit/set/EditSetViewModelTest.java b/src/test/java/de/avalax/fitbuddy/presentation/edit/set/EditSetViewModelTest.java new file mode 100644 index 00000000..ecb48b63 --- /dev/null +++ b/src/test/java/de/avalax/fitbuddy/presentation/edit/set/EditSetViewModelTest.java @@ -0,0 +1,63 @@ +package de.avalax.fitbuddy.presentation.edit.set; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; +import org.robolectric.RobolectricTestRunner; +import org.robolectric.annotation.Config; + +import de.avalax.fitbuddy.BuildConfig; +import de.avalax.fitbuddy.domain.model.set.Set; +import de.avalax.fitbuddy.presentation.edit.exercise.EditExerciseViewHelper; + +import static org.assertj.core.api.AssertionsForClassTypes.assertThat; +import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.verify; + +@RunWith(RobolectricTestRunner.class) +@Config(constants = BuildConfig.class) +public class EditSetViewModelTest { + + @Mock + private Set set; + + @Mock + private EditExerciseViewHelper editExerciseViewHelper; + private EditSetViewModel editSetViewModel; + + @Before + public void setUp() throws Exception { + MockitoAnnotations.initMocks(this); + doReturn("42.0 kg").when(editExerciseViewHelper).weightFrom(set); + doReturn("12 reps").when(editExerciseViewHelper).repsFrom(set); + editSetViewModel = new EditSetViewModel(); + } + + @Test + public void onInit_shouldSetWeightAndReps() { + editSetViewModel.init(editExerciseViewHelper, set); + + assertThat(editSetViewModel.getWeight().getValue()).isEqualTo("42.0 kg"); + assertThat(editSetViewModel.getReps().getValue()).isEqualTo("12 reps"); + } + + @Test + public void updateWeight_shouldSetWeight() { + editSetViewModel.init(editExerciseViewHelper, set); + + editSetViewModel.setWeight(21.5); + + verify(editSetViewModel.getSet()).setWeight(21.5); + } + + @Test + public void updateReps_shouldSetMapReps() { + editSetViewModel.init(editExerciseViewHelper, set); + + editSetViewModel.setReps(15); + + verify(editSetViewModel.getSet()).setMaxReps(15); + } +} \ No newline at end of file