package org.openlmis.core.view.fragment; import com.google.inject.AbstractModule; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.openlmis.core.LMISTestRunner; import org.openlmis.core.presenter.StockCardPresenter; import org.openlmis.core.view.adapter.KitStockCardListAdapter; import org.robolectric.RuntimeEnvironment; import org.robolectric.util.FragmentTestUtil; import roboguice.RoboGuice; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; @RunWith(LMISTestRunner.class) public class KitStockCardListFragmentTest { private StockCardPresenter mockStockCardPresenter; private KitStockCardListFragment fragment; @Before public void setUp() throws Exception { mockStockCardPresenter = mock(StockCardPresenter.class); RoboGuice.overrideApplicationInjector(RuntimeEnvironment.application, new AbstractModule() { @Override protected void configure() { bind(StockCardPresenter.class).toInstance(mockStockCardPresenter); } }); fragment = new KitStockCardListFragment(); FragmentTestUtil.startFragment(fragment); } @After public void teardown() { RoboGuice.Util.reset(); } @Test public void shouldCreateStockCardsForKitsIfNotExist() throws Exception { verify(mockStockCardPresenter).loadKits(); } @Test public void shouldUseKitStockCardListAdapter() throws Exception { assertThat(fragment.mAdapter).isInstanceOf(KitStockCardListAdapter.class); } }