### Question:
ContextCompat { public static int checkSelfPermission(@NonNull Context context, @NonNull String permission) { if (permission == null) { throw new IllegalArgumentException("permission is null"); } return context.checkPermission(permission, android.os.Process.myPid(), Process.myUid()); } protected  ContextCompat(); static boolean startActivities(@NonNull Context context, @NonNull Intent[] intents); static boolean startActivities(@NonNull Context context, @NonNull Intent[] intents,
            @Nullable Bundle options); static void startActivity(@NonNull Context context, @NonNull Intent intent,
            @Nullable Bundle options); @Nullable static File getDataDir(@NonNull Context context); @NonNull static File[] getObbDirs(@NonNull Context context); @NonNull static File[] getExternalFilesDirs(@NonNull Context context, @Nullable String type); @NonNull static File[] getExternalCacheDirs(@NonNull Context context); @Nullable static Drawable getDrawable(@NonNull Context context, @DrawableRes int id); @Nullable static ColorStateList getColorStateList(@NonNull Context context,
            @ColorRes int id); @ColorInt static int getColor(@NonNull Context context, @ColorRes int id); static int checkSelfPermission(@NonNull Context context, @NonNull String permission); @Nullable static File getNoBackupFilesDir(@NonNull Context context); static File getCodeCacheDir(@NonNull Context context); @Nullable static Context createDeviceProtectedStorageContext(@NonNull Context context); static boolean isDeviceProtectedStorage(@NonNull Context context); static void startForegroundService(@NonNull Context context, @NonNull Intent intent); @SuppressWarnings("unchecked") @Nullable static T getSystemService(@NonNull Context context, @NonNull Class<T> serviceClass); @Nullable static String getSystemServiceName(@NonNull Context context,
            @NonNull Class<?> serviceClass);  }### Answer:
@Test(expected = IllegalArgumentException.class) public void testCheckSelfPermissionNull() { ContextCompat.checkSelfPermission(mContext, null); }
@Test public void testCheckSelfPermission() { assertEquals("Vibrate permission granted", PackageManager.PERMISSION_GRANTED, ContextCompat.checkSelfPermission(mContext, android.Manifest.permission.VIBRATE)); assertEquals("Wake lock permission granted", PackageManager.PERMISSION_GRANTED, ContextCompat.checkSelfPermission(mContext, android.Manifest.permission.WAKE_LOCK)); assertEquals("Access network state permission denied", PackageManager.PERMISSION_DENIED, ContextCompat.checkSelfPermission(mContext, android.Manifest.permission.ACCESS_NETWORK_STATE)); assertEquals("Bluetooth permission denied", PackageManager.PERMISSION_DENIED, ContextCompat.checkSelfPermission(mContext, android.Manifest.permission.BLUETOOTH)); assertEquals("Call phone permission denied", PackageManager.PERMISSION_DENIED, ContextCompat.checkSelfPermission(mContext, android.Manifest.permission.CALL_PHONE)); assertEquals("Delete packages permission denied", PackageManager.PERMISSION_DENIED, ContextCompat.checkSelfPermission(mContext, android.Manifest.permission.DELETE_PACKAGES)); }