package de.saring.sportstracker.gui.dialogs;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
import java.time.LocalDate;
import de.saring.sportstracker.data.EntryFilter;
import org.junit.Before;
import org.junit.Test;
import de.saring.sportstracker.data.Equipment;
import de.saring.sportstracker.data.Exercise;
import de.saring.sportstracker.data.SportSubType;
import de.saring.sportstracker.data.SportType;
/**
* Unit tests of class FilterViewModel.
*
* @author Stefan Saring
*/
public class FilterViewModelTest {
private EntryFilter entryFilter;
@Before
public void setUp() {
entryFilter = new EntryFilter();
entryFilter.setDateStart(LocalDate.of(2014, 10, 1));
entryFilter.setDateEnd(LocalDate.of(2014, 10, 31));
entryFilter.setEntryType(EntryFilter.EntryType.EXERCISE);
entryFilter.setSportType(new SportType(100));
entryFilter.setSportSubType(new SportSubType(200));
entryFilter.setIntensity(Exercise.IntensityType.HIGH);
entryFilter.setEquipment(new Equipment(300));
entryFilter.setCommentSubString("Foo Bar");
entryFilter.setRegularExpressionMode(true);
}
/**
* Test of method getExerciseFilter().
*/
@Test
public void testGetExerciseFilter() {
FilterViewModel viewModel = new FilterViewModel(entryFilter, true);
// test without modifications
EntryFilter unmodifiedFilter = viewModel.getExerciseFilter();
assertEquals(entryFilter.getDateStart(), unmodifiedFilter.getDateStart());
assertEquals(entryFilter.getDateEnd(), unmodifiedFilter.getDateEnd());
assertEquals(entryFilter.getEntryType(), unmodifiedFilter.getEntryType());
assertEquals(entryFilter.getSportType(), unmodifiedFilter.getSportType());
assertEquals(entryFilter.getSportSubType(), unmodifiedFilter.getSportSubType());
assertEquals(entryFilter.getIntensity(), unmodifiedFilter.getIntensity());
assertEquals(entryFilter.getEquipment(), unmodifiedFilter.getEquipment());
assertEquals(entryFilter.getCommentSubString(), unmodifiedFilter.getCommentSubString());
assertEquals(entryFilter.isRegularExpressionMode(), unmodifiedFilter.isRegularExpressionMode());
// test after modifications
viewModel.dateEnd.set(LocalDate.of(2014, 12, 31));
viewModel.entryType.set(EntryFilter.EntryType.WEIGHT);
viewModel.sportSubtype.set(new SportSubType(201));
viewModel.intensity.set(new FilterViewModel.IntensityItem(null));
viewModel.commentSubString.set(" Bar Foo ");
EntryFilter modifiedFilter = viewModel.getExerciseFilter();
assertEquals(LocalDate.of(2014, 12, 31), modifiedFilter.getDateEnd());
assertEquals(EntryFilter.EntryType.WEIGHT, modifiedFilter.getEntryType());
assertEquals(201, modifiedFilter.getSportSubType().getId());
assertNull(modifiedFilter.getIntensity());
assertEquals("Bar Foo", modifiedFilter.getCommentSubString());
}
}