package org.openlmis.core.model;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.openlmis.core.LMISTestRunner;
import org.openlmis.core.view.viewmodel.LotMovementViewModel;
import org.openlmis.core.view.viewmodel.PhysicalInventoryViewModel;
import static org.assertj.core.util.Lists.newArrayList;
import static org.hamcrest.core.Is.is;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
@RunWith(LMISTestRunner.class)
public class DraftInventoryTest {
DraftInventory draftInventory;
@Test
public void shouldConvertViewModelToDraft() throws Exception {
StockCard stockCard = new StockCard();
stockCard.setStockOnHand(10);
Product product = new Product();
product.setPrimaryName("Product");
stockCard.setProduct(product);
PhysicalInventoryViewModel viewModel = new PhysicalInventoryViewModel(stockCard);
draftInventory = new DraftInventory(viewModel);
LotMovementViewModel lotMovementViewModel1 = new LotMovementViewModel();
lotMovementViewModel1.setQuantity("10");
lotMovementViewModel1.setExpiryDate("Aug 2016");
viewModel.setNewLotMovementViewModelList(newArrayList(lotMovementViewModel1));
LotMovementViewModel lotMovementViewModel2 = new LotMovementViewModel();
lotMovementViewModel2.setQuantity("10");
lotMovementViewModel2.setExpiryDate("Aug 2016");
viewModel.setExistingLotMovementViewModelList(newArrayList(lotMovementViewModel2));
draftInventory = new DraftInventory(viewModel);
assertThat(draftInventory.getQuantity(), is(20L));
assertThat(draftInventory.getDraftLotItemListWrapper().size(),is(2));
assertTrue(draftInventory.getDraftLotItemListWrapper().get(1).isNewAdded());
assertFalse(draftInventory.getDraftLotItemListWrapper().get(0).isNewAdded());
}
}