diff --git a/library/core/src/test/java/com/google/android/exoplayer2/analytics/DefaultPlaybackSessionManagerTest.java b/library/core/src/test/java/com/google/android/exoplayer2/analytics/DefaultPlaybackSessionManagerTest.java index 1df3d64205..44aba86db3 100644 --- a/library/core/src/test/java/com/google/android/exoplayer2/analytics/DefaultPlaybackSessionManagerTest.java +++ b/library/core/src/test/java/com/google/android/exoplayer2/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(); }