/** * Create a copy of the options instance. * * @return the copy */ public InsertOptions copy() { return new InsertOptions() .bypassDocumentValidation(getBypassDocumentValidation()) .continueOnError(isContinueOnError()) .writeConcern(getWriteConcern()); }
@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.find(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 (WriteConcernException e) { // expected } getDs().save(list, new InsertOptions().bypassDocumentValidation(true)); Assert.assertTrue(query.field("number").equal(8).find().hasNext()); }
@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.find(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 { getAds().insert(list); fail("Document validation should have complained"); } catch (WriteConcernException e) { // expected } getAds().insert(list, new InsertOptions() .bypassDocumentValidation(true)); Assert.assertTrue(query.field("number").equal(8).find().hasNext()); }
@Test public void saveToNewCollection() { getMorphia().map(DocumentValidation.class); final Document validator = Document.parse("{ \"number\" : { \"$gt\" : 10 } }"); String collection = "newdocs"; addValidation(validator, collection); try { getAds().save(collection, new DocumentValidation("Harold", 8, new Date())); fail("Document validation should have complained"); } catch (WriteConcernException e) { // expected } getAds().save(collection, new DocumentValidation("Harold", 8, new Date()), new InsertOptions() .bypassDocumentValidation(true)); Query<DocumentValidation> query = getAds().createQuery(collection, DocumentValidation.class) .field("number").equal(8); Assert.assertNotNull(query.find(new FindOptions().limit(1)).tryNext()); }