### Question:
MediaBrowser2 extends MediaController2 { public void getItem(@NonNull final String mediaId) { MediaBrowserCompat browser = getBrowserCompat(); if (browser == null) { return; } browser.getItem(mediaId, new ItemCallback() { @Override public void onItemLoaded(final MediaItem item) { getCallbackExecutor().execute(new Runnable() { @Override public void run() { getCallback().onGetItemDone(MediaBrowser2.this, mediaId, MediaUtils2.createMediaItem2(item)); } }); } @Override public void onError(String itemId) { getCallbackExecutor().execute(new Runnable() { @Override public void run() { getCallback().onGetItemDone(MediaBrowser2.this, mediaId, null); } }); } }); } 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:
@Test public void testGetItem() throws InterruptedException { prepareLooper(); final String mediaId = MockMediaLibraryService2.MEDIA_ID_GET_ITEM; final CountDownLatch latch = new CountDownLatch(1); final BrowserCallback callback = new BrowserCallback() { @Override public void onGetItemDone(MediaBrowser2 browser, String mediaIdOut, MediaItem2 result) { assertEquals(mediaId, mediaIdOut); assertNotNull(result); assertEquals(mediaId, result.getMediaId()); latch.countDown(); } }; final SessionToken2 token = MockMediaLibraryService2.getToken(mContext); MediaBrowser2 browser = (MediaBrowser2) createController(token, true, callback); browser.getItem(mediaId); assertTrue(latch.await(WAIT_TIME_MS, TimeUnit.MILLISECONDS)); }
@Test public void testGetItemNullResult() throws InterruptedException { prepareLooper(); final String mediaId = "random_media_id"; final CountDownLatch latch = new CountDownLatch(1); final BrowserCallback callback = new BrowserCallback() { @Override public void onGetItemDone(MediaBrowser2 browser, String mediaIdOut, MediaItem2 result) { assertEquals(mediaId, mediaIdOut); assertNull(result); latch.countDown(); } }; final SessionToken2 token = MockMediaLibraryService2.getToken(mContext); MediaBrowser2 browser = (MediaBrowser2) createController(token, true, callback); browser.getItem(mediaId); assertTrue(latch.await(WAIT_TIME_MS, TimeUnit.MILLISECONDS)); }