DATACOUCH-69 - Support for Date and Calendar conversions.

This changeset adds aut of the box support for date and calendar objects.
They get converted to simple longs (unix timestamps) and back, since couchbase
server views have good support for those through the dateToArray() function.

A custom converter takes precedence though to customize these conversions.
This commit is contained in:
Michael Nitschinger
2014-03-10 10:22:25 +01:00
parent d65f42d886
commit f68397f2ac
3 changed files with 118 additions and 1 deletions

View File

@@ -383,6 +383,22 @@ public class MappingCouchbaseConverterTests {
readConverted.listOfEmails.get(0).emailAddr);
}
@Test
public void writesAndReadsDates() {
Date created = new Date();
Calendar modified = Calendar.getInstance();
DateEntity entity = new DateEntity(created, modified);
CouchbaseDocument converted = new CouchbaseDocument();
converter.write(entity, converted);
assertEquals(created.getTime(), converted.getPayload().get("created"));
assertEquals(modified.getTimeInMillis() / 1000, converted.getPayload().get("modified"));
DateEntity read = converter.read(DateEntity.class, converted);
assertEquals(created.getTime(), read.created.getTime());
assertEquals(modified.getTimeInMillis() / 1000, read.modified.getTimeInMillis() / 1000);
}
static class EntityWithoutID {
private String attr0;
public EntityWithoutID(String a0) {
@@ -488,4 +504,13 @@ public class MappingCouchbaseConverterTests {
}
}
static class DateEntity extends BaseEntity {
private Date created;
private Calendar modified;
public DateEntity(Date created, Calendar modified) {
this.created = created;
this.modified = modified;
}
}
}