package org.openlmis.core.view.widget; import android.view.ViewGroup; import android.widget.TextView; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.openlmis.core.LMISTestApp; import org.openlmis.core.LMISTestRunner; import org.openlmis.core.R; import org.openlmis.core.model.Product; import org.openlmis.core.model.RnrFormItem; import org.robolectric.RuntimeEnvironment; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import static junit.framework.TestCase.assertEquals; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.is; import static org.openlmis.core.model.Product.MEDICINE_TYPE_ADULT; import static org.openlmis.core.model.Product.MEDICINE_TYPE_CHILDREN; import static org.openlmis.core.model.Product.MEDICINE_TYPE_OTHER; import static org.openlmis.core.model.Product.MEDICINE_TYPE_SOLUTION; @RunWith(LMISTestRunner.class) public class MMIARnrFormTest { private MMIARnrForm mmiaRnrForm; @Before public void setUp() { mmiaRnrForm = new MMIARnrForm(RuntimeEnvironment.application); mmiaRnrForm.setLayoutParams(new ViewGroup.MarginLayoutParams(100,100)); } @Test public void shouldSortByProductCodeAndCategory() throws Exception { ArrayList<RnrFormItem> list = new ArrayList<>(); // Product.MEDICINE_TYPE_SOLUTION list.add(getRnrFormItem(1L, "product", "08S17", MEDICINE_TYPE_SOLUTION)); // Product.MEDICINE_TYPE_ADULT list.add(getRnrFormItem(3L, "product3", "08S22Z", MEDICINE_TYPE_ADULT)); // Product.MEDICINE_TYPE_CHILDREN list.add(getRnrFormItem(2L, "product2", "08S32Z", MEDICINE_TYPE_CHILDREN)); // Product.MEDICINE_TYPE_ADULT list.add(getRnrFormItem(4L, "product4", "08S39Z", MEDICINE_TYPE_ADULT)); mmiaRnrForm.initView(list); ViewGroup leftViewGroup = (ViewGroup) mmiaRnrForm.findViewById(R.id.rnr_from_list_product_name); String text = ((TextView) leftViewGroup.getChildAt(0)).getText().toString(); assertThat(text, is(list.get(1).getProduct().getPrimaryName())); String text1 = ((TextView) leftViewGroup.getChildAt(1)).getText().toString(); assertThat(text1, is(list.get(3).getProduct().getPrimaryName())); String text2 = ((TextView) leftViewGroup.getChildAt(4)).getText().toString(); assertThat(text2, is(list.get(2).getProduct().getPrimaryName())); String text3 = ((TextView) leftViewGroup.getChildAt(6)).getText().toString(); assertThat(text3, is(list.get(0).getProduct().getPrimaryName())); } private RnrFormItem getRnrFormItem(long id, String primaryName, String code, String category) { RnrFormItem item = new RnrFormItem(); Product product = new Product(); product.setId(id); product.setPrimaryName(primaryName); product.setCode(code); item.setProduct(product); item.setCategory(category); return item; } }