package com.couchbase.lite.syncgateway; import com.couchbase.lite.CouchbaseLiteException; import com.couchbase.lite.Document; import com.couchbase.lite.LiteTestCaseWithDB; import com.couchbase.lite.replicator.Replication; import java.net.MalformedURLException; import java.net.URL; import java.util.HashMap; import java.util.Map; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; /** * Created by hideki on 1/3/17. */ public class CouchDBTest extends LiteTestCaseWithDB { public static final String TAG = "AutoPruningTest"; @Override protected void setUp() throws Exception { if (!couchdbTestsEnabled()) { return; } super.setUp(); } // https://github.com/couchbase/couchbase-lite-java-core/issues/1534 // Push Replication Fails With createTarget Set public void testCreateRemoteDB() throws MalformedURLException, InterruptedException, CouchbaseLiteException { if (!couchdbTestsEnabled()) { return; } Document doc = database.createDocument(); Map<String, Object> dict = new HashMap<String, Object>(); dict.put("test","1"); doc.putProperties(dict); URL remote = getCouchDBURL(); URL url = new URL(remote.toString() + "/db4"); Replication push = database.createPushReplication(url); push.setCreateTarget(true); push.setContinuous(true); final CountDownLatch pushIdle = new CountDownLatch(1); push.addChangeListener(new ReplicationIdleObserver(pushIdle)); push.start(); assertTrue(pushIdle.await(30, TimeUnit.SECONDS)); final CountDownLatch pushDone = new CountDownLatch(1); push.addChangeListener(new ReplicationFinishedObserver(pushDone)); push.stop(); assertTrue(pushDone.await(30, TimeUnit.SECONDS)); } }