package org.openlmis.core.view.viewmodel; import org.junit.Test; import org.junit.runner.RunWith; import org.openlmis.core.LMISTestRunner; import org.openlmis.core.manager.MovementReasonManager; import java.util.ArrayList; import java.util.Arrays; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @RunWith(LMISTestRunner.class) public class RapidTestFormItemViewModelTest { private RapidTestFormItemViewModel itemViewModel; @Test public void shouldConvertFormItemViewModelToDataModel() throws Exception { MovementReasonManager.MovementReason reason1 = new MovementReasonManager.MovementReason(MovementReasonManager.MovementType.ISSUE, "PUB_PHARMACY", "Pub pharmacy"); itemViewModel = new RapidTestFormItemViewModel(reason1); RapidTestFormGridViewModel formGridViewModel = mock(RapidTestFormGridViewModel.class); itemViewModel.setRapidTestFormGridViewModelList(Arrays.asList(formGridViewModel)); itemViewModel.convertToDataModel(); verify(formGridViewModel).convertFormGridViewModelToDataModel(reason1); } @Test public void shouldValidateRowViewModel() throws Exception { MovementReasonManager.MovementReason reason1 = new MovementReasonManager.MovementReason(MovementReasonManager.MovementType.ISSUE, "ACC_EMERGENCY", "Acc emergency"); itemViewModel = new RapidTestFormItemViewModel(reason1); RapidTestFormGridViewModel formGridViewModel1 = mock(RapidTestFormGridViewModel.class); RapidTestFormGridViewModel formGridViewModel2 = mock(RapidTestFormGridViewModel.class); when(formGridViewModel1.validate()).thenReturn(true); when(formGridViewModel2.validate()).thenReturn(false); itemViewModel.setRapidTestFormGridViewModelList(new ArrayList<RapidTestFormGridViewModel>()); itemViewModel.getRapidTestFormGridViewModelList().add(formGridViewModel1); assertTrue(itemViewModel.validate()); itemViewModel.getRapidTestFormGridViewModelList().add(formGridViewModel2); assertFalse(itemViewModel.validate()); } }