Skip to content

Commit

Permalink
Avoid check order in the verify block
Browse files Browse the repository at this point in the history
  • Loading branch information
StaehliJ committed Jun 27, 2024
1 parent a9b64c0 commit db910ff
Showing 1 changed file with 58 additions and 48 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import androidx.test.ext.junit.runners.AndroidJUnit4
import ch.srgssr.pillarbox.player.test.utils.TestPillarboxRunHelper
import io.mockk.confirmVerified
import io.mockk.mockk
import io.mockk.verify
import io.mockk.verifyOrder
import org.junit.runner.RunWith
import kotlin.test.AfterTest
Expand All @@ -27,7 +28,7 @@ import kotlin.time.Duration.Companion.seconds
@RunWith(AndroidJUnit4::class)
class PlaybackSessionManagerTest {
private lateinit var clock: FakeClock
private lateinit var player: Player
private lateinit var player: ExoPlayer
private lateinit var sessionManagerListener: PlaybackSessionManager.Listener

@BeforeTest
Expand Down Expand Up @@ -102,27 +103,28 @@ class PlaybackSessionManagerTest {
player.play()

TestPlayerRunHelper.runUntilPlaybackState(player, Player.STATE_ENDED)
player.clearMediaItems()
TestPlayerRunHelper.runUntilPendingCommandsAreFullyHandled(player)

val sessions = mutableListOf<PlaybackSessionManager.Session>()
val start = mutableListOf<PlaybackSessionManager.Session>()
val current = mutableListOf<PlaybackSessionManager.Session>()
val finished = mutableListOf<PlaybackSessionManager.Session>()

verifyOrder {
sessionManagerListener.onSessionCreated(capture(sessions)) // Item 1
sessionManagerListener.onCurrentSession(capture(sessions)) // Item 1
sessionManagerListener.onSessionCreated(capture(sessions)) // Item 2
sessionManagerListener.onSessionFinished(capture(sessions)) // Item 1
sessionManagerListener.onCurrentSession(capture(sessions)) // Item 2
sessionManagerListener.onSessionCreated(capture(sessions)) // Item 3
sessionManagerListener.onSessionFinished(capture(sessions)) // Item 2
sessionManagerListener.onCurrentSession(capture(sessions)) // Item 3
verify {
sessionManagerListener.onSessionCreated(capture(start)) // Item 1
sessionManagerListener.onCurrentSession(capture(current)) // Item 1
sessionManagerListener.onSessionFinished(capture(finished)) // Item 1
}
confirmVerified(sessionManagerListener)

assertEquals(8, sessions.size)
assertEquals(3, sessions.distinctBy { it.sessionId }.size)
assertEquals(
listOf(mediaItems[0], mediaItems[0], mediaItems[1], mediaItems[0], mediaItems[1], mediaItems[2], mediaItems[1], mediaItems[2]),
sessions.map { it.mediaItem }.reversed(),
)
assertEquals(3, start.size)
assertEquals(3, current.size)
assertEquals(3, finished.size)
for (i in 0 until 3) {
assertEquals(mediaItems[i], start[i].mediaItem)
assertEquals(mediaItems[i], current[i].mediaItem)
assertEquals(mediaItems[i], finished[i].mediaItem)
}
}

@Test
Expand All @@ -132,29 +134,36 @@ class PlaybackSessionManagerTest {
player.setMediaItems(mediaItems)
player.play()

TestPillarboxRunHelper.runUntilPosition(player, 5.seconds, clock)
TestPlayerRunHelper.runUntilPlaybackState(player, Player.STATE_READY)

player.removeMediaItem(1)

TestPlayerRunHelper.runUntilPlaybackState(player, Player.STATE_ENDED)
player.clearMediaItems()
TestPlayerRunHelper.runUntilPendingCommandsAreFullyHandled(player)

val sessions = mutableListOf<PlaybackSessionManager.Session>()
val start = mutableListOf<PlaybackSessionManager.Session>()
val current = mutableListOf<PlaybackSessionManager.Session>()
val finished = mutableListOf<PlaybackSessionManager.Session>()

verifyOrder {
sessionManagerListener.onSessionCreated(capture(sessions)) // Item 1
sessionManagerListener.onCurrentSession(capture(sessions)) // Item 1
sessionManagerListener.onSessionCreated(capture(sessions)) // Item 3
sessionManagerListener.onSessionFinished(capture(sessions)) // Item 1
sessionManagerListener.onCurrentSession(capture(sessions)) // Item 3
verify {
sessionManagerListener.onSessionCreated(capture(start)) // Item 1
sessionManagerListener.onCurrentSession(capture(current)) // Item 1
sessionManagerListener.onSessionFinished(capture(finished)) // Item 1
}
confirmVerified(sessionManagerListener)

assertEquals(5, sessions.size)
assertEquals(2, sessions.distinctBy { it.sessionId }.size)
assertEquals(
listOf(mediaItems[0], mediaItems[0], mediaItems[2], mediaItems[0], mediaItems[2]),
sessions.map { it.mediaItem }.reversed(),
)
assertEquals(2, start.size)
assertEquals(2, current.size)
assertEquals(2, finished.size)

assertEquals(mediaItems[0], start[0].mediaItem)
assertEquals(mediaItems[0], current[0].mediaItem)
assertEquals(mediaItems[0], finished[0].mediaItem)

assertEquals(mediaItems[2], start[1].mediaItem)
assertEquals(mediaItems[2], current[1].mediaItem)
assertEquals(mediaItems[2], finished[1].mediaItem)
}

@Test
Expand All @@ -164,32 +173,33 @@ class PlaybackSessionManagerTest {
player.setMediaItems(mediaItems)
player.play()

TestPillarboxRunHelper.runUntilPosition(player, 5.seconds, clock)
TestPlayerRunHelper.runUntilPlaybackState(player, Player.STATE_READY)

player.removeMediaItem(0)

TestPlayerRunHelper.runUntilPlaybackState(player, Player.STATE_ENDED)
player.clearMediaItems()
TestPlayerRunHelper.runUntilPendingCommandsAreFullyHandled(player)

val sessions = mutableListOf<PlaybackSessionManager.Session>()
val start = mutableListOf<PlaybackSessionManager.Session>()
val current = mutableListOf<PlaybackSessionManager.Session>()
val finished = mutableListOf<PlaybackSessionManager.Session>()

verifyOrder {
sessionManagerListener.onSessionCreated(capture(sessions)) // Item 1
sessionManagerListener.onCurrentSession(capture(sessions)) // Item 1
sessionManagerListener.onSessionFinished(capture(sessions)) // Item 1
sessionManagerListener.onSessionCreated(capture(sessions)) // Item 2
sessionManagerListener.onCurrentSession(capture(sessions)) // Item 2
sessionManagerListener.onSessionCreated(capture(sessions)) // Item 3
sessionManagerListener.onSessionFinished(capture(sessions)) // Item 2
sessionManagerListener.onCurrentSession(capture(sessions)) // Item 3
verify {
sessionManagerListener.onSessionCreated(capture(start)) // Item 1
sessionManagerListener.onCurrentSession(capture(current)) // Item 1
sessionManagerListener.onSessionFinished(capture(finished)) // Item 1
}
confirmVerified(sessionManagerListener)

assertEquals(8, sessions.size)
assertEquals(3, sessions.distinctBy { it.sessionId }.size)
assertEquals(
listOf(mediaItems[0], mediaItems[0], mediaItems[0], mediaItems[1], mediaItems[1], mediaItems[2], mediaItems[1], mediaItems[2]),
sessions.map { it.mediaItem }.reversed(),
)
assertEquals(3, start.size)
assertEquals(3, current.size)
assertEquals(3, finished.size)
for (i in 0 until 3) {
assertEquals(mediaItems[i], start[i].mediaItem)
assertEquals(mediaItems[i], current[i].mediaItem)
assertEquals(mediaItems[i], finished[i].mediaItem)
}
}

@AfterTest
Expand Down

0 comments on commit db910ff

Please sign in to comment.