diff --git a/syncbase/src/main/java/io/v/syncbase/internal/Id.java b/syncbase/src/main/java/io/v/syncbase/internal/Id.java
index c9afdd7..34e912b 100644
--- a/syncbase/src/main/java/io/v/syncbase/internal/Id.java
+++ b/syncbase/src/main/java/io/v/syncbase/internal/Id.java
@@ -7,4 +7,20 @@
 public class Id {
     String blessing;
     String name;
+
+    public Id() {
+        // This empty constructor makes the JNI code a little bit simpler by making this class
+        // similar to other classes for which we cache class/method/field IDs.
+    }
+
+    public Id(String blessing, String name) {
+        this.blessing = blessing;
+        this.name = name;
+    }
+
+    // TODO(razvanm): Switch to v23_syncbase_EncodeId.
+    // Reference: https://github.com/vanadium/go.v23/blob/master/syncbase/util/util.go
+    public String toString() {
+        return blessing + "," + name;
+    }
 }
diff --git a/syncbase/src/main/java/io/v/syncbase/internal/VError.java b/syncbase/src/main/java/io/v/syncbase/internal/VError.java
index c6e9192..721c2ca 100644
--- a/syncbase/src/main/java/io/v/syncbase/internal/VError.java
+++ b/syncbase/src/main/java/io/v/syncbase/internal/VError.java
@@ -9,4 +9,9 @@
     long actionCode;
     String message;
     String stack;
+
+    public String toString() {
+        return String.format("{\n  id: \"%s\"\n  actionCode: %d\n  message: \"%s\"\n  stack: \"%s\"}",
+                id, actionCode, message, stack);
+    }
 }
\ No newline at end of file
diff --git a/syncbase/src/test/java/io/v/syncbase/internal/DatabaseTest.java b/syncbase/src/test/java/io/v/syncbase/internal/DatabaseTest.java
new file mode 100644
index 0000000..6c5baa4
--- /dev/null
+++ b/syncbase/src/test/java/io/v/syncbase/internal/DatabaseTest.java
@@ -0,0 +1,44 @@
+// Copyright 2016 The Vanadium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package io.v.syncbase.internal;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+public class DatabaseTest {
+    @Before
+    public void setUp() {
+        System.loadLibrary("syncbase");
+    }
+
+    @Test
+    public void createDatabase() {
+        Id dbId = new Id("blessing", "db");
+        // The instance is empty so creating of a database should succeed.
+        try {
+            Database.Create(dbId.toString(), null);
+        } catch (VError vError) {
+            fail();
+        }
+
+        // Creating the same database should raise an exception.
+        boolean exceptionThrown = false;
+        try {
+            Database.Create(dbId.toString(), null);
+        } catch (VError vError) {
+            assertEquals("v.io/v23/verror.Exist", vError.id);
+            assertNotNull(vError.message);
+            assertNotNull(vError.stack);
+            assertEquals(0, vError.actionCode);
+            exceptionThrown = true;
+        }
+        assertTrue(exceptionThrown);
+    }
+}
diff --git a/syncbase/src/test/java/io/v/syncbase/internal/ServiceTest.java b/syncbase/src/test/java/io/v/syncbase/internal/ServiceTest.java
new file mode 100644
index 0000000..58e5ebb
--- /dev/null
+++ b/syncbase/src/test/java/io/v/syncbase/internal/ServiceTest.java
@@ -0,0 +1,22 @@
+// Copyright 2016 The Vanadium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package io.v.syncbase.internal;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import static org.junit.Assert.assertTrue;
+
+public class ServiceTest {
+    @Before
+    public void setUp() {
+        System.loadLibrary("syncbase");
+    }
+
+    @Test
+    public void listDatabases() {
+        assertTrue(Service.ListDatabases().isEmpty());
+    }
+}
