use of dev.morphia.test.models.FacebookUser in project morphia by mongodb.
the class TestDatastore method testFindAndDeleteWithCollation.
@Test
public void testFindAndDeleteWithCollation() {
getDs().save(asList(new FacebookUser(1, "John Doe"), new FacebookUser(2, "john doe")));
Query<FacebookUser> query = getDs().find(FacebookUser.class).filter(eq("username", "john doe"));
assertNotNull(query.findAndDelete());
assertNull(query.findAndDelete());
FindAndDeleteOptions options = new FindAndDeleteOptions().collation(Collation.builder().locale("en").collationStrength(SECONDARY).build());
assertNotNull(query.findAndDelete(options));
assertNull(query.iterator().tryNext());
}
use of dev.morphia.test.models.FacebookUser in project morphia by mongodb.
the class TestDatastore method testFindAndModifyWithOptions.
@Test
public void testFindAndModifyWithOptions() {
getDs().save(asList(new FacebookUser(1, "John Doe"), new FacebookUser(2, "john doe")));
FacebookUser result = getDs().find(FacebookUser.class).filter(eq("username", "john doe")).modify(inc("loginCount")).execute();
assertEquals(getDs().find(FacebookUser.class).filter(eq("id", 1)).iterator(new FindOptions().limit(1)).next().loginCount, 0);
assertEquals(getDs().find(FacebookUser.class).filter(eq("id", 2)).iterator(new FindOptions().limit(1)).next().loginCount, 1);
assertEquals(result.loginCount, 0);
result = getDs().find(FacebookUser.class).filter(eq("username", "john doe")).modify(inc("loginCount")).execute(new ModifyOptions().returnDocument(BEFORE).collation(Collation.builder().locale("en").collationStrength(SECONDARY).build()));
assertEquals(getDs().find(FacebookUser.class).filter(eq("id", 1)).iterator(new FindOptions().limit(1)).next().loginCount, 1);
assertEquals(result.loginCount, 0);
assertEquals(getDs().find(FacebookUser.class).filter(eq("id", 2)).iterator(new FindOptions().limit(1)).next().loginCount, 1);
result = getDs().find(FacebookUser.class).filter(eq("id", 3L), eq("username", "Jon Snow")).modify(inc("loginCount")).execute(new ModifyOptions().returnDocument(BEFORE).upsert(true));
assertNull(result);
FacebookUser user = getDs().find(FacebookUser.class).filter(eq("id", 3)).iterator(new FindOptions().limit(1)).next();
assertEquals(user.loginCount, 1);
assertEquals(user.username, "Jon Snow");
result = getDs().find(FacebookUser.class).filter(eq("id", 4L), eq("username", "Ron Swanson")).modify(inc("loginCount")).execute(new ModifyOptions().returnDocument(AFTER).upsert(true));
assertNotNull(result);
user = getDs().find(FacebookUser.class).filter(eq("id", 4)).iterator(new FindOptions().limit(1)).next();
assertEquals(result.loginCount, 1);
assertEquals(result.username, "Ron Swanson");
assertEquals(user.loginCount, 1);
assertEquals(user.username, "Ron Swanson");
}
use of dev.morphia.test.models.FacebookUser in project morphia by mongodb.
the class TestDatastore method testFindAndModify.
@Test
public void testFindAndModify() {
getDs().save(asList(new FacebookUser(1, "John Doe"), new FacebookUser(2, "john doe")));
Query<FacebookUser> query = getDs().find(FacebookUser.class).filter(eq("username", "john doe"));
Modify<FacebookUser> modify = query.modify(inc("loginCount"));
assertEquals(modify.execute().loginCount, 0);
assertEquals(getDs().find(FacebookUser.class).filter(eq("id", 1)).first().loginCount, 0);
assertEquals(getDs().find(FacebookUser.class).filter(eq("id", 2)).first().loginCount, 1);
assertEquals(modify.execute(new ModifyOptions().returnDocument(AFTER)).loginCount, 2);
assertEquals(getDs().find(FacebookUser.class).filter(eq("id", 1)).first().loginCount, 0);
assertEquals(getDs().find(FacebookUser.class).filter(eq("id", 2)).first().loginCount, 2);
assertNull(getDs().find(FacebookUser.class).filter(eq("id", 3L), eq("username", "Jon Snow")).modify(inc("loginCount", 4)).execute(new ModifyOptions().returnDocument(BEFORE).upsert(true)));
FacebookUser user = getDs().find(FacebookUser.class).filter(eq("id", 3)).first();
assertEquals(user.loginCount, 4);
assertEquals(user.username, "Jon Snow");
FacebookUser results = getDs().find(FacebookUser.class).filter(eq("id", 4L), eq("username", "Ron Swanson")).modify(inc("loginCount")).execute(new ModifyOptions().returnDocument(AFTER).upsert(true));
assertEquals(results.loginCount, 1);
assertEquals(results.username, "Ron Swanson");
user = getDs().find(FacebookUser.class).filter(eq("id", 4)).iterator(new FindOptions().limit(1)).next();
assertEquals(user.loginCount, 1);
assertEquals(user.username, "Ron Swanson");
}
use of dev.morphia.test.models.FacebookUser in project morphia by mongodb.
the class TestReferences method testDBRefSaves.
@Test
public void testDBRefSaves() {
getMapper().map(List.of(FacebookUser.class));
FacebookUser tom = new FacebookUser(1, "Tom Anderson");
tom.friends.addAll(List.of(new FacebookUser(2, "Cameron Winklevoss"), new FacebookUser(3, "Tyler Winklevoss")));
getDs().save(tom.friends);
getDs().save(tom);
Document loaded = getDs().getCollection(FacebookUser.class).withDocumentClass(Document.class).find(new Document("_id", 1)).first();
((List<Object>) loaded.get("friends")).forEach(f -> assertEquals(f.getClass(), DBRef.class));
}
use of dev.morphia.test.models.FacebookUser in project morphia by mongodb.
the class TestReferences method testIdOnly.
@Test
public void testIdOnly() {
getMapper().map(List.of(HasIdOnly.class, FacebookUser.class));
HasIdOnly tom = new HasIdOnly();
tom.list.addAll(List.of(new FacebookUser(2, "Cameron Winklevoss"), new FacebookUser(3, "Tyler Winklevoss")));
getDs().save(tom.list);
getDs().save(tom);
Document loaded = getDs().getCollection(HasIdOnly.class).withDocumentClass(Document.class).find(new Document()).first();
((List<Object>) loaded.get("list")).forEach(f -> assertEquals(f.getClass(), Long.class));
}
Aggregations