@Test public void testBaseEntityValidity() { getMorphia().map(UsesBaseEntity.class); }
@Test public void testIdFieldWithUnderscore() { getMorphia().map(StrangelyNamedIdField.class); }
@Test public void testEmbeddedArrayElementHasNoClassname() { getMorphia().map(ContainsEmbeddedArray.class); final ContainsEmbeddedArray cea = new ContainsEmbeddedArray(); cea.res = new RenamedEmbedded[]{new RenamedEmbedded()}; final DBObject dbObj = getMorphia().toDBObject(cea); assertTrue(!((DBObject) ((List) dbObj.get("res")).get(0)).containsField( getMorphia().getMapper().getOptions().getDiscriminatorField())); }
@Test public void testBasicMappingWithCachedClasses() { getMorphia().getMapper().getOptions().setCacheClassLookups(true); try { performBasicMappingTest(); final DefaultCreator objectFactory = (DefaultCreator) getMorphia().getMapper().getOptions().getObjectFactory(); assertTrue(objectFactory.getClassNameCache().containsKey(Hotel.class.getName())); assertTrue(objectFactory.getClassNameCache().containsKey(TravelAgency.class.getName())); } finally { getMorphia().getMapper().getOptions().setCacheClassLookups(false); } }
@Test public void testEmbeddedEntityDBObjectHasNoClassname() { getMorphia().map(ContainsEmbeddedEntity.class); final ContainsEmbeddedEntity cee = new ContainsEmbeddedEntity(); cee.cil = new ContainsIntegerList(); cee.cil.intList = Collections.singletonList(1); final DBObject dbObj = getMorphia().toDBObject(cee); assertTrue(!((DBObject) dbObj.get("cil")).containsField( getMorphia().getMapper().getOptions().getDiscriminatorField())); }
@Test public void testBasicMapping() { performBasicMappingTest(); final DefaultCreator objectFactory = (DefaultCreator) getMorphia().getMapper().getOptions().getObjectFactory(); assertTrue(objectFactory.getClassNameCache().isEmpty()); }
@Test public void testTimestampMapping() { getMorphia().map(ContainsTimestamp.class); final ContainsTimestamp cts = new ContainsTimestamp(); final Key<ContainsTimestamp> savedKey = getDs().save(cts); final ContainsTimestamp loaded = getDs().get(ContainsTimestamp.class, savedKey.getId()); assertNotNull(loaded.ts); assertEquals(loaded.ts.getTime(), cts.ts.getTime()); }
@Test public void testByteArrayMapping() { getMorphia().map(ContainsByteArray.class); final Key<ContainsByteArray> savedKey = getDs().save(new ContainsByteArray()); final ContainsByteArray loaded = getDs().get(ContainsByteArray.class, savedKey.getId()); assertEquals(new String((new ContainsByteArray()).bytes), new String(loaded.bytes)); assertNotNull(loaded.id); }
@Test public void testFinalFieldNotPersisted() { getMorphia().getMapper().getOptions().setIgnoreFinals(true); getMorphia().map(ContainsFinalField.class); final Key<ContainsFinalField> savedKey = getDs().save(new ContainsFinalField("blah")); final ContainsFinalField loaded = getDs().get(ContainsFinalField.class, savedKey.getId()); assertNotNull(loaded); assertNotNull(loaded.name); assertEquals("foo", loaded.name); }
@Test public void testDbRefMapping() { getMorphia().map(ContainsRef.class).map(Rectangle.class); final DBCollection stuff = getDb().getCollection("stuff"); final DBCollection rectangles = getDb().getCollection("rectangles"); assertTrue("'ne' field should not be persisted!", !getMorphia().getMapper().getMCMap().get(ContainsRef.class.getName()) .containsJavaFieldName("ne")); final Rectangle r = new Rectangle(1, 1); final DBObject rDbObject = getMorphia().toDBObject(r); rDbObject.put("_ns", rectangles.getName()); rectangles.save(rDbObject); final ContainsRef cRef = new ContainsRef(); cRef.rect = new DBRef((String) rDbObject.get("_ns"), rDbObject.get("_id")); final DBObject cRefDbObject = getMorphia().toDBObject(cRef); stuff.save(cRefDbObject); final BasicDBObject cRefDbObjectLoaded = (BasicDBObject) stuff.findOne(BasicDBObjectBuilder.start("_id", cRefDbObject.get("_id")) .get()); final ContainsRef cRefLoaded = getMorphia().fromDBObject(getDs(), ContainsRef.class, cRefDbObjectLoaded, new DefaultEntityCache()); assertNotNull(cRefLoaded); assertNotNull(cRefLoaded.rect); assertNotNull(cRefLoaded.rect.getId()); assertNotNull(cRefLoaded.rect.getCollectionName()); assertEquals(cRefLoaded.rect.getId(), cRef.rect.getId()); assertEquals(cRefLoaded.rect.getCollectionName(), cRef.rect.getCollectionName()); }
@Test public void testUuidId() { getMorphia().map(ContainsUuidId.class); final ContainsUuidId uuidId = new ContainsUuidId(); final UUID before = uuidId.id; getDs().save(uuidId); final ContainsUuidId loaded = getDs().get(ContainsUuidId.class, before); assertNotNull(loaded); assertNotNull(loaded.id); assertEquals(before, loaded.id); }
@Test public void testCollectionMapping() { getMorphia().map(ContainsCollection.class); final Key<ContainsCollection> savedKey = getDs().save(new ContainsCollection()); final ContainsCollection loaded = getDs().get(ContainsCollection.class, savedKey.getId()); assertEquals(loaded.coll, (new ContainsCollection()).coll); assertNotNull(loaded.id); }
@Test public void testMaps() { final DBCollection articles = getDb().getCollection("articles"); getMorphia().map(Article.class).map(Translation.class).map(Circle.class); final BasicDBObject relatedDbObj = (BasicDBObject) getMorphia().toDBObject(related); articles.save(relatedDbObj); final Article relatedLoaded = getMorphia().fromDBObject(getDs(), Article.class, articles.findOne(new BasicDBObject("_id", relatedDbObj.get("_id"))), final BasicDBObject articleDbObj = (BasicDBObject) getMorphia().toDBObject(article); articles.save(articleDbObj); final Article articleLoaded = getMorphia().fromDBObject(getDs(), Article.class, articles.findOne( new BasicDBObject("_id",
@Test public void testFinalField() { getMorphia().map(ContainsFinalField.class); final Key<ContainsFinalField> savedKey = getDs().save(new ContainsFinalField("blah")); final ContainsFinalField loaded = getDs().get(ContainsFinalField.class, savedKey.getId()); assertNotNull(loaded); assertNotNull(loaded.name); assertEquals("blah", loaded.name); }
@Test public void testFinalIdField() { getMorphia().map(HasFinalFieldId.class); final Key<HasFinalFieldId> savedKey = getDs().save(new HasFinalFieldId(12)); final HasFinalFieldId loaded = getDs().get(HasFinalFieldId.class, savedKey.getId()); assertNotNull(loaded); assertNotNull(loaded.id); assertEquals(12, loaded.id); }
@Test public void testEmbeddedDBObject() { getMorphia().map(ContainsDBObject.class); getDs().save(new ContainsDBObject()); assertNotNull(getDs().find(ContainsDBObject.class) .find(new FindOptions().limit(1)) .next()); }
@Test public void testSerializedMapping() { getMorphia().map(ContainsSerializedData.class); final Key<ContainsSerializedData> savedKey = getDs().save(new ContainsSerializedData()); final ContainsSerializedData loaded = getDs().get(ContainsSerializedData.class, savedKey.getId()); assertNotNull(loaded.data); assertEquals(loaded.data.someString, (new ContainsSerializedData()).data.someString); assertNotNull(loaded.id); }
@Test public void testObjectIdKeyedMap() { getMorphia().map(ContainsObjectIdKeyMap.class); final ContainsObjectIdKeyMap map = new ContainsObjectIdKeyMap(); final ObjectId o1 = new ObjectId("111111111111111111111111"); final ObjectId o2 = new ObjectId("222222222222222222222222"); map.values.put(o1, "I'm 1s"); map.values.put(o2, "I'm 2s"); final Key<?> mapKey = getDs().save(map); final ContainsObjectIdKeyMap mapLoaded = getDs().get(ContainsObjectIdKeyMap.class, mapKey.getId()); assertNotNull(mapLoaded); assertEquals(2, mapLoaded.values.size()); assertNotNull(mapLoaded.values.get(o1)); assertNotNull(mapLoaded.values.get(o2)); assertNotNull(getDs().find(ContainsIntKeyMap.class).field("values.111111111111111111111111").exists()); assertEquals(0, getDs().find(ContainsIntKeyMap.class).field("values.111111111111111111111111").doesNotExist().count()); assertNotNull(getDs().find(ContainsIntKeyMap.class).field("values.4").doesNotExist()); assertEquals(0, getDs().find(ContainsIntKeyMap.class).field("values.4").exists().count()); }
@Test public void testEmbeddedEntity() { getMorphia().map(ContainsEmbeddedEntity.class); getDs().save(new ContainsEmbeddedEntity()); final ContainsEmbeddedEntity ceeLoaded = getDs().find(ContainsEmbeddedEntity.class) .find(new FindOptions().limit(1)) .next(); assertNotNull(ceeLoaded); assertNotNull(ceeLoaded.id); assertNotNull(ceeLoaded.cil); assertNull(ceeLoaded.cil.id); }
@Test public void testLongArrayMapping() { getMorphia().map(ContainsLongAndStringArray.class); getDs().save(new ContainsLongAndStringArray()); ContainsLongAndStringArray loaded = getDs().find(ContainsLongAndStringArray.class) .find(new FindOptions().limit(1)) .next(); assertArrayEquals(loaded.longs, (new ContainsLongAndStringArray()).longs); assertArrayEquals(loaded.strings, (new ContainsLongAndStringArray()).strings); final ContainsLongAndStringArray array = new ContainsLongAndStringArray(); array.strings = new String[]{"a", "B", "c"}; array.longs = new Long[]{4L, 5L, 4L}; final Key<ContainsLongAndStringArray> k1 = getDs().save(array); loaded = getDs().getByKey(ContainsLongAndStringArray.class, k1); assertArrayEquals(loaded.longs, array.longs); assertArrayEquals(loaded.strings, array.strings); assertNotNull(loaded.id); }