package com.rapidftr.roboelectric.shadows;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.support.v4.app.TaskStackBuilder;
import org.robolectric.Robolectric;
import org.robolectric.annotation.Implementation;
import org.robolectric.annotation.Implements;
import org.robolectric.annotation.RealObject;
import org.robolectric.shadows.ShadowPendingIntent;
import static org.robolectric.Robolectric.shadowOf_;
import static org.robolectric.bytecode.ShadowWrangler.shadowOf;
@Implements(TaskStackBuilder.class)
public class ShadowTaskStackBuilder {
private Context context;
private Intent intent;
@RealObject
TaskStackBuilder realTaskStackBuilder;
private void setup(Context context) {
this.context = context;
}
@Implementation
public static TaskStackBuilder create(Context context) {
TaskStackBuilder taskStackBuilder = Robolectric.newInstance(TaskStackBuilder.class, null, null);
ShadowTaskStackBuilder shadowTaskBuilder = (ShadowTaskStackBuilder) shadowOf_(taskStackBuilder);
shadowTaskBuilder.setup(context);
return taskStackBuilder;
}
@Implementation
public TaskStackBuilder addNextIntent(Intent intent) {
this.intent = intent;
return realTaskStackBuilder;
}
@Implementation
public PendingIntent getPendingIntent(int requestCode, int flag) {
PendingIntent pendingIntent = Robolectric.newInstance(PendingIntent.class, null, null);
ShadowPendingIntent shadowPendingIntent = (ShadowPendingIntent) Robolectric.shadowOf(pendingIntent);
return pendingIntent;
}
@Implementation
public void startActivities() {
context.startActivity(intent);
}
}