use of de.undercouch.bson4jackson.types.Timestamp in project bson4jackson by michel-kraemer.
the class BsonTimestampDeserializer method deserialize.
@Override
@SuppressWarnings("deprecation")
public Timestamp deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException {
if (jp instanceof BsonParser) {
BsonParser bsonParser = (BsonParser) jp;
if (bsonParser.getCurrentToken() != JsonToken.VALUE_EMBEDDED_OBJECT || bsonParser.getCurrentBsonType() != BsonConstants.TYPE_TIMESTAMP) {
throw ctxt.mappingException(Timestamp.class);
}
return (Timestamp) bsonParser.getEmbeddedObject();
} else {
TreeNode tree = jp.getCodec().readTree(jp);
int time = ((ValueNode) tree.get("$time")).asInt();
int inc = ((ValueNode) tree.get("$inc")).asInt();
return new Timestamp(time, inc);
}
}
use of de.undercouch.bson4jackson.types.Timestamp in project bson4jackson by michel-kraemer.
the class BsonGeneratorTest method timestamps.
/**
* Test if {@link Timestamp} objects can be serialized
* @throws Exception if something goes wrong
*/
@Test
public void timestamps() throws Exception {
Timestamp timestamp = new Timestamp(100, 200);
Map<String, Object> data = new LinkedHashMap<String, Object>();
data.put("timestamp", timestamp);
BSONObject obj = generateAndParse(data);
BSONTimestamp result = (BSONTimestamp) obj.get("timestamp");
assertNotNull(result);
assertEquals(timestamp.getInc(), result.getInc());
assertEquals(timestamp.getTime(), result.getTime());
}
use of de.undercouch.bson4jackson.types.Timestamp in project bson4jackson by michel-kraemer.
the class BsonSerializersTest method timestamp.
/**
* Tests {@link BsonTimestampSerializer}
* @throws Exception if something goes wrong
*/
@Test
public void timestamp() throws Exception {
Timestamp ts = new Timestamp(1, 2);
org.bson.types.BSONTimestamp rts = (org.bson.types.BSONTimestamp) generateAndParse(ts);
assertEquals(ts.getTime(), rts.getTime());
assertEquals(ts.getInc(), rts.getInc());
}
use of de.undercouch.bson4jackson.types.Timestamp in project bson4jackson by michel-kraemer.
the class BsonParserTest method parseComplex.
/**
* Test if a complex BSON object containing various values can be
* deserialized
* @throws Exception if something goes wrong
*/
@Test
public void parseComplex() throws Exception {
BSONObject o = new BasicBSONObject();
o.put("Timestamp", new BSONTimestamp(0xAABB, 0xCCDD));
o.put("Symbol", new Symbol("Test"));
o.put("ObjectId", org.bson.types.ObjectId.createFromLegacyFormat(Integer.MAX_VALUE, -2, Integer.MIN_VALUE));
Pattern p = Pattern.compile(".*", Pattern.CASE_INSENSITIVE | Pattern.DOTALL | Pattern.MULTILINE | Pattern.UNICODE_CASE);
o.put("Regex", p);
Map<?, ?> data = parseBsonObject(o);
assertEquals(new Timestamp(0xAABB, 0xCCDD), data.get("Timestamp"));
assertEquals(new de.undercouch.bson4jackson.types.Symbol("Test"), data.get("Symbol"));
ObjectId oid = (ObjectId) data.get("ObjectId");
assertEquals(Integer.MAX_VALUE, oid.getTime());
assertEquals(-2, oid.getMachine());
assertEquals(Integer.MIN_VALUE, oid.getInc());
Pattern p2 = (Pattern) data.get("Regex");
assertEquals(p.flags(), p2.flags());
assertEquals(p.pattern(), p2.pattern());
}
Aggregations