blob: 8e2551bbfb24aee7bdc34542451f4011250ba635 [file] [log] [blame]
package com.xtremelabs.robolectric.shadows;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import android.os.CountDownTimer;
import com.xtremelabs.robolectric.Robolectric;
import com.xtremelabs.robolectric.WithTestDefaultsRunner;
import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.CoreMatchers.not;
import static org.hamcrest.CoreMatchers.notNullValue;
import static org.junit.Assert.assertThat;
@RunWith(WithTestDefaultsRunner.class)
public class CountDownTimerTest {
private ShadowCountDownTimer shadowCountDownTimer;
private CountDownTimer countDownTimer;
private long millisInFuture = 2000;
private long countDownInterval = 1000;
private String msg = null;
@Before
public void setUp() throws Exception {
countDownTimer = new CountDownTimer(millisInFuture, countDownInterval) {
@Override
public void onFinish() {
msg = "onFinish() is called";
}
@Override
public void onTick(long millisUnitilFinished) {
msg = "onTick() is called";
}
};
shadowCountDownTimer = Robolectric.shadowOf(countDownTimer);
}
@Test
public void testInvokeOnTick() {
assertThat(msg, not(equalTo("onTick() is called")));
shadowCountDownTimer.invokeTick(countDownInterval);
assertThat(msg, equalTo("onTick() is called"));
}
@Test
public void testInvokeOnFinish() {
assertThat(msg, not(equalTo("onFinish() is called")));
shadowCountDownTimer.invokeFinish();
assertThat(msg, equalTo("onFinish() is called"));
}
@Test
public void testStart() {
assertThat(shadowCountDownTimer.hasStarted(), equalTo(false));
CountDownTimer timer = shadowCountDownTimer.start();
assertThat(timer, notNullValue());
assertThat(shadowCountDownTimer.hasStarted(), equalTo(true));
}
@Test
public void testCancel() {
CountDownTimer timer = shadowCountDownTimer.start();
assertThat(timer, notNullValue());
assertThat(shadowCountDownTimer.hasStarted(), equalTo(true));
shadowCountDownTimer.cancel();
assertThat(shadowCountDownTimer.hasStarted(), equalTo(false));
}
@Test
public void testAccessors() {
assertThat(shadowCountDownTimer.getCountDownInterval(), equalTo(countDownInterval));
assertThat(shadowCountDownTimer.getMillisInFuture(), equalTo(millisInFuture));
}
}