package com.mirhoseini.marvel.activity;
import android.content.Intent;
import android.view.ViewGroup;
import android.widget.TextView;
import com.mirhoseini.marvel.BuildConfig;
import com.mirhoseini.marvel.R;
import com.mirhoseini.marvel.database.model.CharacterModel;
import com.mirhoseini.marvel.test.support.ShadowSnackbar;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.Robolectric;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
/**
* Created by Mohsen on 13/11/2016.
*/
@RunWith(RobolectricTestRunner.class)
@Config(constants = BuildConfig.class, sdk = 21, shadows = {ShadowSnackbar.class})
public class CharacterActivityTest {
static final String TEST_CHARACTER_NAME = "Test Name";
static final String TEST_CHARACTER_DESCRIPTION = "Test Description";
static final String TEST_CHARACTER_THUMBNAIL = "Test Thumbnail";
CharacterActivity activity;
CharacterModel character;
@Before
public void setUp() throws Exception {
// Set up the stub we want to return in the mock
character = new CharacterModel(0, TEST_CHARACTER_NAME, TEST_CHARACTER_DESCRIPTION, TEST_CHARACTER_THUMBNAIL);
Intent intent = CharacterActivity.newIntent(RuntimeEnvironment.application, character);
activity = Robolectric.buildActivity(CharacterActivity.class)
.withIntent(intent).create().get();
assertNotNull(activity);
}
@Test
public void viewFunctionality() throws Exception {
TextView title = (TextView) ((ViewGroup) activity.findViewById(R.id.toolbar)).getChildAt(0);
assertTrue(title.getText().toString().equals(TEST_CHARACTER_NAME));
}
@Test
public void finishIfNoCharacter() throws Exception {
Intent intent = CharacterActivity.newIntent(RuntimeEnvironment.application, null);
activity = Robolectric.buildActivity(CharacterActivity.class)
.withIntent(intent).create().get();
assertTrue(activity.isFinishing());
}
}