### Question:
MediaControllerAdapter extends PlayerAdapter { @Override public void play() { mController.getTransportControls().play(); } MediaControllerAdapter(MediaControllerCompat controller); MediaControllerCompat getMediaController(); @Override void play(); @Override void pause(); @Override void seekTo(long positionInMs); @Override void next(); @Override void previous(); @Override void fastForward(); @Override void rewind(); @Override void setRepeatAction(int repeatActionIndex); @Override void setShuffleAction(int shuffleActionIndex); @Override boolean isPlaying(); @Override long getCurrentPosition(); @Override long getBufferedPosition(); CharSequence getMediaTitle(); CharSequence getMediaSubtitle(); Drawable getMediaArt(Context context); @Override long getDuration(); @Override void onAttachedToHost(PlaybackGlueHost host); @Override void onDetachedFromHost(); @Override void setProgressUpdatingEnabled(boolean enabled); @Override long getSupportedActions();  }### Answer:
@Test @SmallTest @SdkSuppress(minSdkVersion = Build.VERSION_CODES.LOLLIPOP) public void testPlay() throws InterruptedException { synchronized (mWaitLock) { mCallback.reset(); mMediaControllerAdapter.play(); mWaitLock.wait(); assertTrue(mCallback.mOnPlayCalled); } }