package org.openlmis.core.view.holder; import android.view.LayoutInflater; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.openlmis.core.LMISTestRunner; import org.openlmis.core.R; import org.openlmis.core.manager.MovementReasonManager; import org.openlmis.core.model.Product; import org.openlmis.core.model.builder.ProductBuilder; import org.openlmis.core.view.adapter.LotMovementAdapter; import org.openlmis.core.view.viewmodel.InventoryViewModel; import org.openlmis.core.view.viewmodel.LotMovementViewModel; import org.openlmis.core.view.viewmodel.LotMovementViewModelBuilder; import org.openlmis.core.view.viewmodel.UnpackKitInventoryViewModel; import org.robolectric.RuntimeEnvironment; import rx.functions.Action1; import static org.assertj.core.api.Assertions.assertThat; import static org.roboguice.shaded.goole.common.collect.Lists.newArrayList; @RunWith(LMISTestRunner.class) public class UnpackKitWithLotViewHolderTest { private UnpackKitWithLotViewHolder viewHolder; private Product product; Action1 action1 = new Action1() { @Override public void call(Object o) { } }; @Before public void setUp() throws Exception { viewHolder = new UnpackKitWithLotViewHolder(LayoutInflater.from(RuntimeEnvironment.application).inflate(R.layout.item_unpack_kit_with_lots, null, false)); product = new ProductBuilder().setPrimaryName("Lamivudina 150mg").setCode("08S40").setStrength("10mg").setType("VIA").build(); } @Test public void shouldPopulate() { InventoryViewModel inventoryViewModel = new UnpackKitInventoryViewModel(product); inventoryViewModel.setKitExpectQuantity(20); inventoryViewModel.setChecked(false); inventoryViewModel.setType("Embalagem"); inventoryViewModel.setStockOnHand(123L); viewHolder.populate(inventoryViewModel, action1); assertThat(viewHolder.tvKitExpectedQuantity.getText().toString()).isEqualTo("20 expected"); } @Test public void shouldSetAdapter() { InventoryViewModel inventoryViewModel = new UnpackKitInventoryViewModel(product); inventoryViewModel.setKitExpectQuantity(20); inventoryViewModel.setChecked(false); inventoryViewModel.setType("Embalagem"); inventoryViewModel.setStockOnHand(123L); LotMovementViewModel lotMovementViewModel = new LotMovementViewModelBuilder() .setMovementType(MovementReasonManager.MovementType.RECEIVE) .setQuantity("100") .setLotNumber("testLot").build(); inventoryViewModel.setExistingLotMovementViewModelList(newArrayList(lotMovementViewModel, lotMovementViewModel)); LotMovementAdapter existingLotMovementAdapter = new LotMovementAdapter(inventoryViewModel.getExistingLotMovementViewModelList(), inventoryViewModel.getProductName()); LotMovementAdapter newLotMovementAdapter = new LotMovementAdapter(inventoryViewModel.getExistingLotMovementViewModelList(), inventoryViewModel.getProductName()); viewHolder.populate(inventoryViewModel, action1); assertThat(existingLotMovementAdapter.getItemCount()).isEqualTo(2); assertThat(newLotMovementAdapter.getItemCount()).isEqualTo(2); } }