package org.mongodb.morphia; import org.bson.types.ObjectId; import org.junit.Test; import org.mongodb.morphia.annotations.CappedAt; import org.mongodb.morphia.annotations.Entity; import org.mongodb.morphia.annotations.Id; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; public class TestCapped extends TestBase { @Test public void testCappedEntity() throws Exception { // given getMorphia().map(CurrentStatus.class); getDs().ensureCaps(); // when-then final CurrentStatus cs = new CurrentStatus("All Good"); getDs().save(cs); assertEquals(1, getDs().getCount(CurrentStatus.class)); getDs().save(new CurrentStatus("Kinda Bad")); assertEquals(1, getDs().getCount(CurrentStatus.class)); assertTrue(getDs().find(CurrentStatus.class).get().message.contains("Bad")); getDs().save(new CurrentStatus("Kinda Bad2")); assertEquals(1, getDs().getCount(CurrentStatus.class)); getDs().save(new CurrentStatus("Kinda Bad3")); assertEquals(1, getDs().getCount(CurrentStatus.class)); getDs().save(new CurrentStatus("Kinda Bad4")); assertEquals(1, getDs().getCount(CurrentStatus.class)); } @Entity(cap = @CappedAt(count = 1)) private static class CurrentStatus { @Id private ObjectId id; private String message; private CurrentStatus() { } public CurrentStatus(final String msg) { message = msg; } } }