package org.mongodb.morphia;
import org.junit.Test;
import org.mongodb.morphia.mapping.MappedClass;
import org.mongodb.morphia.testmappackage.SimpleEntity;
import org.mongodb.morphia.testmappackage.testmapsubpackage.SimpleEntityInSubPackage;
import org.mongodb.morphia.testmappackage.testmapsubpackage.testmapsubsubpackage.SimpleEntityInSubSubPackage;
import java.util.ArrayList;
import java.util.Collection;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
public class MorphiaTest extends TestBase {
@Test
public void shouldOnlyMapEntitiesInTheGivenPackage() {
// when
final Morphia morphia = new Morphia();
morphia.mapPackage("org.mongodb.morphia.testmappackage");
// then
Collection<MappedClass> mappedClasses = morphia.getMapper().getMappedClasses();
assertThat(mappedClasses.size(), is(1));
assertEquals(mappedClasses.iterator().next().getClazz(), SimpleEntity.class);
}
@Test
public void testSubPackagesMapping() {
// when
final Morphia morphia = new Morphia();
morphia.getMapper().getOptions().setMapSubPackages(true);
morphia.mapPackage("org.mongodb.morphia.testmappackage");
// then
Collection<MappedClass> mappedClasses = morphia.getMapper().getMappedClasses();
assertThat(mappedClasses.size(), is(3));
Collection<Class<?>> classes = new ArrayList<Class<?>>();
for (MappedClass mappedClass : mappedClasses) {
classes.add(mappedClass.getClazz());
}
assertTrue(classes.contains(SimpleEntity.class));
assertTrue(classes.contains(SimpleEntityInSubPackage.class));
assertTrue(classes.contains(SimpleEntityInSubSubPackage.class));
}
}