Search in sources :

Example 1 with ThirdPartyEmbedded

use of dev.morphia.test.models.external.ThirdPartyEmbedded in project morphia by mongodb.

the class TestMapping method testExternalClass.

@Test
public void testExternalClass() {
    assertFalse(getDs().getMapper().isMapped(HoldsUnannotated.class));
    assertFalse(getDs().getMapper().isMapped(ThirdPartyEmbedded.class));
    assertFalse(getDs().getMapper().isMapped(ThirdPartyEntity.class));
    assertThrows(MappingException.class, () -> getDs().getMapper().map(ThirdPartyEntity.class));
    assertThrows(MappingException.class, () -> getDs().getMapper().map(ThirdPartyEmbedded.class));
    getDs().getMapper().mapPackageFromClass(HoldsUnannotated.class);
    assertTrue(getDs().getMapper().isMapped(ThirdPartyEmbedded.class));
    assertTrue(getDs().getMapper().isMapped(ThirdPartyEntity.class));
    HoldsUnannotated holdsUnannotated = new HoldsUnannotated();
    holdsUnannotated.embedded = new ThirdPartyEmbedded();
    holdsUnannotated.embedded.number = 42L;
    holdsUnannotated.embedded.field = "Left";
    getDs().save(holdsUnannotated);
    assertEquals(getDs().find(HoldsUnannotated.class).first(), holdsUnannotated);
    withOptions(MapperOptions.DEFAULT, () -> {
        assertFalse(getDs().getMapper().map(ThirdPartyEntityProxy.class).isEmpty());
        assertFalse(getDs().getMapper().map(ThirdPartyEmbeddedProxy.class).isEmpty());
        EntityModel model = getDs().getMapper().getEntityModel(ThirdPartyEntity.class);
        assertEquals(model.getCollectionName(), "extEnt");
        assertEquals(model.getDiscriminator(), "ext");
        assertEquals(model.getDiscriminatorKey(), "_xt");
        Entity annotation = model.getAnnotation(Entity.class);
        assertEquals(annotation.concern(), "JOURNALED");
        assertEquals(annotation.cap().count(), 123);
        assertEquals(annotation.cap().value(), 456);
        ThirdPartyEntity entity = new ThirdPartyEntity();
        entity.field = "hi";
        entity.number = 42L;
        getDs().save(entity);
        assertEquals(getDs().find(ThirdPartyEntity.class).first(), entity);
    });
}
Also used : HoldsUnannotated(dev.morphia.test.models.external.HoldsUnannotated) Entity(dev.morphia.annotations.Entity) VersionedChildEntity(dev.morphia.test.models.versioned.VersionedChildEntity) TestEntity(dev.morphia.test.models.TestEntity) ThirdPartyEntity(dev.morphia.test.models.external.ThirdPartyEntity) ThirdPartyEntity(dev.morphia.test.models.external.ThirdPartyEntity) EntityModel(dev.morphia.mapping.codec.pojo.EntityModel) ThirdPartyEmbedded(dev.morphia.test.models.external.ThirdPartyEmbedded) Test(org.testng.annotations.Test)

Aggregations

Entity (dev.morphia.annotations.Entity)1 EntityModel (dev.morphia.mapping.codec.pojo.EntityModel)1 TestEntity (dev.morphia.test.models.TestEntity)1 HoldsUnannotated (dev.morphia.test.models.external.HoldsUnannotated)1 ThirdPartyEmbedded (dev.morphia.test.models.external.ThirdPartyEmbedded)1 ThirdPartyEntity (dev.morphia.test.models.external.ThirdPartyEntity)1 VersionedChildEntity (dev.morphia.test.models.versioned.VersionedChildEntity)1 Test (org.testng.annotations.Test)1