/** * Generate new Id, based on machine/process, current seconds and inrementing counter. * Should be treated as opaque holder though. * @return the id */ public static Id generate() { return from(ObjectId.get()); }
@Test public void readWrite() throws Exception { InternalTypes types = ImmutableInternalTypes.builder() .objectId(ObjectId.get()) .id(Id.from(ObjectId.get().toByteArray())) .binary(Binary.create(new byte[] {1, 2, 3})) .time(TimeInstant.of(System.currentTimeMillis())) .build(); repository.insert(types).getUnchecked(); InternalTypes types2 = repository.findAll().fetchAll().getUnchecked().get(0); check(types2).is(types); }
@Test public void advanced() { final AdvancedRepository repo = new AdvancedRepository(context.setup()); ObjectId id = ObjectId.get(); Advanced doc = ImmutableAdvanced.builder() .id(id) .bigDecimal(new BigDecimal(Long.MAX_VALUE).multiply(new BigDecimal(128))) // make number big .bigInteger(new BigInteger(String.valueOf(Long.MAX_VALUE)).multiply(new BigInteger("128"))) // make it also big .atomicBoolean(new AtomicBoolean()) .atomicInteger(new AtomicInteger(55)) .atomicLong(new AtomicLong(77)) .build(); repo.insert(doc).getUnchecked(); final Advanced doc2 = repo.findById(id).fetchFirst().getUnchecked().get(); check(doc2.id()).is(id); check(doc2.bigDecimal()).is(doc.bigDecimal()); check(doc2.bigInteger()).is(doc.bigInteger()); check(!doc2.atomicBoolean().get()); check(doc2.atomicInteger().get()).is(doc.atomicInteger().get()); check(doc2.atomicLong().get()).is(doc.atomicLong().get()); }
/** * Serializing big numbers which can't be stored in {@link org.bson.types.Decimal128} format. * They should be serialized as strings (or binary) in mongo. */ @Test public void larger_than_decimal128() { final AdvancedRepository repo = new AdvancedRepository(context.setup()); final ObjectId id = ObjectId.get(); final BigInteger integer = BigInteger.valueOf(Long.MAX_VALUE).pow(4); try { new Decimal128(new BigDecimal(integer)); fail("Should fail for " + integer); } catch (NumberFormatException ignore) { // expected } final Advanced doc = ImmutableAdvanced.builder() .id(id) .bigDecimal(new BigDecimal(integer)) // make number big .bigInteger(integer) // make it also big .atomicBoolean(new AtomicBoolean(false)) .atomicInteger(new AtomicInteger(1)) .atomicLong(new AtomicLong(2)) .build(); repo.insert(doc).getUnchecked(); final Advanced doc2 = repo.findById(id).fetchFirst().getUnchecked().get(); check(doc2.bigDecimal().unscaledValue()).is(integer); check(doc2.bigInteger()).is(integer); }
@Test public void withDate() { final Date date = new Date(); final ObjectId id = ObjectId.get(); final Jackson expected = ImmutableJackson.builder() .id(id) .prop1("prop1") .prop2("22") .date(new Date(date.getTime())) .build(); repository.insert(expected).getUnchecked(); check(collection.count()).is(1L); final Jackson actual = repository.findAll().fetchAll().getUnchecked().get(0); check(expected).is(actual); final BsonDocument doc = collection.find().first(); check(doc.keySet()).hasContentInAnyOrder("_id", "prop1", "prop2", "date", "uuid"); check(doc.get("date").asDateTime().getValue()).is(date.getTime()); check(doc.get("_id").asObjectId().getValue()).is(id); }
/** * persist empty Optional of Date */ @Test public void nullDate() { final Jackson expected = ImmutableJackson.builder() .id(ObjectId.get()) .prop1("prop11") .prop2("prop22") .build(); repository.insert(expected).getUnchecked(); final Jackson actual = repository.findAll() .fetchAll().getUnchecked().get(0); check(expected.date().asSet()).isEmpty(); check(expected).is(actual); final BsonDocument doc = collection.find().first(); check(doc.keySet()).hasContentInAnyOrder("_id", "prop1", "prop2", "date", "uuid"); check(doc.get("date")).is(BsonNull.VALUE); }
@Test public void primitives() { final PrimitivesRepository repo = new PrimitivesRepository(context.setup()); ObjectId id = ObjectId.get(); ImmutablePrimitives doc = ImmutablePrimitives.builder() .id(id) .booleanValue(true) .byteValue((byte) 0) .shortValue((short) 12) .intValue(42) .longValue(123L) .floatValue(11.11F) .doubleValue(22.22D) .build(); repo.insert(doc).getUnchecked(); check(repo.findById(id).fetchAll().getUnchecked()).hasContentInAnyOrder(doc); }
@Test public void boxed() { final BoxedRepository repo = new BoxedRepository(context.setup()); ObjectId id = ObjectId.get(); Boxed doc = ImmutableBoxed.builder() .id(id) .booleanValue(Boolean.FALSE) .byteValue(Byte.MAX_VALUE) .shortValue(Short.MAX_VALUE) .intValue(Integer.MAX_VALUE) .longValue(Long.MAX_VALUE) .floatValue(Float.MAX_VALUE) .doubleValue(Double.MAX_VALUE) .build(); repo.insert(doc).getUnchecked(); check(repo.findById(id).fetchAll().getUnchecked()).hasContentInAnyOrder(doc); }
@Test public void criteria() { final Date date = new Date(); final ObjectId id = ObjectId.get(); final UUID uuid = UUID.randomUUID(); final Jackson expected = ImmutableJackson.builder() .id(id) .prop1("prop11") .prop2("prop22") .date(date) .uuid(uuid) .build(); repository.insert(expected).getUnchecked(); check(repository.find(repository.criteria().prop1("prop11")).fetchAll().getUnchecked()).hasContentInAnyOrder(expected); check(repository.find(repository.criteria().prop1("missing")).fetchAll().getUnchecked()).isEmpty(); check(repository.find(repository.criteria().prop2("prop22")).fetchAll().getUnchecked()).hasContentInAnyOrder(expected); check(repository.find(repository.criteria().id(id)).fetchAll().getUnchecked()).hasContentInAnyOrder(expected); check(repository.find(repository.criteria().date(date)).fetchAll().getUnchecked()).hasContentInAnyOrder(expected); check(repository.find(repository.criteria().date(new Date(42))).fetchAll().getUnchecked()).isEmpty(); check(repository.find(repository.criteria().uuid(uuid)).fetchAll().getUnchecked()).hasContentInAnyOrder(expected); check(repository.find(repository.criteria().uuid(UUID.randomUUID())).fetchAll().getUnchecked()).isEmpty(); }
/** * Generate new Id, based on machine/preocess, current seconds and inrementing counter. * @return the id */ public static Id generate() { return fromObjectId(ObjectId.get()); }
/** * Generate new Id, based on machine/process, current seconds and inrementing counter. * Should be treated as opaque holder though. * @return the id */ public static Id generate() { return from(ObjectId.get()); }
static String id(DBObject obj) { ObjectId id = (ObjectId) obj.get("_id"); id = id != null ? id : ObjectId.get(); return id.toString(); } }
@Test public void testRemoveSingle() throws Exception { Document obj = new Document("_id", ObjectId.get()); collection.insertOne(obj); collection.deleteOne(obj); }
public Widget getWidget() { Widget widget = new Widget(); widget.setId(ObjectId.get()); widget.setName(name); widget.setComponentId(componentId); if ((options != null) && !options.isEmpty()) { widget.getOptions().putAll(options); } return widget; } }
private static Feature createActiveStory(String sProjectName, String sParentKey) { Feature story = new Feature(); story.setId(ObjectId.get()); story.setsId(ObjectId.get().toString()); story.setsSprintAssetState("Active"); story.setsProjectName(sProjectName); story.setsNumber("story_name"); story.setsParentKey(Collections.singletonList(sParentKey)); story.setKeywords(Collections.singletonList(sProjectName)); return story; }
private Review createFeedbackReview() { Review review = new Review(); review.setId(ObjectId.get()); review.setAppname("Foobar"); review.setAuthorName("Author"); review.setComment("Good App!"); review.setStarrating(5.0); return review; }
private Review createReview() { Review review = new Review(); review.setId(ObjectId.get()); review.setAppname("MirrorGateApp"); review.setAuthorName("Author"); review.setComment("Good App!"); review.setPlatform(Platform.Android); review.setStarrating(4.0); return review; }
private Review createFeedbackReview() { Review review = new Review(); review.setId(ObjectId.get()); return review.setAppname("Foobar") .setAuthorName("Author") .setComment("Good App!") .setStarrating(5.0) .setTimestamp(1L); } }
private Review createReview() { Review review = new Review(); review.setId(ObjectId.get()); return review .setAppname("MirrorGateApp") .setAuthorName("Author") .setComment("Good App!") .setPlatform(Platform.Android) .setStarrating(4) .setTimestamp(1L); }