package org.openlmis.core.view.activity;
import android.content.Intent;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.openlmis.core.LMISTestRunner;
import org.openlmis.core.utils.Constants;
import org.robolectric.Robolectric;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.shadows.ShadowApplication;
import static org.assertj.core.api.Assertions.assertThat;
import static org.robolectric.Shadows.shadowOf;
@RunWith(LMISTestRunner.class)
public class StockCardListActivityTest {
private StockCardListActivity stockCardListActivity;
@Before
public void setUp() {
stockCardListActivity = Robolectric.buildActivity(StockCardListActivity.class).create().get();
}
@Test
public void shouldGetValidStockCardFragment() {
assertThat(stockCardListActivity.stockCardFragment).isNotNull();
}
@Test
public void shouldNavigateToAddNewDrugPageWhenMenuClicked() {
shadowOf(stockCardListActivity).clickMenuItem(StockCardListActivity.MENU_ID_ADD_NEW_DRUG);
Intent nextIntent = ShadowApplication.getInstance().getNextStartedActivity();
assertThat(nextIntent.getComponent().getClassName()).isEqualTo(InitialInventoryActivity.class.getName());
assertThat(nextIntent.getBooleanExtra(Constants.PARAM_IS_ADD_NEW_DRUG, false)).isTrue();
}
@Test
public void shouldNavigateToStockCardArchiveListWhenMenuClicked() {
shadowOf(stockCardListActivity).clickMenuItem(StockCardListActivity.MENU_ID_ARCHIVE_LIST);
Intent nextIntent = ShadowApplication.getInstance().getNextStartedActivity();
assertThat(nextIntent.getComponent().getClassName()).isEqualTo(ArchivedDrugsListActivity.class.getName());
}
@Test
public void shouldGetIntentToMe() {
Intent intent = StockCardListActivity.getIntentToMe(RuntimeEnvironment.application);
assertThat(intent.getComponent().getClassName()).isEqualTo(StockCardListActivity.class.getName());
assertThat(intent.getFlags()).isEqualTo(Intent.FLAG_ACTIVITY_CLEAR_TOP);
}
}