### Question:
MediaBrowser2 extends MediaController2 { public void unsubscribe(@NonNull String parentId) { if (parentId == null) { throw new IllegalArgumentException("parentId shouldn't be null"); } MediaBrowserCompat browser = getBrowserCompat(); if (browser == null) { return; } synchronized (mLock) { List<SubscribeCallback> list = mSubscribeCallbacks.get(parentId); if (list == null) { return; } for (int i = 0; i < list.size(); i++) { browser.unsubscribe(parentId, list.get(i)); } } } MediaBrowser2(@NonNull Context context, @NonNull SessionToken2 token,
            @NonNull /*@CallbackExecutor*/ Executor executor, @NonNull BrowserCallback callback); @Override void close(); void getLibraryRoot(@Nullable final Bundle extras); void subscribe(@NonNull String parentId, @Nullable Bundle extras); void unsubscribe(@NonNull String parentId); void getChildren(@NonNull String parentId, int page, int pageSize,
            @Nullable Bundle extras); void getItem(@NonNull final String mediaId); void search(@NonNull String query, @Nullable Bundle extras); void getSearchResult(final @NonNull String query, final int page, final int pageSize,
            final @Nullable Bundle extras); @RestrictTo(LIBRARY_GROUP)
    static final String EXTRA_ITEM_COUNT; @RestrictTo(LIBRARY_GROUP)
    static final String MEDIA_BROWSER2_SUBSCRIBE; }### Answer:
@Ignore @Test public void testUnsubscribe() throws InterruptedException { prepareLooper(); final String testParentId = "testUnsubscribeId"; final CountDownLatch latch = new CountDownLatch(1); final MediaLibrarySessionCallback callback = new MediaLibrarySessionCallback() { @Override public void onUnsubscribe(@NonNull MediaLibrarySession session, @NonNull ControllerInfo info, @NonNull String parentId) { if (Process.myUid() == info.getUid()) { assertEquals(testParentId, parentId); latch.countDown(); } } }; TestServiceRegistry.getInstance().setSessionCallback(callback); final SessionToken2 token = MockMediaLibraryService2.getToken(mContext); MediaBrowser2 browser = (MediaBrowser2) createController(token); browser.unsubscribe(testParentId); assertTrue(latch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)); }