Skip to content
This repository was archived by the owner on Mar 10, 2022. It is now read-only.

Commit 14c8f57

Browse files
author
hideki
committed
Updated test API sample codes.
1 parent 871b09c commit 14c8f57

File tree

5 files changed

+89
-12
lines changed

5 files changed

+89
-12
lines changed

android/CouchbaseLite/src/androidTest/java/com/couchbase/lite/api/DatabaseAPITest.java

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,16 @@
55
import com.couchbase.lite.Database;
66
import com.couchbase.lite.DatabaseConfiguration;
77
import com.couchbase.lite.EncryptionKey;
8+
import com.couchbase.lite.internal.support.Log;
9+
import com.couchbase.lite.utils.ZipUtils;
810

911
import org.junit.After;
1012
import org.junit.Before;
1113
import org.junit.Test;
1214

15+
import java.io.File;
16+
import java.io.IOException;
17+
1318
public class DatabaseAPITest extends BaseTest {
1419
static final String TAG = DatabaseAPITest.class.getSimpleName();
1520

@@ -23,6 +28,7 @@ public void tearDown() throws Exception {
2328
super.tearDown();
2429
}
2530

31+
// ### New Database
2632
@Test
2733
public void testNewDatabase() throws CouchbaseLiteException {
2834
// --- code example ---
@@ -33,6 +39,7 @@ public void testNewDatabase() throws CouchbaseLiteException {
3339
database.delete();
3440
}
3541

42+
// ### Logging
3643
@Test
3744
public void testLogging() throws CouchbaseLiteException {
3845
// --- code example ---
@@ -50,6 +57,7 @@ public void testSingletonPattern() throws CouchbaseLiteException {
5057
mgr.delete();
5158
}
5259

60+
// ### Encryption
5361
@Test
5462
public void testEncryption() throws CouchbaseLiteException {
5563
// --- code example ---
@@ -60,4 +68,19 @@ public void testEncryption() throws CouchbaseLiteException {
6068

6169
database.delete();
6270
}
71+
72+
// ### Loading a pre-built database
73+
@Test
74+
public void testPreBuiltDatabase() throws IOException {
75+
// --- code example ---
76+
DatabaseConfiguration config = new DatabaseConfiguration(/* Android Context*/ context);
77+
ZipUtils.unzip(getAsset("replacedb/android200-sqlite.cblite2.zip"), context.getFilesDir());
78+
File path = new File(context.getFilesDir(), "android-sqlite");
79+
try {
80+
Database.copy(path, "travel-sample", config);
81+
} catch (CouchbaseLiteException e) {
82+
Log.e(TAG, "Could not load pre-built database");
83+
}
84+
// --- code example ---
85+
}
6386
}

android/CouchbaseLite/src/androidTest/java/com/couchbase/lite/api/DocumentAPITest.java

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,19 @@
11
package com.couchbase.lite.api;
22

33
import com.couchbase.lite.BaseTest;
4+
import com.couchbase.lite.Blob;
45
import com.couchbase.lite.CouchbaseLiteException;
56
import com.couchbase.lite.Database;
6-
import com.couchbase.lite.internal.support.Log;
7+
import com.couchbase.lite.Document;
78
import com.couchbase.lite.MutableDocument;
9+
import com.couchbase.lite.internal.support.Log;
810

911
import org.junit.After;
1012
import org.junit.Before;
1113
import org.junit.Test;
1214

15+
import java.io.IOException;
16+
import java.io.InputStream;
1317
import java.util.Date;
1418
import java.util.HashMap;
1519
import java.util.Map;
@@ -40,6 +44,7 @@ public void tearDown() throws Exception {
4044
super.tearDown();
4145
}
4246

47+
// ### Initializers
4348
@Test
4449
public void testInitializers() {
4550
// --- code example ---
@@ -56,6 +61,7 @@ public void testInitializers() {
5661
// --- code example ---
5762
}
5863

64+
// ### Mutability
5965
@Test
6066
public void testMutability() {
6167
MutableDocument newTask = new MutableDocument();
@@ -70,6 +76,7 @@ public void testMutability() {
7076
// --- code example ---
7177
}
7278

79+
// ### Typed Accessors
7380
@Test
7481
public void testTypedAccessors() {
7582
MutableDocument newTask = new MutableDocument();
@@ -80,6 +87,7 @@ public void testTypedAccessors() {
8087
// --- code example ---
8188
}
8289

90+
// ### Batch operations
8391
@Test
8492
public void testBatchOperations() {
8593
// --- code example ---
@@ -106,4 +114,28 @@ public void run() {
106114
}
107115
// --- code example ---
108116
}
117+
118+
// ### Blobs
119+
@Test
120+
public void testBlobs() {
121+
// --- code example ---
122+
InputStream is = getAsset("attachment.png");
123+
try {
124+
MutableDocument newTask = new MutableDocument();
125+
Blob blob = new Blob("image/png", is);
126+
newTask.setBlob("attachment", blob);
127+
Document doc = database.save(newTask);
128+
129+
Blob taskBlob = doc.getBlob("attachment");
130+
byte[] bytes = taskBlob.getContent();
131+
} catch (CouchbaseLiteException e) {
132+
Log.e(TAG, e.toString());
133+
} finally {
134+
try {
135+
is.close();
136+
} catch (IOException e) {
137+
}
138+
}
139+
// --- code example ---
140+
}
109141
}

android/CouchbaseLite/src/androidTest/java/com/couchbase/lite/api/QueryAPITest.java

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ public void tearDown() throws Exception {
181181
super.tearDown();
182182
}
183183

184-
// Indexing
184+
// ### Indexing
185185
@Test
186186
public void testIndexing() throws CouchbaseLiteException {
187187
// For Documentation
@@ -192,7 +192,7 @@ public void testIndexing() throws CouchbaseLiteException {
192192
}
193193
}
194194

195-
// SELECT statement
195+
// ### SELECT statement
196196
@Test
197197
public void testSelectStatement() throws CouchbaseLiteException {
198198
// For Validation
@@ -235,7 +235,7 @@ public void testSelectStatement() throws CouchbaseLiteException {
235235
.from(DataSource.database(database))
236236
.where(Expression.property("type").equalTo(Expression.string("hotel")))
237237
.orderBy(Ordering.expression(Meta.id));
238-
;
238+
239239
try {
240240
ResultSet rs = query.execute();
241241
for (Result result : rs) {
@@ -297,7 +297,7 @@ public void testMetaFunction() throws CouchbaseLiteException {
297297
}
298298
}
299299

300-
// all(*)
300+
// ### all(*)
301301
@Test
302302
public void testSelectAll() throws CouchbaseLiteException {
303303
// For Validation
@@ -333,7 +333,7 @@ public void testSelectAll() throws CouchbaseLiteException {
333333
}
334334
}
335335

336-
// WHERE statement
336+
// ### WHERE statement
337337
@Test
338338
public void testWhereStatement() throws CouchbaseLiteException {
339339
// For Validation
@@ -376,7 +376,7 @@ public void testWhereStatement() throws CouchbaseLiteException {
376376
}
377377
}
378378

379-
// Collection Operators
379+
// #### Collection Operators
380380
@Test
381381
public void testCollectionStatement() throws CouchbaseLiteException {
382382
// For Validation
@@ -456,7 +456,7 @@ public void testPatternMatching() throws CouchbaseLiteException {
456456
}
457457
}
458458

459-
// Wildcard Match
459+
// ### Wildcard Match
460460
@Test
461461
public void testWildcardMatch() throws CouchbaseLiteException {
462462
// For Validation
@@ -536,7 +536,7 @@ public void testWildCharacterMatch() throws CouchbaseLiteException {
536536
}
537537
}
538538

539-
// Regex Match
539+
// ### Regex Match
540540
@Test
541541
public void testRegexMatch() throws CouchbaseLiteException {
542542
// For Validation
@@ -635,7 +635,7 @@ public void testJoinStatement() throws CouchbaseLiteException {
635635
}
636636
}
637637

638-
// GROUPBY statement
638+
// ### GROUPBY statement
639639
@Test
640640
public void testGroupByStatement() throws CouchbaseLiteException {
641641
// For Validation
@@ -697,7 +697,7 @@ public void testGroupByStatement() throws CouchbaseLiteException {
697697
}
698698
}
699699

700-
// ORDER BY statement
700+
// ### ORDER BY statement
701701
@Test
702702
public void testOrderByStatement() throws CouchbaseLiteException {
703703
// For Validation

android/CouchbaseLite/src/androidTest/java/com/couchbase/lite/api/ReplicationAPITest.java

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,20 @@
44
import com.couchbase.lite.CouchbaseLiteException;
55
import com.couchbase.lite.Database;
66
import com.couchbase.lite.Endpoint;
7-
import com.couchbase.lite.internal.support.Log;
87
import com.couchbase.lite.Replicator;
98
import com.couchbase.lite.ReplicatorChange;
109
import com.couchbase.lite.ReplicatorChangeListener;
1110
import com.couchbase.lite.ReplicatorConfiguration;
1211
import com.couchbase.lite.URLEndpoint;
12+
import com.couchbase.lite.internal.support.Log;
13+
import com.couchbase.lite.utils.IOUtils;
1314

1415
import org.junit.After;
1516
import org.junit.Before;
1617
import org.junit.Test;
1718

19+
import java.io.IOException;
20+
import java.io.InputStream;
1821
import java.net.URI;
1922
import java.net.URISyntaxException;
2023

@@ -113,4 +116,20 @@ public void changed(ReplicatorChange change) {
113116

114117
replication.stop();
115118
}
119+
120+
// ### Certificate Pinning
121+
122+
@Test
123+
public void testCertificatePinning() throws URISyntaxException, IOException {
124+
URI uri = new URI("ws://localhost:4984/db");
125+
Endpoint endpoint = new URLEndpoint(uri);
126+
ReplicatorConfiguration config = new ReplicatorConfiguration(database, endpoint);
127+
128+
// --- code example ---
129+
InputStream is = getAsset("cert.cer");
130+
byte[] cert = IOUtils.toByteArray(is);
131+
is.close();
132+
config.setPinnedServerCertificate(cert);
133+
// --- code example ---
134+
}
116135
}

shared/src/main/java/com/couchbase/lite/Database.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -594,6 +594,9 @@ public static boolean exists(String name, File directory) {
594594

595595
public static void copy(File path, String name, DatabaseConfiguration config)
596596
throws CouchbaseLiteException {
597+
if (path == null || name == null || config == null)
598+
throw new IllegalArgumentException("a path, a dir and/or config parameters are null.");
599+
597600
String fromPath = path.getPath();
598601
if (fromPath.charAt(fromPath.length() - 1) != File.separatorChar)
599602
fromPath += File.separator;

0 commit comments

Comments
 (0)