### Question:
DefaultMediaClock implements MediaClock { public void onRendererEnabled(Renderer renderer) throws ExoPlaybackException { MediaClock rendererMediaClock = renderer.getMediaClock(); if (rendererMediaClock != null && rendererMediaClock != rendererClock) { if (rendererClock != null) { throw ExoPlaybackException.createForUnexpected( new IllegalStateException("Multiple renderer media clocks enabled.")); } this.rendererClock = rendererMediaClock; this.rendererClockSource = renderer; rendererClock.setPlaybackParameters(standaloneMediaClock.getPlaybackParameters()); ensureSynced(); } } DefaultMediaClock(PlaybackParameterListener listener, Clock clock); void start(); void stop(); void resetPosition(long positionUs); void onRendererEnabled(Renderer renderer); void onRendererDisabled(Renderer renderer); long syncAndGetPositionUs(); @Override long getPositionUs(); @Override PlaybackParameters setPlaybackParameters(PlaybackParameters playbackParameters); @Override PlaybackParameters getPlaybackParameters();  }### Answer:
@Test public void enableRendererMediaClockWithFixedParameters_shouldTriggerCallback() throws ExoPlaybackException { FakeMediaClockRenderer mediaClockRenderer = new MediaClockRenderer(TEST_PLAYBACK_PARAMETERS, false); mediaClock.onRendererEnabled(mediaClockRenderer); verify(listener).onPlaybackParametersChanged(TEST_PLAYBACK_PARAMETERS); }
@Test public void enableRendererMediaClockWithFixedButSamePlaybackParameters_shouldNotTriggerCallback() throws ExoPlaybackException { FakeMediaClockRenderer mediaClockRenderer = new MediaClockRenderer(PlaybackParameters.DEFAULT, false); mediaClock.onRendererEnabled(mediaClockRenderer); verifyNoMoreInteractions(listener); }