package com.example.pocketknife;
import android.content.Intent;
import android.os.Bundle;
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 org.robolectric.util.ActivityController;
import java.util.Random;
import static org.junit.Assert.assertEquals;
@RunWith(RobolectricTestRunner.class)
@Config(manifest = "src/main/AndroidManifest.xml")
public class MultiAnnotationTest {
@Test
public void testMultiAnnotationActivity() throws Exception {
Random random = new Random();
Intent intent = new Intent(RuntimeEnvironment.application, MultiAnnotationActivity.class);
int extraInt = random.nextInt();
intent.putExtra(MultiAnnotationActivity.EXTRA_INT, extraInt);
ActivityController<MultiAnnotationActivity> saveController = Robolectric.buildActivity(MultiAnnotationActivity.class).withIntent(intent).create();
MultiAnnotationActivity activity = saveController.start().restart().visible().get();
assertEquals(extraInt, activity.i);
int activityInt = random.nextInt();
activity.i = activityInt;
Bundle saveState = new Bundle();
saveController.saveInstanceState(saveState);
ActivityController<MultiAnnotationActivity> restoreController = Robolectric.buildActivity(MultiAnnotationActivity.class).withIntent(intent)
.create(saveState);
activity = restoreController.start().restart().visible().get();
assertEquals(activityInt, activity.i);
}
@Test
public void testMultiAnnotationFragment() throws Exception {
Random random = new Random();
Bundle args = new Bundle();
int argInt = random.nextInt();
args.putInt(MultiAnnotationFragment.ARG_INT, argInt);
MultiAnnotationFragment saveFragment = MultiAnnotationFragment.newInstance();
saveFragment.setArguments(args);
saveFragment.onActivityCreated(null);
assertEquals(argInt, saveFragment.i);
int fragmentInt = random.nextInt();
saveFragment.i = fragmentInt;
Bundle saveState = new Bundle();
saveFragment.onSaveInstanceState(saveState);
MultiAnnotationFragment restoreFragment = MultiAnnotationFragment.newInstance();
restoreFragment.setArguments(args);
restoreFragment.onActivityCreated(saveState);
assertEquals(fragmentInt, restoreFragment.i);
}
}