diff --git a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/analytics/DefaultPlaybackSessionManagerTest.java b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/analytics/DefaultPlaybackSessionManagerTest.java index 20ba83eceb..dd74acd379 100644 --- a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/analytics/DefaultPlaybackSessionManagerTest.java +++ b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/analytics/DefaultPlaybackSessionManagerTest.java @@ -788,18 +788,16 @@ public final class DefaultPlaybackSessionManagerTest { inOrder .verify(mockListener) .onSessionCreated(eq(eventTimeFirstTimelineWindowOnly2), thirdId.capture()); + // The sessions may finish at the same time, so the order of these two callbacks is undefined. + ArgumentCaptor finishedSessions = ArgumentCaptor.forClass(String.class); inOrder - .verify(mockListener) + .verify(mockListener, times(2)) .onSessionFinished( - eventTimeSecondTimeline, - firstId.getValue(), - /* automaticTransitionToNextPlayback= */ false); - inOrder - .verify(mockListener) - .onSessionFinished( - eventTimeSecondTimeline, - thirdId.getValue(), - /* automaticTransitionToNextPlayback= */ false); + eq(eventTimeSecondTimeline), + finishedSessions.capture(), + /* automaticTransitionToNextPlayback= */ eq(false)); + assertThat(finishedSessions.getAllValues()) + .containsExactly(firstId.getValue(), thirdId.getValue()); inOrder.verify(mockListener).onSessionActive(eventTimeSecondTimeline, secondId.getValue()); inOrder.verifyNoMoreInteractions(); }