Skip to content

Instantly share code, notes, and snippets.

@izmajlowiczl
Created March 29, 2015 21:30
Show Gist options
  • Select an option

  • Save izmajlowiczl/f5a1381fe25b3e7d410a to your computer and use it in GitHub Desktop.

Select an option

Save izmajlowiczl/f5a1381fe25b3e7d410a to your computer and use it in GitHub Desktop.
Exploratory test for DateUtils::getRelativeTimeSpanString class from Android SDK.
package pl.izmajlowiczl.bsj.delete_me;
import android.text.format.DateUtils;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
import java.util.Calendar;
import java.util.Locale;
import static org.junit.Assert.assertEquals;
@RunWith(RobolectricTestRunner.class)
public class DateUtilsTest {
@Before
public void setup() {
Locale.setDefault(Locale.ENGLISH);
}
@Test
public void lessThanOneMinuteAgo() {
Calendar calendar = Calendar.getInstance();
long now = calendar.getTimeInMillis();
calendar.add(Calendar.SECOND, -10);
long start = calendar.getTimeInMillis();
final CharSequence string = DateUtils.getRelativeTimeSpanString(
start, now, DateUtils.MINUTE_IN_MILLIS);
assertEquals("0 minutes ago", string);
}
@Test
public void moreThanOneMinuteAfter() {
Calendar calendar = Calendar.getInstance();
long now = calendar.getTimeInMillis();
calendar.add(Calendar.SECOND, 10);
long start = calendar.getTimeInMillis();
final CharSequence string = DateUtils.getRelativeTimeSpanString(
start, now, DateUtils.MINUTE_IN_MILLIS);
assertEquals("in 0 minutes", string);
}
@Test
public void oneMinuteAgo() {
Calendar calendar = Calendar.getInstance();
long now = calendar.getTimeInMillis();
calendar.add(Calendar.MINUTE, -1);
long start = calendar.getTimeInMillis();
final CharSequence string = DateUtils.getRelativeTimeSpanString(
start, now, DateUtils.MINUTE_IN_MILLIS);
assertEquals("1 minute ago", string);
}
@Test
public void oneMinuteAfter() {
Calendar calendar = Calendar.getInstance();
long now = calendar.getTimeInMillis();
calendar.add(Calendar.MINUTE, 1);
long start = calendar.getTimeInMillis();
final CharSequence string = DateUtils.getRelativeTimeSpanString(
start, now, DateUtils.MINUTE_IN_MILLIS);
assertEquals("in 1 minute", string);
}
@Test
public void betweenMinuteAndHourInPast() {
Calendar calendar = Calendar.getInstance();
long now = calendar.getTimeInMillis();
calendar.add(Calendar.MINUTE, -10);
long start = calendar.getTimeInMillis();
final CharSequence string = DateUtils.getRelativeTimeSpanString(
start, now, DateUtils.MINUTE_IN_MILLIS);
assertEquals("10 minutes ago", string);
}
@Test
public void betweenMinuteAndHourInFuture() {
Calendar calendar = Calendar.getInstance();
long now = calendar.getTimeInMillis();
calendar.add(Calendar.MINUTE, 10);
long start = calendar.getTimeInMillis();
final CharSequence string = DateUtils.getRelativeTimeSpanString(
start, now, DateUtils.MINUTE_IN_MILLIS);
assertEquals("in 10 minutes", string);
}
@Test
public void betweenHourAndWeekInPast() {
Calendar calendar = Calendar.getInstance();
long now = calendar.getTimeInMillis();
calendar.add(Calendar.DAY_OF_WEEK, -2);
long start = calendar.getTimeInMillis();
final CharSequence string = DateUtils.getRelativeTimeSpanString(
start, now, DateUtils.MINUTE_IN_MILLIS);
assertEquals("2 days ago", string);
}
@Test
public void betweenHourAndWeekInFuture() {
Calendar calendar = Calendar.getInstance();
long now = calendar.getTimeInMillis();
calendar.add(Calendar.DAY_OF_WEEK, 2);
long start = calendar.getTimeInMillis();
final CharSequence string = DateUtils.getRelativeTimeSpanString(
start, now, DateUtils.MINUTE_IN_MILLIS);
assertEquals("in 2 days", string);
}
@Test
public void oneWeekInPast() {
Calendar calendar = Calendar.getInstance();
long now = calendar.getTimeInMillis();
calendar.add(Calendar.WEEK_OF_MONTH, -1);
long start = calendar.getTimeInMillis();
final CharSequence string = DateUtils.getRelativeTimeSpanString(
start, now, DateUtils.MINUTE_IN_MILLIS);
assertEquals("7 days ago", string);
}
@Test
public void oneWeekInFuture() {
Calendar calendar = Calendar.getInstance();
long now = calendar.getTimeInMillis();
calendar.add(Calendar.WEEK_OF_MONTH, 1);
long start = calendar.getTimeInMillis();
final CharSequence string = DateUtils.getRelativeTimeSpanString(
start, now, DateUtils.MINUTE_IN_MILLIS);
assertEquals("Apr 5, 2015", string);
}
@Test
public void moreThanWeekInPast() {
Calendar calendar = Calendar.getInstance();
calendar.set(2015, 3, 29, 23, 1, 2);
long now = calendar.getTimeInMillis();
calendar.add(Calendar.WEEK_OF_MONTH, -2);
long start = calendar.getTimeInMillis();
final CharSequence string = DateUtils.getRelativeTimeSpanString(
start, now, DateUtils.MINUTE_IN_MILLIS);
assertEquals("Apr 15, 2015", string);
}
@Test
public void moreThanWeekInFuture() {
Calendar calendar = Calendar.getInstance();
calendar.set(2015, 3, 10, 23, 1, 2);
long now = calendar.getTimeInMillis();
calendar.add(Calendar.WEEK_OF_MONTH, 2);
long start = calendar.getTimeInMillis();
final CharSequence string = DateUtils.getRelativeTimeSpanString(
start, now, DateUtils.MINUTE_IN_MILLIS);
assertEquals("Apr 24, 2015", string);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment