@Test
  public void write() throws Exception {
    JsonObject obj = new JsonObject();
    BigInteger bigInteger = new BigInteger(Long.toString(Long.MAX_VALUE)).multiply(new BigInteger("128"));
    obj.addProperty("bigInteger", bigInteger);

    BigDecimal bigDecimal = new BigDecimal(Long.MAX_VALUE).multiply(new BigDecimal(1024));
    obj.addProperty("bigDecimal", bigDecimal);

    BsonDocument doc = Jsons.toBson(obj);

    check(doc.get("bigInteger").getBsonType()).is(BsonType.DECIMAL128);
    check(doc.get("bigInteger").asDecimal128().decimal128Value().bigDecimalValue().toBigInteger()).is(bigInteger);

    check(doc.get("bigDecimal").getBsonType()).is(BsonType.DECIMAL128);
    check(doc.get("bigDecimal").asDecimal128().decimal128Value().bigDecimalValue()).is(bigDecimal);
  }
Tests for read/write of {@link org.bson.types.Decimal128}
mongo/test/org/immutables/mongo/bson4gson/BsonDecimal128Test.java