org.robolectric.util.Scheduler.advanceBy()方法的使用及代码示例

x33g5p2x  于2022-01-30 转载在 其他  
字(9.5k)|赞(0)|评价(0)|浏览(149)

本文整理了Java中org.robolectric.util.Scheduler.advanceBy()方法的一些代码示例,展示了Scheduler.advanceBy()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Scheduler.advanceBy()方法的具体详情如下:
包路径:org.robolectric.util.Scheduler
类名称:Scheduler
方法名:advanceBy

Scheduler.advanceBy介绍

[英]Run all runnables that are scheduled to run in the next time interval.
[中]运行计划在下一个时间间隔内运行的所有可运行程序。

代码示例

代码示例来源:origin: robolectric/robolectric

  1. /**
  2. * Run all runnables that are scheduled to run in the next time interval.
  3. *
  4. * @param interval Time interval (in millis).
  5. * @return True if a runnable was executed.
  6. * @deprecated Use {@link #advanceBy(long, TimeUnit)}.
  7. */
  8. @Deprecated
  9. public synchronized boolean advanceBy(long interval) {
  10. return advanceBy(interval, TimeUnit.MILLISECONDS);
  11. }

代码示例来源:origin: robolectric/robolectric

  1. /**
  2. * Causes {@link Runnable}s that have been scheduled to run within the next specified amount of time to run while
  3. * advancing the scheduler's clock.
  4. */
  5. public void idle(long amount, TimeUnit unit) {
  6. getScheduler().advanceBy(amount, unit);
  7. }

代码示例来源:origin: robolectric/robolectric

  1. /**
  2. * Runs any background tasks previously queued by {@link android.os.AsyncTask#execute(Object[])}.
  3. *
  4. * Note: calling this method does not pause or un-pause the scheduler.
  5. */
  6. public static void runBackgroundTasks() {
  7. getInstance().getBackgroundThreadScheduler().advanceBy(0);
  8. }

代码示例来源:origin: robolectric/robolectric

  1. @Test
  2. public void testPauseReschedulesCompletionCallback() {
  3. shadowMediaPlayer.setState(PREPARED);
  4. mediaPlayer.start();
  5. scheduler.advanceBy(200);
  6. mediaPlayer.pause();
  7. scheduler.advanceBy(800);
  8. Mockito.verifyZeroInteractions(completionListener);
  9. mediaPlayer.start();
  10. scheduler.advanceBy(799);
  11. Mockito.verifyZeroInteractions(completionListener);
  12. scheduler.advanceBy(1);
  13. Mockito.verify(completionListener).onCompletion(mediaPlayer);
  14. Mockito.verifyNoMoreInteractions(completionListener);
  15. assertThat(scheduler.advanceToLastPostedRunnable()).isFalse();
  16. Mockito.verifyZeroInteractions(completionListener);
  17. }

代码示例来源:origin: robolectric/robolectric

  1. @Implementation
  2. protected static void sleep(long millis) {
  3. if (ShadowApplication.getInstance() == null) {
  4. return;
  5. }
  6. nanoTime = millis * MILLIS_PER_NANO;
  7. ShadowApplication.getInstance().getForegroundThreadScheduler().advanceBy(millis);
  8. }

代码示例来源:origin: robolectric/robolectric

  1. @Test
  2. public void testStop() {
  3. shadowMediaPlayer.setState(PREPARED);
  4. mediaPlayer.start();
  5. scheduler.advanceBy(300);
  6. mediaPlayer.stop();
  7. assertThat(mediaPlayer.getCurrentPosition()).isEqualTo(300);
  8. scheduler.advanceBy(400);
  9. assertThat(mediaPlayer.getCurrentPosition()).isEqualTo(300);
  10. }

代码示例来源:origin: robolectric/robolectric

  1. @Config(minSdk = O)
  2. @Test
  3. public void testSeekToMode() {
  4. shadowMediaPlayer.setState(PREPARED);
  5. // This time offset is just to make sure that it doesn't work by
  6. // accident because the offsets are calculated relative to 0.
  7. scheduler.advanceBy(100);
  8. mediaPlayer.start();
  9. scheduler.advanceBy(400);
  10. assertThat(mediaPlayer.getCurrentPosition()).isEqualTo(400);
  11. mediaPlayer.seekTo(600, MediaPlayer.SEEK_CLOSEST);
  12. scheduler.advanceBy(0);
  13. assertThat(mediaPlayer.getCurrentPosition()).isEqualTo(600);
  14. }

代码示例来源:origin: robolectric/robolectric

  1. @Test
  2. public void testRemoveEventAtOffset() {
  3. shadowMediaPlayer.setState(PREPARED);
  4. mediaPlayer.start();
  5. scheduler.advanceBy(200);
  6. MediaEvent e = info.scheduleInfoAtOffset(
  7. 500, 1, 3);
  8. scheduler.advanceBy(299);
  9. info.removeEventAtOffset(500, e);
  10. scheduler.advanceToLastPostedRunnable();
  11. Mockito.verifyZeroInteractions(infoListener);
  12. }

代码示例来源:origin: robolectric/robolectric

  1. @Test
  2. public void testSeekDuringPlaybackReschedulesCompletionCallback() {
  3. shadowMediaPlayer.setState(PREPARED);
  4. mediaPlayer.start();
  5. scheduler.advanceBy(300);
  6. mediaPlayer.seekTo(400);
  7. scheduler.advanceBy(599);
  8. Mockito.verifyZeroInteractions(completionListener);
  9. scheduler.advanceBy(1);
  10. Mockito.verify(completionListener).onCompletion(mediaPlayer);
  11. Mockito.verifyNoMoreInteractions(completionListener);
  12. assertThat(shadowMediaPlayer.getState()).isEqualTo(PLAYBACK_COMPLETED);
  13. assertThat(scheduler.advanceToLastPostedRunnable()).isFalse();
  14. Mockito.verifyZeroInteractions(completionListener);
  15. }

代码示例来源:origin: robolectric/robolectric

  1. @Test
  2. public void postDelayed_addsAJobToBeRunInTheFuture() throws Exception {
  3. scheduler.postDelayed(new AddToTranscript("one"), 1000);
  4. scheduler.postDelayed(new AddToTranscript("two"), 2000);
  5. scheduler.postDelayed(new AddToTranscript("three"), 3000);
  6. scheduler.advanceBy(1000);
  7. assertThat(transcript).containsExactly("one");
  8. transcript.clear();
  9. scheduler.advanceBy(500);
  10. assertThat(transcript).isEmpty();
  11. scheduler.advanceBy(501);
  12. assertThat(transcript).containsExactly("two");
  13. transcript.clear();
  14. scheduler.advanceBy(999);
  15. assertThat(transcript).containsExactly("three");
  16. }

代码示例来源:origin: robolectric/robolectric

  1. @Test
  2. public void testPauseUpdatesPosition() {
  3. shadowMediaPlayer.setState(PREPARED);
  4. mediaPlayer.start();
  5. scheduler.advanceBy(200);
  6. mediaPlayer.pause();
  7. scheduler.advanceBy(200);
  8. assertThat(shadowMediaPlayer.getState()).isEqualTo(PAUSED);
  9. assertThat(shadowMediaPlayer.getCurrentPosition()).isEqualTo(200);
  10. mediaPlayer.start();
  11. scheduler.advanceBy(200);
  12. assertThat(shadowMediaPlayer.getState()).isEqualTo(STARTED);
  13. assertThat(shadowMediaPlayer.getCurrentPosition()).isEqualTo(400);
  14. }

代码示例来源:origin: robolectric/robolectric

  1. @Test
  2. public void testPendingEventsRemovedOnError() {
  3. Mockito.when(errorListener.onError(mediaPlayer, 2, 3)).thenReturn(true);
  4. shadowMediaPlayer.setState(PREPARED);
  5. mediaPlayer.start();
  6. scheduler.advanceBy(200);
  7. // We should have a pending completion callback.
  8. assertThat(scheduler.size()).isEqualTo(1);
  9. shadowMediaPlayer.invokeErrorListener(2, 3);
  10. assertThat(scheduler.advanceToLastPostedRunnable()).isFalse();
  11. Mockito.verifyZeroInteractions(completionListener);
  12. }

代码示例来源:origin: robolectric/robolectric

  1. @Test
  2. public void testRemoveEvent() {
  3. shadowMediaPlayer.setState(PREPARED);
  4. mediaPlayer.start();
  5. scheduler.advanceBy(200);
  6. MediaEvent e = info.scheduleInfoAtOffset(500, 1, 3);
  7. scheduler.advanceBy(299);
  8. shadowMediaPlayer.doStop();
  9. info.removeEvent(e);
  10. shadowMediaPlayer.doStart();
  11. scheduler.advanceToLastPostedRunnable();
  12. Mockito.verifyZeroInteractions(infoListener);
  13. }

代码示例来源:origin: robolectric/robolectric

  1. @Test
  2. public void advanceBy_returnsTrueIffSomeJobWasRun() throws Exception {
  3. scheduler.postDelayed(new AddToTranscript("one"), 0);
  4. scheduler.postDelayed(new AddToTranscript("two"), 0);
  5. scheduler.postDelayed(new AddToTranscript("three"), 1000);
  6. assertThat(scheduler.advanceBy(0)).isTrue();
  7. assertThat(transcript).containsExactly("one", "two");
  8. transcript.clear();
  9. assertThat(scheduler.advanceBy(0)).isFalse();
  10. assertThat(transcript).isEmpty();
  11. assertThat(scheduler.advanceBy(1000)).isTrue();
  12. assertThat(transcript).containsExactly("three");
  13. }

代码示例来源:origin: robolectric/robolectric

  1. @Test
  2. public void testSeekWhilePausedDelayedCallback() {
  3. shadowMediaPlayer.setState(PAUSED);
  4. shadowMediaPlayer.setSeekDelay(100);
  5. scheduler.advanceBy(200);
  6. mediaPlayer.seekTo(450);
  7. scheduler.advanceBy(99);
  8. assertThat(mediaPlayer.getCurrentPosition()).isEqualTo(0);
  9. Mockito.verifyZeroInteractions(seekListener);
  10. scheduler.advanceBy(1);
  11. assertThat(mediaPlayer.getCurrentPosition()).isEqualTo(450);
  12. Mockito.verify(seekListener).onSeekComplete(mediaPlayer);
  13. // Check that no completion callback or alternative
  14. // seek callbacks have been scheduled.
  15. assertThat(scheduler.advanceToLastPostedRunnable()).isFalse();
  16. }

代码示例来源:origin: robolectric/robolectric

  1. @Test
  2. public void shouldRemovePostedCallbacksFromMessageQueue() throws Exception {
  3. TestRunnable runnable = new TestRunnable();
  4. view.postDelayed(runnable, 1);
  5. view.removeCallbacks(runnable);
  6. Robolectric.getForegroundThreadScheduler().advanceBy(1);
  7. assertThat(runnable.wasRun).isFalse();
  8. }

代码示例来源:origin: robolectric/robolectric

  1. @Test
  2. public void testScheduleErrorAtOffsetWhileNotPlaying() {
  3. info.scheduleErrorAtOffset(500, 1, 3);
  4. shadowMediaPlayer.setState(INITIALIZED);
  5. shadowMediaPlayer.setState(PREPARED);
  6. mediaPlayer.start();
  7. scheduler.advanceBy(499);
  8. Mockito.verifyZeroInteractions(errorListener);
  9. scheduler.advanceBy(1);
  10. Mockito.verify(errorListener).onError(mediaPlayer, 1, 3);
  11. assertThat(shadowMediaPlayer.getState()).isSameAs(ERROR);
  12. assertThat(scheduler.advanceToLastPostedRunnable()).isFalse();
  13. assertThat(shadowMediaPlayer.getCurrentPositionRaw()).isEqualTo(500);
  14. }

代码示例来源:origin: robolectric/robolectric

  1. @Test
  2. public void testDoStartStop() {
  3. assertThat(shadowMediaPlayer.isReallyPlaying()).isFalse();
  4. scheduler.advanceBy(100);
  5. shadowMediaPlayer.doStart();
  6. assertThat(shadowMediaPlayer.isReallyPlaying()).isTrue();
  7. assertThat(shadowMediaPlayer.getCurrentPositionRaw()).isEqualTo(0);
  8. assertThat(shadowMediaPlayer.getState()).isSameAs(IDLE);
  9. scheduler.advanceBy(100);
  10. assertThat(shadowMediaPlayer.getCurrentPositionRaw()).isEqualTo(100);
  11. shadowMediaPlayer.doStop();
  12. assertThat(shadowMediaPlayer.isReallyPlaying()).isFalse();
  13. assertThat(shadowMediaPlayer.getCurrentPositionRaw()).isEqualTo(100);
  14. assertThat(shadowMediaPlayer.getState()).isSameAs(IDLE);
  15. scheduler.advanceBy(50);
  16. assertThat(shadowMediaPlayer.getCurrentPositionRaw()).isEqualTo(100);
  17. }

代码示例来源:origin: robolectric/robolectric

  1. @Test
  2. public void testSetLoopingCalledWhileStartable() {
  3. final State[] startableStates = { PREPARED, PAUSED };
  4. for (State state : startableStates) {
  5. shadowMediaPlayer.setCurrentPosition(500);
  6. shadowMediaPlayer.setState(state);
  7. mediaPlayer.setLooping(true);
  8. mediaPlayer.start();
  9. scheduler.advanceBy(700);
  10. Mockito.verifyZeroInteractions(completionListener);
  11. assertThat(mediaPlayer.getCurrentPosition()).named(state.toString())
  12. .isEqualTo(200);
  13. }
  14. }

代码示例来源:origin: robolectric/robolectric

  1. @Test
  2. public void shouldPostActionsToTheMessageQueueWithDelay() throws Exception {
  3. ShadowLooper.pauseMainLooper();
  4. TestRunnable runnable = new TestRunnable();
  5. view.postDelayed(runnable, 1);
  6. assertFalse(runnable.wasRun);
  7. Robolectric.getForegroundThreadScheduler().advanceBy(1);
  8. assertTrue(runnable.wasRun);
  9. }

相关文章