import net.sitemorph.protostore.PreloadUrnCrudStore; import net.sitemorph.protostore.CrudException; import net.sitemorph.protostore.CrudIterator; import net.sitemorph.protostore.CrudStore; import net.sitemorph.protostore.InMemoryStore; import net.sitemorph.protostore.SortOrder; import net.sitemorph.queue.Tasks.Task; import org.testng.annotations.Test; import static org.testng.Assert.assertTrue; /** * Tests for the cache crud store which uses an in memory store for reads. * */ public class CacheCrudStoreTest { @Test public void testAllLoaded() throws CrudException { CrudStore<Task> memoryStore = new InMemoryStore.Builder<Task>() .setPrototype(Task.newBuilder()) .setUrnField("urn") .addIndexField("path") .setSortOrder("runTime", SortOrder.ASCENDING) .setVectorField("vector") .build(); memoryStore.create(Task.newBuilder() .setPath("/hello") .setRunTime(System.currentTimeMillis())); CrudStore<Task> cacheStore = new PreloadUrnCrudStore.Builder<Task>() .setPrototype(Task.newBuilder()) .setUrnField("urn") .addIndexField("path") .setSortOrder("runTime", SortOrder.ASCENDING) .setVectorField("vector") .setWriteStore(memoryStore) .build(); CrudIterator<Task> tasks = cacheStore.read(Task.newBuilder()); assertTrue(tasks.hasNext(), "tasks should have a next item"); } }