package com.xtremelabs.robolectric.shadows; import static com.xtremelabs.robolectric.Robolectric.shadowOf; import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.CoreMatchers.is; import static org.junit.Assert.assertThat; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import android.app.Activity; import android.content.Context; import android.os.Vibrator; import com.xtremelabs.robolectric.WithTestDefaultsRunner; @RunWith(WithTestDefaultsRunner.class) public class VibratorTest { private Vibrator vibrator; private ShadowVibrator shadowVibrator; @Before public void before() { vibrator = (Vibrator) new Activity().getSystemService(Context.VIBRATOR_SERVICE); shadowVibrator = shadowOf(vibrator); } @Test public void vibrateMilliseconds() { vibrator.vibrate(5000); assertThat(shadowVibrator.isVibrating(), is(true)); assertThat(shadowVibrator.getMilliseconds(), equalTo(5000L)); } @Test public void vibratePattern() { long[] pattern = new long[] { 0, 200 }; vibrator.vibrate(pattern, 2); assertThat(shadowVibrator.isVibrating(), is(true)); assertThat(shadowVibrator.getPattern(), equalTo(pattern)); assertThat(shadowVibrator.getRepeat(), equalTo(2)); } @Test public void cancelled() { vibrator.vibrate(5000); assertThat(shadowVibrator.isVibrating(), is(true)); assertThat(shadowVibrator.isCancelled(), is(false)); vibrator.cancel(); assertThat(shadowVibrator.isVibrating(), is(false)); assertThat(shadowVibrator.isCancelled(), is(true)); } }