package org.openlmis.core.view.viewmodel;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.openlmis.core.LMISTestRunner;
import org.openlmis.core.model.Product;
import org.openlmis.core.model.RnrFormItem;
import org.openlmis.core.model.builder.ProductBuilder;
import org.openlmis.core.model.builder.RnrFormItemBuilder;
import java.util.List;
import static org.hamcrest.core.Is.is;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThat;
import static org.roboguice.shaded.goole.common.collect.Lists.newArrayList;
@RunWith(LMISTestRunner.class)
public class ViaKitsViewModelTest {
@Test
public void shouldConvertRnrKitLineItemToViaKitViewModel() {
RnrFormItem rnrKitItem1 = new RnrFormItemBuilder()
.setProduct(new ProductBuilder().setCode("SCOD10").build())
.setReceived(100)
.setIssued(50)
.build();
RnrFormItem rnrKitItem2 = new RnrFormItemBuilder()
.setProduct(new ProductBuilder().setCode("SCOD12").build())
.setReceived(300)
.setIssued(110)
.build();
List<RnrFormItem> rnrFormItems = newArrayList(rnrKitItem1, rnrKitItem2);
ViaKitsViewModel viaKitsViewModel = new ViaKitsViewModel();
viaKitsViewModel.convertRnrKitItemsToViaKit(rnrFormItems);
assertThat(viaKitsViewModel.getKitsOpenedCHW(), is("110"));
assertThat(viaKitsViewModel.getKitsOpenedHF(), is("50"));
assertThat(viaKitsViewModel.getKitsReceivedCHW(), is("300"));
assertThat(viaKitsViewModel.getKitsReceivedHF(), is("100"));
}
@Test
public void shouldNotPopulateAnyValueIfAmountIsBelowZero() {
ViaKitsViewModel viaKitsViewModel = new ViaKitsViewModel();
Product usKit = new ProductBuilder().setCode(ViaKitsViewModel.US_KIT).build();
Product apeKit = new ProductBuilder().setCode(ViaKitsViewModel.APE_KIT).build();
List<RnrFormItem> rnrFormItems = newArrayList(new RnrFormItemBuilder().setIssued(Long.MIN_VALUE).setProduct(usKit).build(),
new RnrFormItemBuilder().setIssued(Long.MIN_VALUE).setProduct(apeKit).build());
viaKitsViewModel.convertRnrKitItemsToViaKit(rnrFormItems);
assertThat(viaKitsViewModel.getKitsOpenedCHW(), is("0"));
assertThat(viaKitsViewModel.getKitsOpenedHF(), is("0"));
}
}