Search in sources :

Example 1 with Validation

use of org.mongodb.morphia.annotations.Validation 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"));
    }
}
Also used : DocumentValidation(org.mongodb.morphia.entities.DocumentValidation) Validation(org.mongodb.morphia.annotations.Validation) DocumentValidation(org.mongodb.morphia.entities.DocumentValidation) MongoWriteException(com.mongodb.MongoWriteException) WriteConcernException(com.mongodb.WriteConcernException) Document(org.bson.Document) Date(java.util.Date) MongoDatabase(com.mongodb.client.MongoDatabase) Test(org.junit.Test)

Example 2 with Validation

use of org.mongodb.morphia.annotations.Validation in project morphia by mongodb.

the class TestDocumentValidation method createValidation.

@Test
public void createValidation() {
    getMorphia().map(DocumentValidation.class);
    getDs().enableDocumentValidation();
    assertEquals(Document.parse(DocumentValidation.class.getAnnotation(Validation.class).value()), getValidator());
    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"));
    }
    getDs().save(new DocumentValidation("Harold", 100, new Date()));
}
Also used : DocumentValidation(org.mongodb.morphia.entities.DocumentValidation) Validation(org.mongodb.morphia.annotations.Validation) DocumentValidation(org.mongodb.morphia.entities.DocumentValidation) WriteConcernException(com.mongodb.WriteConcernException) Date(java.util.Date) Test(org.junit.Test)

Aggregations

WriteConcernException (com.mongodb.WriteConcernException)2 Date (java.util.Date)2 Test (org.junit.Test)2 Validation (org.mongodb.morphia.annotations.Validation)2 DocumentValidation (org.mongodb.morphia.entities.DocumentValidation)2 MongoWriteException (com.mongodb.MongoWriteException)1 MongoDatabase (com.mongodb.client.MongoDatabase)1 Document (org.bson.Document)1