use of org.mongodb.morphia.entities.DocumentValidation in project morphia by mongodb.
the class TestDocumentValidation method update.
@Test
public void update() {
getMorphia().map(DocumentValidation.class);
getDs().enableDocumentValidation();
getDs().save(new DocumentValidation("Harold", 100, new Date()));
Query<DocumentValidation> query = getDs().find(DocumentValidation.class);
UpdateOperations<DocumentValidation> updates = getDs().createUpdateOperations(DocumentValidation.class).set("number", 5);
UpdateOptions options = new UpdateOptions().bypassDocumentValidation(false);
try {
getDs().update(query, updates, options);
fail("Document validation should have complained");
} catch (WriteConcernException e) {
// expected
}
options.bypassDocumentValidation(true);
getDs().update(query, updates, options);
Assert.assertNotNull(query.field("number").equal(5).get());
}
use of org.mongodb.morphia.entities.DocumentValidation in project morphia by mongodb.
the class TestDocumentValidation method overwriteValidation.
@Test
public void overwriteValidation() {
Document validator = Document.parse("{ jelly : { $ne : 'rhubarb' } }");
MongoDatabase database = addValidation(validator, "validation");
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"));
}
getMorphia().map(DocumentValidation.class);
getDs().enableDocumentValidation();
assertEquals(Document.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 (WriteConcernException e) {
assertTrue(e.getMessage().contains("Document failed validation"));
}
}
use of org.mongodb.morphia.entities.DocumentValidation in project morphia by mongodb.
the class TestDocumentValidation method insert.
@Test
public void insert() {
getMorphia().map(DocumentValidation.class);
getDs().enableDocumentValidation();
try {
getAds().insert(new DocumentValidation("Harold", 8, new Date()));
fail("Document validation should have complained");
} catch (WriteConcernException e) {
// expected
}
getAds().insert(new DocumentValidation("Harold", 8, new Date()), new InsertOptions().bypassDocumentValidation(true));
Query<DocumentValidation> query = getDs().find(DocumentValidation.class).field("number").equal(8);
Assert.assertNotNull(query.get());
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 {
getAds().insert(list);
fail("Document validation should have complained");
} catch (WriteConcernException e) {
// expected
}
getAds().insert(list, new InsertOptions().bypassDocumentValidation(true));
Assert.assertFalse(query.field("number").equal(8).asList().isEmpty());
}
use of org.mongodb.morphia.entities.DocumentValidation in project morphia by mongodb.
the class TestDocumentValidation method save.
@Test
public void save() {
getMorphia().map(DocumentValidation.class);
getDs().enableDocumentValidation();
try {
getDs().save(new DocumentValidation("Harold", 8, new Date()));
fail("Document validation should have complained");
} catch (WriteConcernException e) {
// expected
}
getDs().save(new DocumentValidation("Harold", 8, new Date()), new InsertOptions().bypassDocumentValidation(true));
Query<DocumentValidation> query = getDs().find(DocumentValidation.class).field("number").equal(8);
Assert.assertNotNull(query.get());
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 (WriteConcernException e) {
// expected
}
getDs().save(list, new InsertOptions().bypassDocumentValidation(true));
Assert.assertFalse(query.field("number").equal(8).asList().isEmpty());
}
use of org.mongodb.morphia.entities.DocumentValidation in project morphia by mongodb.
the class TestDocumentValidation method findAndModify.
@Test
public void findAndModify() {
getMorphia().map(DocumentValidation.class);
getDs().enableDocumentValidation();
getDs().save(new DocumentValidation("Harold", 100, new Date()));
Query<DocumentValidation> query = getDs().find(DocumentValidation.class);
UpdateOperations<DocumentValidation> updates = getDs().createUpdateOperations(DocumentValidation.class).set("number", 5);
FindAndModifyOptions options = new FindAndModifyOptions().bypassDocumentValidation(false);
try {
getDs().findAndModify(query, updates, options);
fail("Document validation should have complained");
} catch (MongoCommandException e) {
// expected
}
options.bypassDocumentValidation(true);
getDs().findAndModify(query, updates, options);
Assert.assertNotNull(query.field("number").equal(5).get());
}
Aggregations