package org.mongodb.morphia.mapping.validation.fieldrules; import com.mongodb.DBObject; import org.junit.Assert; import org.junit.Test; import org.mongodb.morphia.TestBase; import org.mongodb.morphia.annotations.Embedded; import org.mongodb.morphia.annotations.PreSave; import org.mongodb.morphia.annotations.Property; import org.mongodb.morphia.annotations.Transient; import org.mongodb.morphia.mapping.validation.ConstraintViolationException; import org.mongodb.morphia.testutil.TestEntity; /** * @author Uwe Schaefer, (us@thomas-daily.de) */ public class PropertyAndEmbeddedTest extends TestBase { @Test(expected = ConstraintViolationException.class) public void testCheck() { final E e = new E(); getDs().save(e); Assert.assertTrue(e.document.contains("myFunkyR")); getMorphia().map(E2.class); } public static class E extends TestEntity { @Embedded("myFunkyR") private R r = new R(); @Transient private String document; @PreSave public void preSave(final DBObject o) { document = o.toString(); } } public static class E2 extends TestEntity { @Embedded @Property("myFunkyR") private String s; } public static class R { private String foo = "bar"; } }