package org.swellrt.model; import com.mongodb.BasicDBList; import com.mongodb.BasicDBObject; import org.swellrt.model.unmutable.UnmutableModel; import org.swellrt.server.box.index.ModelIndexerVisitor; import org.waveprotocol.wave.model.util.Pair; import java.util.Map; public class ModelToMongoVisitorTest extends WaveletBasedTestBase { protected void setUp() throws Exception { super.setUp(); } public void testVisitor() { ReadableModel model = UnmutableModel.create(getWaveletData()); Pair<BasicDBObject, Map<String, String>> visitorResult = ModelIndexerVisitor.run(model, null); BasicDBObject mongoModel = visitorResult.first; assertEquals("example.com/w+seedA", mongoModel.get("wave_id")); assertEquals("example.com/conv+seedB", mongoModel.get("wavelet_id")); assertEquals("tom@example.com", ((BasicDBList) mongoModel.get("participants")).get(0)); assertEquals("tim@example.com", ((BasicDBList) mongoModel.get("participants")).get(1)); BasicDBObject root = (BasicDBObject) mongoModel.get("root"); assertEquals("This is string 0", root.get("key0")); assertEquals("This is string 1", root.get("key3")); BasicDBObject map = (BasicDBObject) root.get("key1"); assertEquals("This is string 2", map.get("key10")); BasicDBList list = (BasicDBList) root.get("key2"); assertEquals("This is string 4", list.get(0)); assertEquals("This is string 5", list.get(1)); } }