Search in sources :

Example 1 with ThirdPartyEntity

use of dev.morphia.test.models.external.ThirdPartyEntity 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)

Example 2 with ThirdPartyEntity

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

the class TestMapping method testExternalClassUsingMethods.

@Test
public void testExternalClassUsingMethods() {
    withOptions(MapperOptions.builder().propertyDiscovery(PropertyDiscovery.METHODS).build(), () -> {
        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.setField("hi");
        entity.setNumber(42L);
        getDs().save(entity);
        assertEquals(getDs().find(ThirdPartyEntity.class).first(), entity);
    });
}
Also used : 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) Test(org.testng.annotations.Test)

Aggregations

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