Add GtaskApiUtilitiesTest

pull/73/head
Alex Baker 11 years ago
parent 3ee7909472
commit b92702dec8

@ -21,30 +21,13 @@ public class GtasksApiUtilities {
return new DateTime(newDate(time), TimeZone.getDefault());
}
// public static String unixTimeToGtasksCompletionTime(long time) {
// if (time == 0) return null;
// return new DateTime(newDate(time), TimeZone.getDefault()).toStringRfc3339();
// }
public static long gtasksCompletedTimeToUnixTime(DateTime gtasksCompletedTime, long defaultValue) {
public static long gtasksCompletedTimeToUnixTime(DateTime gtasksCompletedTime) {
if (gtasksCompletedTime == null) {
return defaultValue;
return 0;
}
return gtasksCompletedTime.getValue();
}
// public static long gtasksCompletedTimeToUnixTime(String gtasksCompletedTime, long defaultValue) {
// if (gtasksCompletedTime == null) return defaultValue;
// try {
// long utcTime = DateTime.parseRfc3339(gtasksCompletedTime).value;
// Date date = newDate(utcTime);
// return date.getTime();
// } catch (NumberFormatException e) {
// return defaultValue;
// }
// }
/**
* Google deals only in dates for due times, so on the server side they normalize to utc time
* and then truncate h:m:s to 0. This can lead to a loss of date information for
@ -55,7 +38,7 @@ public class GtasksApiUtilities {
if (time < 0) {
return null;
}
Date date = newDate(time);
Date date = newDate(time / 1000 * 1000);
date.setHours(0);
date.setMinutes(0);
date.setSeconds(0);
@ -63,15 +46,10 @@ public class GtasksApiUtilities {
return new DateTime(date, TimeZone.getTimeZone("UTC"));
}
// public static DateTime unixTimeToGtasksDueDate(long time) {
// if (time == 0) return null;
// return new DateTime(time, 0);
// }
//Adjust for google's rounding
public static long gtasksDueTimeToUnixTime(DateTime gtasksDueTime, long defaultValue) {
public static long gtasksDueTimeToUnixTime(DateTime gtasksDueTime) {
if (gtasksDueTime == null) {
return defaultValue;
return 0;
}
try {
long utcTime = gtasksDueTime.getValue(); //DateTime.parseRfc3339(gtasksDueTime).value;
@ -79,13 +57,7 @@ public class GtasksApiUtilities {
Date returnDate = newDate(date.getTime() + date.getTimezoneOffset() * 60000);
return returnDate.getTime();
} catch (NumberFormatException e) {
return defaultValue;
return 0;
}
}
// public static long gtasksDueTimeToUnixTime(DateTime gtasksDueTime, long defaultValue) {
// if (gtasksDueTime == null) return defaultValue;
// return gtasksDueTime.getValue();
// }
}

@ -306,7 +306,7 @@ public class GtasksSyncV2Provider extends SyncV2Provider {
task.setValue(Task.TITLE, remoteTask.getTitle());
task.setValue(Task.CREATION_DATE, DateUtilities.now());
task.setValue(Task.COMPLETION_DATE, GtasksApiUtilities.gtasksCompletedTimeToUnixTime(remoteTask.getCompleted(), 0));
task.setValue(Task.COMPLETION_DATE, GtasksApiUtilities.gtasksCompletedTimeToUnixTime(remoteTask.getCompleted()));
if (remoteTask.getDeleted() == null || !remoteTask.getDeleted()) {
task.setValue(Task.DELETION_DATE, 0L);
} else if (remoteTask.getDeleted()) {
@ -316,7 +316,7 @@ public class GtasksSyncV2Provider extends SyncV2Provider {
task.setValue(Task.DELETION_DATE, DateUtilities.now());
}
long dueDate = GtasksApiUtilities.gtasksDueTimeToUnixTime(remoteTask.getDue(), 0);
long dueDate = GtasksApiUtilities.gtasksDueTimeToUnixTime(remoteTask.getDue());
long createdDate = Task.createDueDate(Task.URGENCY_SPECIFIC_DAY, dueDate);
task.setValue(Task.DUE_DATE, createdDate);
task.setValue(Task.NOTES, remoteTask.getNotes());

@ -0,0 +1,79 @@
package com.todoroo.astrid.gtasks.api;
import org.joda.time.DateTime;
import org.joda.time.DateTimeZone;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
import java.util.TimeZone;
import static com.todoroo.astrid.gtasks.api.GtasksApiUtilities.gtasksCompletedTimeToUnixTime;
import static com.todoroo.astrid.gtasks.api.GtasksApiUtilities.gtasksDueTimeToUnixTime;
import static com.todoroo.astrid.gtasks.api.GtasksApiUtilities.unixTimeToGtasksCompletionTime;
import static com.todoroo.astrid.gtasks.api.GtasksApiUtilities.unixTimeToGtasksDueDate;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
@RunWith(RobolectricTestRunner.class)
public class GtasksApiUtilitiesTest {
private static final DateTimeZone defaultTimeZone = DateTimeZone.getDefault();
@Before
public void before() {
DateTimeZone.setDefault(DateTimeZone.forID("America/Chicago"));
}
@After
public void after() {
DateTimeZone.setDefault(defaultTimeZone);
}
@Test
public void convertUnixToGoogleCompletionTime() {
long now = new DateTime(2014, 1, 8, 8, 53, 20, 109).getMillis();
assertEquals(now, unixTimeToGtasksCompletionTime(now).getValue());
}
@Test
public void convertGoogleCompletedTimeToUnixTime() {
long now = new DateTime(2014, 1, 8, 8, 53, 20, 109).getMillis();
com.google.api.client.util.DateTime gtime = new com.google.api.client.util.DateTime(now);
assertEquals(now, gtasksCompletedTimeToUnixTime(gtime));
}
@Test
public void convertDueDateTimeToGoogleDueDate() {
DateTime now = new DateTime(2014, 1, 8, 8, 53, 20, 109);
assertEquals(
new DateTime(2014, 1, 8, 0, 0, 0, 0, DateTimeZone.UTC).getMillis(),
unixTimeToGtasksDueDate(now.getMillis()).getValue());
}
@Test
public void convertGoogleDueDateToUnixTime() {
com.google.api.client.util.DateTime googleDueDate =
new com.google.api.client.util.DateTime(
new DateTime(2014, 1, 8, 0, 0, 0, 0).toDate(), TimeZone.getTimeZone("UTC"));
assertEquals(
new DateTime(2014, 1, 8, 6, 0, 0, 0).getMillis(),
gtasksDueTimeToUnixTime(googleDueDate));
}
@Test
public void convertToInvalidGtaskTimes() {
assertNull(unixTimeToGtasksCompletionTime(-1));
assertNull(unixTimeToGtasksDueDate(-1));
}
@Test
public void convertFromInvalidGtaskTimes() {
assertEquals(0, gtasksCompletedTimeToUnixTime(null));
assertEquals(0, gtasksDueTimeToUnixTime(null));
}
}
Loading…
Cancel
Save