use of dev.morphia.test.models.DocumentValidation in project morphia by mongodb.
the class TestDocumentValidation method findAndModify.
@Test
public void findAndModify() {
getMapper().map(DocumentValidation.class);
getDs().enableDocumentValidation();
getDs().save(new DocumentValidation("Harold", 100, new Date()));
Query<DocumentValidation> query = getDs().find(DocumentValidation.class);
ModifyOptions options = new ModifyOptions().bypassDocumentValidation(false);
Modify<DocumentValidation> modify = query.modify(set("number", 5));
try {
modify.execute(options);
fail("Document validation should have complained");
} catch (MongoCommandException e) {
// expected
}
options.bypassDocumentValidation(true);
modify.execute(options);
Assert.assertNotNull(query.filter(eq("number", 5)).iterator(new FindOptions().limit(1)).next());
}
use of dev.morphia.test.models.DocumentValidation in project morphia by mongodb.
the class TestDocumentValidation method createValidation.
@Test
public void createValidation() {
getMapper().map(DocumentValidation.class);
getDs().enableDocumentValidation();
assertEquals(parse(DocumentValidation.class.getAnnotation(Validation.class).value()), getValidator());
try {
getDs().save(new DocumentValidation("John", 1, new Date()));
fail("Document should have failed validation");
} catch (MongoWriteException e) {
assertTrue(e.getMessage().contains("Document failed validation"));
}
getDs().save(new DocumentValidation("Harold", 100, new Date()));
}
use of dev.morphia.test.models.DocumentValidation in project morphia by mongodb.
the class TestDocumentValidation method overwriteValidation.
@Test
public void overwriteValidation() {
Document validator = parse("{ \"jelly\" : { \"$ne\" : \"rhubarb\" } }");
MongoDatabase database = addValidation(validator);
assertEquals(validator, getValidator());
Document rhubarb = new Document("jelly", "rhubarb").append("number", 20);
database.getCollection("validation").insertOne(new Document("jelly", "grape"));
try {
database.getCollection("validation").insertOne(rhubarb);
fail("Document should have failed validation");
} catch (MongoWriteException e) {
assertTrue(e.getMessage().contains("Document failed validation"));
}
getMapper().map(DocumentValidation.class);
getDs().enableDocumentValidation();
assertEquals(parse(DocumentValidation.class.getAnnotation(Validation.class).value()), getValidator());
try {
database.getCollection("validation").insertOne(rhubarb);
} catch (MongoWriteException e) {
assertFalse(e.getMessage().contains("Document failed validation"));
}
try {
getDs().save(new DocumentValidation("John", 1, new Date()));
fail("Document should have failed validation");
} catch (MongoWriteException e) {
assertTrue(e.getMessage().contains("Document failed validation"));
}
}
use of dev.morphia.test.models.DocumentValidation in project morphia by mongodb.
the class TestDocumentValidation method insert.
@Test
public void insert() {
getMapper().map(DocumentValidation.class);
getDs().enableDocumentValidation();
try {
getDs().insert(new DocumentValidation("Harold", 8, new Date()));
fail("Document validation should have complained");
} catch (MongoWriteException e) {
// expected
}
getDs().insert(new DocumentValidation("Harold", 8, new Date()), new InsertOneOptions().bypassDocumentValidation(true));
Query<DocumentValidation> query = getDs().find(DocumentValidation.class).filter(eq("number", 8));
Assert.assertNotNull(query.iterator(new FindOptions().limit(1)).tryNext());
List<DocumentValidation> list = asList(new DocumentValidation("Harold", 8, new Date()), new DocumentValidation("John", 8, new Date()), new DocumentValidation("Sarah", 8, new Date()), new DocumentValidation("Amy", 8, new Date()), new DocumentValidation("James", 8, new Date()));
try {
getDs().insert(list);
fail("Document validation should have complained");
} catch (MongoBulkWriteException e) {
// expected
}
getDs().insert(list, new InsertManyOptions().bypassDocumentValidation(true));
assertTrue(query.filter(eq("number", 8)).iterator().hasNext());
}
use of dev.morphia.test.models.DocumentValidation in project morphia by mongodb.
the class TestDocumentValidation method save.
@Test
public void save() {
getMapper().map(DocumentValidation.class);
getDs().enableDocumentValidation();
try {
getDs().save(new DocumentValidation("Harold", 8, new Date()));
fail("Document validation should have complained");
} catch (MongoWriteException e) {
// expected
}
getDs().save(new DocumentValidation("Harold", 8, new Date()), new InsertOneOptions().bypassDocumentValidation(true));
Query<DocumentValidation> query = getDs().find(DocumentValidation.class).filter(eq("number", 8));
Assert.assertNotNull(query.iterator(new FindOptions().limit(1)).tryNext());
List<DocumentValidation> list = asList(new DocumentValidation("Harold", 8, new Date()), new DocumentValidation("Harold", 8, new Date()), new DocumentValidation("Harold", 8, new Date()), new DocumentValidation("Harold", 8, new Date()), new DocumentValidation("Harold", 8, new Date()));
try {
getDs().save(list);
fail("Document validation should have complained");
} catch (MongoBulkWriteException e) {
// expected
}
getDs().save(list, new InsertManyOptions().bypassDocumentValidation(true));
assertTrue(query.filter(eq("number", 8)).iterator().hasNext());
}
Aggregations