use of dev.morphia.Key in project morphia by mongodb.
the class TestQuery method testKeyList.
@Test
public void testKeyList() {
final Rectangle rect = new Rectangle(1000, 1);
Rectangle rectangle = getDs().save(rect);
assertEquals(rectangle.getId(), rect.getId());
final FacebookUser fbUser1 = new FacebookUser(1, "scott");
final FacebookUser fbUser2 = new FacebookUser(2, "tom");
final FacebookUser fbUser3 = new FacebookUser(3, "oli");
final FacebookUser fbUser4 = new FacebookUser(4, "frank");
final List<FacebookUser> users = getDs().save(asList(fbUser1, fbUser2, fbUser3, fbUser4));
assertEquals(fbUser1.getId(), 1);
final List<Key<FacebookUser>> fbUserKeys = new ArrayList<>();
for (FacebookUser user : users) {
fbUserKeys.add(getMapper().getKey(user));
}
assertEquals(fbUserKeys.get(0).getId(), fbUser1.getId());
assertEquals(fbUserKeys.get(1).getId(), fbUser2.getId());
assertEquals(fbUserKeys.get(2).getId(), fbUser3.getId());
assertEquals(fbUserKeys.get(3).getId(), fbUser4.getId());
final Keys k1 = new Keys(getMapper().getKey(rectangle), fbUserKeys);
final Keys keys = getDs().save(k1);
assertEquals(k1.getId(), keys.getId());
final Datastore datastore = getDs();
final Keys k1Loaded = datastore.find(Keys.class).filter(eq("_id", k1.getId())).first();
for (Key<FacebookUser> key : k1Loaded.getUsers()) {
assertNotNull(key.getId());
}
assertNotNull(k1Loaded.getRect().getId());
}
use of dev.morphia.Key in project morphia by mongodb.
the class TestQuery method testKeys.
@Test
public void testKeys() {
PhotoWithKeywords pwk1 = new PhotoWithKeywords("california", "nevada", "arizona");
PhotoWithKeywords pwk2 = new PhotoWithKeywords("Joe", "Sarah");
PhotoWithKeywords pwk3 = new PhotoWithKeywords("MongoDB", "World");
getDs().save(asList(pwk1, pwk2, pwk3));
MongoCursor<Key<PhotoWithKeywords>> keys = getDs().find(PhotoWithKeywords.class).keys();
assertTrue(keys.hasNext());
assertEquals(pwk1.id, keys.next().getId());
assertEquals(pwk2.id, keys.next().getId());
assertEquals(pwk3.id, keys.next().getId());
List<UsesCustomIdObject> list = asList(new UsesCustomIdObject(new CustomId("Turk"), "Turk"), new UsesCustomIdObject(new CustomId("JD"), "Dorian"), new UsesCustomIdObject(new CustomId("Carla"), "Espinosa"));
getDs().save(list);
Iterator<Key<UsesCustomIdObject>> complexKeys = getDs().find(UsesCustomIdObject.class).keys();
assertTrue(complexKeys.hasNext());
assertEquals(list.get(0).getId(), complexKeys.next().getId());
assertEquals(list.get(1).getId(), complexKeys.next().getId());
assertEquals(list.get(2).getId(), complexKeys.next().getId());
assertFalse(complexKeys.hasNext());
}
use of dev.morphia.Key in project morphia by mongodb.
the class TestQueriesOnReferences method testWithKeyQuery.
@Test
public void testWithKeyQuery() {
final ContainsPic cpk = new ContainsPic();
final Pic p = new Pic();
cpk.setPic(p);
getDs().save(p);
getDs().save(cpk);
Query<ContainsPic> query = getDs().find(ContainsPic.class).filter(eq("pic", new Key<>(Pic.class, "pic", p.getId())));
assertEquals(query.first(new FindOptions().logQuery().limit(1)).getId(), cpk.getId(), query.getLoggedQuery());
}
Aggregations