package cosmos.results; import java.util.Iterator; import org.junit.Assert; import org.junit.Test; import com.google.common.collect.HashMultimap; import com.google.common.collect.Multimap; import cosmos.Cosmos; import cosmos.impl.CosmosImpl; import cosmos.options.Defaults; import cosmos.options.Index; import cosmos.records.impl.MultimapRecord; import cosmos.records.values.RecordValue; import cosmos.store.PersistedStores; import cosmos.store.Store; import cosmos.util.IdentitySet; public class SerializedStoreTest extends AbstractSortableTest { @Test public void serializeStoreFetchOnly() throws Exception { Store id = Store.create(c, AUTHS, IdentitySet.<Index> create()); String uuid = id.uuid(); Cosmos cosmos = new CosmosImpl(zkConnectString()); cosmos.register(id); // Save off our Store that we've defined PersistedStores.store(id); Multimap<Column,RecordValue<?>> data = HashMultimap.create(); data.put(Column.create("NAME"), RecordValue.create("George", VIZ)); data.put(Column.create("AGE"), RecordValue.create("25", VIZ)); data.put(Column.create("HEIGHT"), RecordValue.create("70", VIZ)); MultimapRecord mqr = new MultimapRecord(data, "1", VIZ); cosmos.addResult(id, mqr); cosmos.finalize(id); id = null; id = PersistedStores.retrieve(c, Defaults.METADATA_TABLE, AUTHS, uuid); CloseableIterable<MultimapRecord> records = cosmos.fetch(id); Iterator<MultimapRecord> iter = records.iterator(); Assert.assertTrue(iter.hasNext()); MultimapRecord record = iter.next(); Assert.assertEquals("1", record.docId()); Assert.assertFalse(iter.hasNext()); records.close(); cosmos.close(); } @Test public void serializeStoreFetchAndAdd() throws Exception { Store id = Store.create(c, AUTHS, IdentitySet.<Index> create()); String uuid = id.uuid(); Cosmos cosmos = new CosmosImpl(zkConnectString()); cosmos.register(id); // Save off our Store that we've defined PersistedStores.store(id); Multimap<Column,RecordValue<?>> data = HashMultimap.create(); data.put(Column.create("NAME"), RecordValue.create("George", VIZ)); data.put(Column.create("AGE"), RecordValue.create("25", VIZ)); data.put(Column.create("HEIGHT"), RecordValue.create("70", VIZ)); MultimapRecord mqr = new MultimapRecord(data, "1", VIZ); cosmos.addResult(id, mqr); id = null; id = PersistedStores.retrieve(c, Defaults.METADATA_TABLE, AUTHS, uuid); CloseableIterable<MultimapRecord> records = cosmos.fetch(id); Iterator<MultimapRecord> iter = records.iterator(); Assert.assertTrue(iter.hasNext()); MultimapRecord record = iter.next(); Assert.assertEquals("1", record.docId()); Assert.assertFalse(iter.hasNext()); mqr = new MultimapRecord(data, "2", VIZ); cosmos.addResult(id, mqr); records = cosmos.fetch(id); iter = records.iterator(); Assert.assertTrue(iter.hasNext()); record = iter.next(); Assert.assertEquals("1", record.docId()); Assert.assertTrue(iter.hasNext()); record = iter.next(); Assert.assertEquals("2", record.docId()); Assert.assertFalse(iter.hasNext()); records.close(); cosmos.close(); } }