package org.emfjson.couchdb.tests; import com.fasterxml.jackson.databind.JsonNode; import org.emfjson.couchdb.client.CouchClient; import org.emfjson.couchdb.client.CouchDocument; import org.emfjson.couchdb.client.DB; import org.junit.Before; import org.junit.Test; import java.io.IOException; import java.net.ConnectException; import java.net.URL; import static org.junit.Assert.*; public class ClientTest { private CouchClient client; @Before public void setUp() { client = new CouchClient(); } @Test public void testConnectionToDefaultServer() throws IOException { assertTrue(client.isConnected()); } @Test(expected = ConnectException.class) public void testConnectionToFakeServer() throws IOException { URL url = new URL("http://127.0.0.1:1334"); CouchClient client = new CouchClient(url); assertFalse(client.isConnected()); } @Test public void testRetrieveAllDbs() throws IOException { JsonNode node = client.dbs(); assertNotNull(node); assertTrue(node.isArray()); } @Test public void testRetrieveDbInfo() throws IOException { DB db = client.db("sample"); assertFalse(db.exist()); db.create(); assertTrue(db.exist()); JsonNode node = db.info(); assertNotNull(node); assertTrue(node.isObject()); assertTrue(node.has("db_name")); assertEquals("sample", node.get("db_name").asText()); db.delete(); } @Test public void testConnectNonExistingDatabaseException() throws IOException { DB db = client.db("fake"); JsonNode result = db.info(); assertTrue(result.has("error")); } @Test public void testConnectNonExistingDatabase() throws IOException { assertFalse(client.hasDatabase("fake")); } @Test public void testCreateAndDeleteDatabase() throws IOException { assertFalse(client.hasDatabase("fake")); DB db = client.db("fake"); JsonNode result = db.create(); assertTrue(result.has("ok")); assertEquals("true", result.get("ok").asText()); assertTrue(client.hasDatabase("fake")); assertTrue(db.exist()); db.delete(); assertFalse(client.hasDatabase("fake")); assertFalse(db.exist()); } @Test public void testCreateAndDeleteDocument() throws IOException { assertFalse(client.hasDatabase("fake")); DB db = client.db("fake"); db.create(); assertTrue(db.exist()); String data = "{\"hello\":\"world\"}"; CouchDocument doc = db.doc("test"); JsonNode result = doc.create(data); assertTrue(result.has("ok")); assertTrue(result.get("ok").asBoolean()); assertTrue(result.has("rev")); String rev = result.get("rev").asText(); result = doc.delete(rev); assertTrue(result.has("ok")); assertTrue(result.get("ok").asBoolean()); db.delete(); assertFalse(client.hasDatabase("fake")); } }