Skip to content

Commit a9eb121

Browse files
toniheimicrokatz
authored andcommitted
Split test methods more clearly in arrange, act, assert.
The tests in MediaControllerCompatCallbackWithMediaSessionTest don't follow this pattern very consistently at the moment. PiperOrigin-RevId: 487501913 (cherry picked from commit c6a0ba2)
1 parent 58d670d commit a9eb121

File tree

1 file changed

+21
-35
lines changed

1 file changed

+21
-35
lines changed

libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaControllerCompatCallbackWithMediaSessionTest.java

Lines changed: 21 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,6 @@ public void onPlaybackStateChanged(PlaybackStateCompat state) {
227227
@Test
228228
public void repeatModeChange() throws Exception {
229229
@PlaybackStateCompat.RepeatMode int testRepeatMode = PlaybackStateCompat.REPEAT_MODE_ALL;
230-
231230
CountDownLatch latch = new CountDownLatch(1);
232231
AtomicInteger repeatModeRef = new AtomicInteger();
233232
MediaControllerCompat.Callback callback =
@@ -242,6 +241,7 @@ public void onRepeatModeChanged(@PlaybackStateCompat.RepeatMode int repeatMode)
242241

243242
session.getMockPlayer().setRepeatMode(Player.REPEAT_MODE_ALL);
244243
session.getMockPlayer().notifyRepeatModeChanged();
244+
245245
assertThat(latch.await(TIMEOUT_MS, MILLISECONDS)).isTrue();
246246
assertThat(repeatModeRef.get()).isEqualTo(testRepeatMode);
247247
assertThat(controllerCompat.getRepeatMode()).isEqualTo(testRepeatMode);
@@ -251,7 +251,6 @@ public void onRepeatModeChanged(@PlaybackStateCompat.RepeatMode int repeatMode)
251251
public void shuffleModeChange() throws Exception {
252252
@PlaybackStateCompat.ShuffleMode
253253
int testShuffleModeEnabled = PlaybackStateCompat.SHUFFLE_MODE_ALL;
254-
255254
CountDownLatch latch = new CountDownLatch(1);
256255
AtomicInteger shuffleModeRef = new AtomicInteger();
257256
MediaControllerCompat.Callback callback =
@@ -266,6 +265,7 @@ public void onShuffleModeChanged(@PlaybackStateCompat.ShuffleMode int shuffleMod
266265

267266
session.getMockPlayer().setShuffleModeEnabled(/* shuffleModeEnabled= */ true);
268267
session.getMockPlayer().notifyShuffleModeEnabledChanged();
268+
269269
assertThat(latch.await(TIMEOUT_MS, MILLISECONDS)).isTrue();
270270
assertThat(shuffleModeRef.get()).isEqualTo(testShuffleModeEnabled);
271271
assertThat(controllerCompat.getShuffleMode()).isEqualTo(testShuffleModeEnabled);
@@ -284,6 +284,7 @@ public void onSessionDestroyed() {
284284
controllerCompat.registerCallback(callback, handler);
285285

286286
session.release();
287+
287288
assertThat(latch.await(TIMEOUT_MS, MILLISECONDS)).isTrue();
288289
}
289290

@@ -312,7 +313,6 @@ public void setPlayer_isNotified() throws Exception {
312313
new MediaMetadata.Builder().setTitle(testPlaylistTitle).build();
313314
boolean testShuffleModeEnabled = true;
314315
@RepeatMode int testRepeatMode = Player.REPEAT_MODE_ONE;
315-
316316
AtomicReference<PlaybackStateCompat> playbackStateRef = new AtomicReference<>();
317317
AtomicReference<MediaMetadataCompat> metadataRef = new AtomicReference<>();
318318
AtomicReference<CharSequence> queueTitleRef = new AtomicReference<>();
@@ -361,7 +361,6 @@ public void onShuffleModeChanged(int shuffleMode) {
361361
}
362362
};
363363
controllerCompat.registerCallback(callback, handler);
364-
365364
Bundle playerConfig =
366365
new RemoteMediaSession.MockPlayerConfigBuilder()
367366
.setPlaybackState(testState)
@@ -376,13 +375,13 @@ public void onShuffleModeChanged(int shuffleMode) {
376375
.setShuffleModeEnabled(testShuffleModeEnabled)
377376
.setRepeatMode(testRepeatMode)
378377
.build();
378+
379379
session.setPlayer(playerConfig);
380380

381381
assertThat(latchForPlaybackState.await(TIMEOUT_MS, MILLISECONDS)).isTrue();
382382
assertThat(playbackStateRef.get().getBufferedPosition()).isEqualTo(testBufferedPositionMs);
383383
assertThat(playbackStateRef.get().getPosition()).isEqualTo(testCurrentPositionMs);
384384
assertThat(playbackStateRef.get().getPlaybackSpeed()).isEqualTo(playbackParameters.speed);
385-
386385
assertThat(latchForMetadata.await(TIMEOUT_MS, MILLISECONDS)).isTrue();
387386
assertThat(metadataRef.get().getString(METADATA_KEY_MEDIA_ID))
388387
.isEqualTo(testMediaItems.get(testItemIndex).mediaId);
@@ -393,7 +392,6 @@ public void onShuffleModeChanged(int shuffleMode) {
393392
playbackStateRef.get(), metadataRef.get(), /* timeDiffMs= */ C.TIME_UNSET);
394393
assertThat(playbackStateFromControllerCompat).isEqualTo(testState);
395394
assertThat(metadataRef.get().getRating(METADATA_KEY_USER_RATING).hasHeart()).isTrue();
396-
397395
assertThat(latchForQueue.await(TIMEOUT_MS, MILLISECONDS)).isTrue();
398396
List<QueueItem> queue = controllerCompat.getQueue();
399397
assertThat(queue).hasSize(testTimeline.getWindowCount());
@@ -402,7 +400,6 @@ public void onShuffleModeChanged(int shuffleMode) {
402400
.isEqualTo(testMediaItems.get(i).mediaId);
403401
}
404402
assertThat(queueTitleRef.get().toString()).isEqualTo(testPlaylistTitle);
405-
406403
assertThat(latchForShuffleMode.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)).isTrue();
407404
assertThat(shuffleModeRef.get()).isEqualTo(PlaybackStateCompat.SHUFFLE_MODE_ALL);
408405
assertThat(latchForRepeatMode.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)).isTrue();
@@ -415,7 +412,6 @@ public void setPlayer_playbackTypeChangedToRemote() throws Exception {
415412
new DeviceInfo(DeviceInfo.PLAYBACK_TYPE_REMOTE, /* minVolume= */ 0, /* maxVolume= */ 25);
416413
int legacyPlaybackType = MediaControllerCompat.PlaybackInfo.PLAYBACK_TYPE_REMOTE;
417414
int deviceVolume = 10;
418-
419415
CountDownLatch playbackInfoNotified = new CountDownLatch(1);
420416
MediaControllerCompat.Callback callback =
421417
new MediaControllerCompat.Callback() {
@@ -429,12 +425,12 @@ public void onAudioInfoChanged(MediaControllerCompat.PlaybackInfo info) {
429425
}
430426
};
431427
controllerCompat.registerCallback(callback, handler);
432-
433428
Bundle playerConfig =
434429
new RemoteMediaSession.MockPlayerConfigBuilder()
435430
.setDeviceInfo(deviceInfo)
436431
.setDeviceVolume(deviceVolume)
437432
.build();
433+
438434
session.setPlayer(playerConfig);
439435

440436
assertThat(playbackInfoNotified.await(TIMEOUT_MS, MILLISECONDS)).isTrue();
@@ -451,15 +447,13 @@ public void setPlayer_playbackTypeChangedToLocal() throws Exception {
451447
Bundle playerConfig =
452448
new RemoteMediaSession.MockPlayerConfigBuilder().setDeviceInfo(deviceInfo).build();
453449
session.setPlayer(playerConfig);
454-
455450
DeviceInfo deviceInfoToUpdate =
456451
new DeviceInfo(DeviceInfo.PLAYBACK_TYPE_LOCAL, /* minVolume= */ 0, /* maxVolume= */ 10);
457452
int legacyPlaybackTypeToUpdate = MediaControllerCompat.PlaybackInfo.PLAYBACK_TYPE_LOCAL;
458453
int legacyStream = AudioManager.STREAM_RING;
459454
AudioAttributesCompat attrsCompat =
460455
new AudioAttributesCompat.Builder().setLegacyStreamType(legacyStream).build();
461456
AudioAttributes attrs = MediaUtils.convertToAudioAttributes(attrsCompat);
462-
463457
CountDownLatch playbackInfoNotified = new CountDownLatch(1);
464458
MediaControllerCompat.Callback callback =
465459
new MediaControllerCompat.Callback() {
@@ -472,12 +466,12 @@ public void onAudioInfoChanged(MediaControllerCompat.PlaybackInfo info) {
472466
}
473467
};
474468
controllerCompat.registerCallback(callback, handler);
475-
476469
Bundle playerConfigToUpdate =
477470
new RemoteMediaSession.MockPlayerConfigBuilder()
478471
.setDeviceInfo(deviceInfoToUpdate)
479472
.setAudioAttributes(attrs)
480473
.build();
474+
481475
session.setPlayer(playerConfigToUpdate);
482476

483477
// In API 21 and 22, onAudioInfoChanged is not called when playback is changed to local.
@@ -506,7 +500,6 @@ public void setPlayer_playbackTypeNotChanged_local() throws Exception {
506500
AudioAttributesCompat attrsCompat =
507501
new AudioAttributesCompat.Builder().setLegacyStreamType(legacyStream).build();
508502
AudioAttributes attrs = MediaUtils.convertToAudioAttributes(attrsCompat);
509-
510503
CountDownLatch playbackInfoNotified = new CountDownLatch(1);
511504
MediaControllerCompat.Callback callback =
512505
new MediaControllerCompat.Callback() {
@@ -519,12 +512,12 @@ public void onAudioInfoChanged(MediaControllerCompat.PlaybackInfo info) {
519512
}
520513
};
521514
controllerCompat.registerCallback(callback, handler);
522-
523515
Bundle playerConfig =
524516
new RemoteMediaSession.MockPlayerConfigBuilder()
525517
.setDeviceInfo(deviceInfo)
526518
.setAudioAttributes(attrs)
527519
.build();
520+
528521
session.setPlayer(playerConfig);
529522

530523
// In API 21+, onAudioInfoChanged() is not called when playbackType is not changed.
@@ -554,12 +547,10 @@ public void setPlayer_playbackTypeNotChanged_remote() throws Exception {
554547
.setDeviceVolume(1)
555548
.build();
556549
session.setPlayer(playerConfig);
557-
558550
DeviceInfo deviceInfoToUpdate =
559551
new DeviceInfo(DeviceInfo.PLAYBACK_TYPE_REMOTE, /* minVolume= */ 0, /* maxVolume= */ 25);
560552
int legacyPlaybackTypeToUpdate = MediaControllerCompat.PlaybackInfo.PLAYBACK_TYPE_REMOTE;
561553
int deviceVolumeToUpdate = 10;
562-
563554
CountDownLatch playbackInfoNotified = new CountDownLatch(1);
564555
MediaControllerCompat.Callback callback =
565556
new MediaControllerCompat.Callback() {
@@ -573,12 +564,12 @@ public void onAudioInfoChanged(MediaControllerCompat.PlaybackInfo info) {
573564
}
574565
};
575566
controllerCompat.registerCallback(callback, handler);
576-
577567
Bundle playerConfigToUpdate =
578568
new RemoteMediaSession.MockPlayerConfigBuilder()
579569
.setDeviceInfo(deviceInfoToUpdate)
580570
.setDeviceVolume(deviceVolumeToUpdate)
581571
.build();
572+
582573
session.setPlayer(playerConfigToUpdate);
583574

584575
// In API 21+, onAudioInfoChanged() is not called when playbackType is not changed.
@@ -620,6 +611,7 @@ public void onPlaybackStateChanged(PlaybackStateCompat state) {
620611
controllerCompat.registerCallback(callback, handler);
621612

622613
session.getMockPlayer().notifyPlaybackParametersChanged(playbackParameters);
614+
623615
assertThat(latch.await(TIMEOUT_MS, MILLISECONDS)).isTrue();
624616
assertThat(playbackStateRef.get().getPlaybackSpeed()).isEqualTo(playbackParameters.speed);
625617
assertThat(
@@ -645,7 +637,6 @@ public void playbackStateChange_playWhenReadyBecomesFalseWhenReady_notifiesPause
645637
.getMockPlayer()
646638
.setPlayWhenReady(/* playWhenReady= */ true, Player.PLAYBACK_SUPPRESSION_REASON_NONE);
647639
session.getMockPlayer().notifyPlaybackStateChanged(STATE_READY);
648-
649640
AtomicReference<PlaybackStateCompat> playbackStateCompatRef = new AtomicReference<>();
650641
CountDownLatch latch = new CountDownLatch(1);
651642
MediaControllerCompat.Callback callback =
@@ -662,8 +653,8 @@ public void onPlaybackStateChanged(PlaybackStateCompat playbackStateCompat) {
662653
.getMockPlayer()
663654
.notifyPlayWhenReadyChanged(
664655
/* playWhenReady= */ false, Player.PLAYBACK_SUPPRESSION_REASON_NONE);
665-
assertThat(latch.await(TIMEOUT_MS, MILLISECONDS)).isTrue();
666656

657+
assertThat(latch.await(TIMEOUT_MS, MILLISECONDS)).isTrue();
667658
assertThat(playbackStateCompatRef.get().getState()).isEqualTo(PlaybackStateCompat.STATE_PAUSED);
668659
assertThat(playbackStateCompatRef.get().getPlaybackSpeed()).isEqualTo(0f);
669660
assertThat(
@@ -696,7 +687,6 @@ public void playbackStateChange_playWhenReadyBecomesTrueWhenBuffering_notifiesBu
696687
.getMockPlayer()
697688
.setPlayWhenReady(/* playWhenReady= */ false, Player.PLAYBACK_SUPPRESSION_REASON_NONE);
698689
session.getMockPlayer().notifyPlaybackStateChanged(Player.STATE_BUFFERING);
699-
700690
AtomicReference<PlaybackStateCompat> playbackStateCompatRef = new AtomicReference<>();
701691
CountDownLatch latch = new CountDownLatch(1);
702692
MediaControllerCompat.Callback callback =
@@ -708,12 +698,13 @@ public void onPlaybackStateChanged(PlaybackStateCompat playbackStateCompat) {
708698
}
709699
};
710700
controllerCompat.registerCallback(callback, handler);
701+
711702
session
712703
.getMockPlayer()
713704
.notifyPlayWhenReadyChanged(
714705
/* playWhenReady= */ true, Player.PLAYBACK_SUPPRESSION_REASON_NONE);
715-
assertThat(latch.await(TIMEOUT_MS, MILLISECONDS)).isTrue();
716706

707+
assertThat(latch.await(TIMEOUT_MS, MILLISECONDS)).isTrue();
717708
assertThat(playbackStateCompatRef.get().getState())
718709
.isEqualTo(PlaybackStateCompat.STATE_BUFFERING);
719710
assertThat(playbackStateCompatRef.get().getPlaybackSpeed()).isEqualTo(0f);
@@ -746,7 +737,6 @@ public void playbackStateChange_playbackStateBecomesEnded_notifiesStopped() thro
746737
.getMockPlayer()
747738
.setPlayWhenReady(/* playWhenReady= */ true, Player.PLAYBACK_SUPPRESSION_REASON_NONE);
748739
session.getMockPlayer().notifyPlaybackStateChanged(STATE_READY);
749-
750740
AtomicReference<PlaybackStateCompat> playbackStateCompatRef = new AtomicReference<>();
751741
CountDownLatch latch = new CountDownLatch(1);
752742
MediaControllerCompat.Callback callback =
@@ -760,8 +750,8 @@ public void onPlaybackStateChanged(PlaybackStateCompat playbackStateCompat) {
760750
controllerCompat.registerCallback(callback, handler);
761751

762752
session.getMockPlayer().notifyPlaybackStateChanged(STATE_ENDED);
763-
assertThat(latch.await(TIMEOUT_MS, MILLISECONDS)).isTrue();
764753

754+
assertThat(latch.await(TIMEOUT_MS, MILLISECONDS)).isTrue();
765755
assertThat(playbackStateCompatRef.get().getState())
766756
.isEqualTo(PlaybackStateCompat.STATE_STOPPED);
767757
assertThat(playbackStateCompatRef.get().getPlaybackSpeed()).isEqualTo(0f);
@@ -795,7 +785,6 @@ public void playbackStateChange_withPlaybackSuppression_notifiesPlayingWithSpeed
795785
session
796786
.getMockPlayer()
797787
.setPlayWhenReady(/* playWhenReady= */ true, Player.PLAYBACK_SUPPRESSION_REASON_NONE);
798-
799788
AtomicReference<PlaybackStateCompat> playbackStateCompatRef = new AtomicReference<>();
800789
CountDownLatch latch = new CountDownLatch(1);
801790
MediaControllerCompat.Callback callback =
@@ -813,8 +802,8 @@ public void onPlaybackStateChanged(PlaybackStateCompat playbackStateCompat) {
813802
.notifyPlayWhenReadyChanged(
814803
/* playWhenReady= */ true,
815804
Player.PLAYBACK_SUPPRESSION_REASON_TRANSIENT_AUDIO_FOCUS_LOSS);
816-
assertThat(latch.await(TIMEOUT_MS, MILLISECONDS)).isTrue();
817805

806+
assertThat(latch.await(TIMEOUT_MS, MILLISECONDS)).isTrue();
818807
assertThat(playbackStateCompatRef.get().getState())
819808
.isEqualTo(PlaybackStateCompat.STATE_PLAYING);
820809
assertThat(playbackStateCompatRef.get().getPlaybackSpeed()).isEqualTo(0f);
@@ -848,7 +837,6 @@ public void playbackStateChange_playWhenReadyBecomesTrueWhenReady_notifiesPlayin
848837
session
849838
.getMockPlayer()
850839
.setPlayWhenReady(/* playWhenReady= */ false, Player.PLAYBACK_SUPPRESSION_REASON_NONE);
851-
852840
AtomicReference<PlaybackStateCompat> playbackStateCompatRef = new AtomicReference<>();
853841
CountDownLatch latch = new CountDownLatch(1);
854842
MediaControllerCompat.Callback callback =
@@ -865,8 +853,8 @@ public void onPlaybackStateChanged(PlaybackStateCompat playbackStateCompat) {
865853
.getMockPlayer()
866854
.notifyPlayWhenReadyChanged(
867855
/* playWhenReady= */ true, Player.PLAYBACK_SUPPRESSION_REASON_NONE);
868-
assertThat(latch.await(TIMEOUT_MS, MILLISECONDS)).isTrue();
869856

857+
assertThat(latch.await(TIMEOUT_MS, MILLISECONDS)).isTrue();
870858
assertThat(playbackStateCompatRef.get().getState())
871859
.isEqualTo(PlaybackStateCompat.STATE_PLAYING);
872860
assertThat(playbackStateCompatRef.get().getPlaybackSpeed()).isEqualTo(1f);
@@ -890,7 +878,6 @@ public void onPlaybackStateChanged(PlaybackStateCompat playbackStateCompat) {
890878
@Test
891879
public void playbackStateChange_positionDiscontinuityNotifies_updatesPosition() throws Exception {
892880
long testSeekPosition = 1300;
893-
894881
AtomicReference<PlaybackStateCompat> playbackStateRef = new AtomicReference<>();
895882
CountDownLatch latch = new CountDownLatch(1);
896883
MediaControllerCompat.Callback callback =
@@ -902,14 +889,15 @@ public void onPlaybackStateChanged(PlaybackStateCompat state) {
902889
}
903890
};
904891
controllerCompat.registerCallback(callback, handler);
905-
906892
session.getMockPlayer().setCurrentPosition(testSeekPosition);
893+
907894
session
908895
.getMockPlayer()
909896
.notifyPositionDiscontinuity(
910897
/* oldPosition= */ SessionPositionInfo.DEFAULT_POSITION_INFO,
911898
/* newPosition= */ SessionPositionInfo.DEFAULT_POSITION_INFO,
912899
Player.DISCONTINUITY_REASON_SEEK);
900+
913901
assertThat(latch.await(TIMEOUT_MS, MILLISECONDS)).isTrue();
914902
assertThat(playbackStateRef.get().getPosition()).isEqualTo(testSeekPosition);
915903
assertThat(controllerCompat.getPlaybackState().getPosition()).isEqualTo(testSeekPosition);
@@ -1004,7 +992,6 @@ public void currentMediaItemChange() throws Exception {
1004992
.build());
1005993
Timeline timeline = new PlaylistTimeline(testMediaItems);
1006994
session.getMockPlayer().setTimeline(timeline);
1007-
1008995
AtomicReference<MediaMetadataCompat> metadataRef = new AtomicReference<>();
1009996
AtomicReference<PlaybackStateCompat> playbackStateRef = new AtomicReference<>();
1010997
CountDownLatch latchForMetadata = new CountDownLatch(1);
@@ -1061,8 +1048,8 @@ public void onQueueChanged(List queue) {
10611048
}
10621049
};
10631050
controllerCompat.registerCallback(callback, handler);
1064-
10651051
Timeline timeline = MediaTestUtils.createTimeline(/* windowCount= */ 5);
1052+
10661053
session.getMockPlayer().setTimeline(timeline);
10671054
session.getMockPlayer().notifyTimelineChanged(Player.TIMELINE_CHANGE_REASON_PLAYLIST_CHANGED);
10681055

@@ -1093,8 +1080,8 @@ public void onQueueChanged(List queue) {
10931080
}
10941081
};
10951082
controllerCompat.registerCallback(callback, handler);
1096-
10971083
int listSize = 5_000;
1084+
10981085
session.getMockPlayer().createAndSetFakeTimeline(listSize);
10991086
session.getMockPlayer().notifyTimelineChanged(Player.TIMELINE_CHANGE_REASON_PLAYLIST_CHANGED);
11001087

@@ -1131,13 +1118,13 @@ public void onQueueChanged(List queue) {
11311118
}
11321119
};
11331120
controllerCompat.registerCallback(callback, handler);
1134-
11351121
MediaItem mediaItem =
11361122
new MediaItem.Builder()
11371123
.setMediaId("mediaItem_withSampleMediaMetadata")
11381124
.setMediaMetadata(MediaTestUtils.createMediaMetadata())
11391125
.build();
11401126
Timeline timeline = new PlaylistTimeline(ImmutableList.of(mediaItem));
1127+
11411128
session.getMockPlayer().setTimeline(timeline);
11421129
session.getMockPlayer().notifyTimelineChanged(Player.TIMELINE_CHANGE_REASON_PLAYLIST_CHANGED);
11431130

@@ -1169,9 +1156,9 @@ public void onQueueTitleChanged(CharSequence title) {
11691156
}
11701157
};
11711158
controllerCompat.registerCallback(callback, handler);
1172-
11731159
String playlistTitle = "playlistTitle";
11741160
MediaMetadata playlistMetadata = new MediaMetadata.Builder().setTitle(playlistTitle).build();
1161+
11751162
session.getMockPlayer().setPlaylistMetadata(playlistMetadata);
11761163
session.getMockPlayer().notifyPlaylistMetadataChanged();
11771164

@@ -1189,7 +1176,6 @@ public void onAudioInfoChanged_isCalledByVolumeChange() throws Exception {
11891176
.setDeviceVolume(1)
11901177
.build();
11911178
session.setPlayer(playerConfig);
1192-
11931179
int targetVolume = 3;
11941180
CountDownLatch targetVolumeNotified = new CountDownLatch(1);
11951181
MediaControllerCompat.Callback callback =

0 commit comments

Comments
 (0)