package org.robolectric.android; import android.app.Application; import android.content.Context; import org.robolectric.util.ReflectionHelpers; public class ApplicationTestUtil { /** * Creates a new {@link Application} and attaches it with a base context obtained from context. */ public static <T extends Application> T buildApplication(Class<T> applicationClass, Context context) { T application = newApplication(applicationClass); attach(application, context); return application; } public static <T extends Application> T newApplication(Class<T> applicationClass) { return ReflectionHelpers.callConstructor(applicationClass); } /** * Attaches an application to a base context. * @param application The application to attach. * @param context The context with which to initialize the application, whose base context will * be attached to the application */ public static void attach(Application application, Context context) { ReflectionHelpers.callInstanceMethod(Application.class, application, "attach", ReflectionHelpers.ClassParameter.from(Context.class, context)); } }