package com.fourspaces.couchdb.test; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import java.util.Date; import net.sf.json.JSONObject; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.junit.After; import org.junit.Before; import org.junit.Test; import com.fourspaces.couchdb.Database; import com.fourspaces.couchdb.Document; import com.fourspaces.couchdb.Session; import com.fourspaces.couchdb.View; import com.fourspaces.couchdb.ViewResults; public class DocumentTest { Log log = LogFactory.getLog(getClass()); Session sess = TestSession.getTestSession(); Database foo; @Before public void createTestDB() throws Exception { foo=sess.createDatabase("foo"); foo.saveDocument(new Document(),"foo"); foo.saveDocument(new Document()); foo.saveDocument(new Document()); foo.saveDocument(new Document()); foo.saveDocument(new Document()); } @Test public void update() throws Exception { JSONObject obj = new JSONObject(); obj.put("foo","bar"); obj.accumulate("array", "ar1"); obj.accumulate("array", "ar2"); obj.accumulate("array", "ar3"); Document doc = new Document(obj); foo.saveDocument(doc,"foodoc"); Document foodoc = foo.getDocumentWithRevisions("foodoc"); System.out.println(foodoc.getRev()); String oldId = foodoc.getId(); String oldRev = foodoc.getRev(); assertEquals(foodoc.getRevisions().length,1); foodoc.put("now", new Date()); foo.saveDocument(foodoc); //System.out.println(foodoc.getRev()); assertEquals(oldId,foodoc.getId()); assertFalse(oldRev.equals(foodoc.getRev())); foodoc = foo.getDocumentWithRevisions("foodoc"); //System.out.println(Arrays.toString(foodoc.getRevisions())); assertEquals(foodoc.getRevisions().length,2); } @Test public void get() throws Exception { JSONObject obj = new JSONObject(); obj.put("foo","bar"); obj.accumulate("array", "ar1"); obj.accumulate("array", "ar2"); obj.accumulate("array", "ar3"); Document doc = new Document(obj); foo.saveDocument(doc,"foodoc"); assertNotNull(doc.getId()); assertNotNull(doc.getRev()); Document foodoc = foo.getDocument("foodoc"); assertEquals(foodoc.get("foo"),"bar"); foo.deleteDocument(foodoc); foodoc = foo.getDocument("foodoc"); assertNull(foodoc); } @Test public void list1() { ViewResults vr = foo.getAllDocumentsWithCount(1); assertEquals(vr.getResults().size(),1 ); } @After public void deleteAll() { sess.deleteDatabase("foo"); } @Test public void bulkSave() throws Exception { Document[] docs = new Document[3]; docs[0] = new Document(); docs[1] = new Document(); docs[2] = new Document(); docs[0].accumulate("foo", "bar1" + System.currentTimeMillis()); docs[1].accumulate("foo", "bar2" + System.currentTimeMillis()); docs[2].accumulate("foo", "bar3" + System.currentTimeMillis()); foo.bulkSaveDocuments(docs); for (Document d : docs) { boolean deleted = foo.deleteDocument(d); assertEquals(deleted, true); } } }