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:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user