aboutsummaryrefslogtreecommitdiff
path: root/java
diff options
context:
space:
mode:
authorAlexander Dorokhine <adorokhine@google.com>2020-11-18 16:42:53 -0800
committerAlexander Dorokhine <adorokhine@google.com>2020-11-18 16:52:31 -0800
commit815126b2dc9bfa46c1b7a5fd8598f93729b48295 (patch)
treea28cdf4e5570aaaddacf93d6d02660afeb68563c /java
parent2a9017f754c604f119afbf218b8d007f47cb3122 (diff)
parent1ae91ee03a08a4f0391f0f90e2797fb3c2e02960 (diff)
downloadicing-815126b2dc9bfa46c1b7a5fd8598f93729b48295.tar.gz
Merge branch 'upstream-master' into androidx-master-dev
* upstream-master: Update Icing from upstream. Change-Id: Iac054539d5d151f52ddb316f351487b2c4e77a4e
Diffstat (limited to 'java')
-rw-r--r--java/src/com/google/android/icing/IcingSearchEngine.java38
-rw-r--r--java/tests/instrumentation/src/com/google/android/icing/IcingSearchEngineTest.java222
2 files changed, 147 insertions, 113 deletions
diff --git a/java/src/com/google/android/icing/IcingSearchEngine.java b/java/src/com/google/android/icing/IcingSearchEngine.java
index 76fa33d..cac9fcd 100644
--- a/java/src/com/google/android/icing/IcingSearchEngine.java
+++ b/java/src/com/google/android/icing/IcingSearchEngine.java
@@ -30,6 +30,7 @@ import com.google.android.icing.proto.InitializeResultProto;
import com.google.android.icing.proto.OptimizeResultProto;
import com.google.android.icing.proto.PersistToDiskResultProto;
import com.google.android.icing.proto.PutResultProto;
+import com.google.android.icing.proto.ReportUsageResultProto;
import com.google.android.icing.proto.ResetResultProto;
import com.google.android.icing.proto.ResultSpecProto;
import com.google.android.icing.proto.SchemaProto;
@@ -38,6 +39,7 @@ import com.google.android.icing.proto.SearchResultProto;
import com.google.android.icing.proto.SearchSpecProto;
import com.google.android.icing.proto.SetSchemaResultProto;
import com.google.android.icing.proto.StatusProto;
+import com.google.android.icing.proto.UsageReport;
import com.google.protobuf.ExtensionRegistryLite;
import com.google.protobuf.InvalidProtocolBufferException;
@@ -48,7 +50,7 @@ public final class IcingSearchEngine {
private static final ExtensionRegistryLite EXTENSION_REGISTRY_LITE =
ExtensionRegistryLite.getEmptyRegistry();
- private final long nativePointer;
+ private long nativePointer;
static {
// NOTE: This can fail with an UnsatisfiedLinkError
@@ -192,6 +194,26 @@ public final class IcingSearchEngine {
}
@NonNull
+ public ReportUsageResultProto reportUsage(@NonNull UsageReport usageReport) {
+ byte[] reportUsageResultBytes = nativeReportUsage(nativePointer, usageReport.toByteArray());
+ if (reportUsageResultBytes == null) {
+ Log.e(TAG, "Received null ReportUsageResultProto from native.");
+ return ReportUsageResultProto.newBuilder()
+ .setStatus(StatusProto.newBuilder().setCode(StatusProto.Code.INTERNAL))
+ .build();
+ }
+
+ try {
+ return ReportUsageResultProto.parseFrom(reportUsageResultBytes, EXTENSION_REGISTRY_LITE);
+ } catch (InvalidProtocolBufferException e) {
+ Log.e(TAG, "Error parsing ReportUsageResultProto.", e);
+ return ReportUsageResultProto.newBuilder()
+ .setStatus(StatusProto.newBuilder().setCode(StatusProto.Code.INTERNAL))
+ .build();
+ }
+ }
+
+ @NonNull
public GetAllNamespacesResultProto getAllNamespaces() {
byte[] getAllNamespacesResultBytes = nativeGetAllNamespaces(nativePointer);
if (getAllNamespacesResultBytes == null) {
@@ -338,8 +360,7 @@ public final class IcingSearchEngine {
}
try {
- return DeleteResultProto.parseFrom(
- deleteResultBytes, EXTENSION_REGISTRY_LITE);
+ return DeleteResultProto.parseFrom(deleteResultBytes, EXTENSION_REGISTRY_LITE);
} catch (InvalidProtocolBufferException e) {
Log.e(TAG, "Error parsing DeleteResultProto.", e);
return DeleteResultProto.newBuilder()
@@ -429,8 +450,17 @@ public final class IcingSearchEngine {
}
}
+ public void destroy() {
+ if (nativePointer != 0) {
+ nativeDestroy(nativePointer);
+ }
+ nativePointer = 0;
+ }
+
private static native long nativeCreate(byte[] icingSearchEngineOptionsBytes);
+ private static native void nativeDestroy(long nativePointer);
+
private static native byte[] nativeInitialize(long nativePointer);
private static native byte[] nativeSetSchema(
@@ -444,6 +474,8 @@ public final class IcingSearchEngine {
private static native byte[] nativeGet(long nativePointer, String namespace, String uri);
+ private static native byte[] nativeReportUsage(long nativePointer, byte[] usageReportBytes);
+
private static native byte[] nativeGetAllNamespaces(long nativePointer);
private static native byte[] nativeSearch(
diff --git a/java/tests/instrumentation/src/com/google/android/icing/IcingSearchEngineTest.java b/java/tests/instrumentation/src/com/google/android/icing/IcingSearchEngineTest.java
index 4c05a7a..ee8ff37 100644
--- a/java/tests/instrumentation/src/com/google/android/icing/IcingSearchEngineTest.java
+++ b/java/tests/instrumentation/src/com/google/android/icing/IcingSearchEngineTest.java
@@ -33,6 +33,7 @@ import com.google.android.icing.proto.PersistToDiskResultProto;
import com.google.android.icing.proto.PropertyConfigProto;
import com.google.android.icing.proto.PropertyProto;
import com.google.android.icing.proto.PutResultProto;
+import com.google.android.icing.proto.ReportUsageResultProto;
import com.google.android.icing.proto.ResetResultProto;
import com.google.android.icing.proto.ResultSpecProto;
import com.google.android.icing.proto.SchemaProto;
@@ -45,10 +46,12 @@ import com.google.android.icing.proto.StatusProto;
import com.google.android.icing.proto.StringIndexingConfig;
import com.google.android.icing.proto.StringIndexingConfig.TokenizerType;
import com.google.android.icing.proto.TermMatchType;
+import com.google.android.icing.proto.UsageReport;
import com.google.android.icing.IcingSearchEngine;
import java.io.File;
import java.util.HashMap;
import java.util.Map;
+import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
@@ -68,6 +71,8 @@ public final class IcingSearchEngineTest {
private File tempDir;
+ private IcingSearchEngine icingSearchEngine;
+
private static SchemaTypeConfigProto createEmailTypeConfig() {
return SchemaTypeConfigProto.newBuilder()
.setSchemaType(EMAIL_TYPE)
@@ -104,77 +109,72 @@ public final class IcingSearchEngineTest {
@Before
public void setUp() throws Exception {
tempDir = temporaryFolder.newFolder();
+ IcingSearchEngineOptions options =
+ IcingSearchEngineOptions.newBuilder().setBaseDir(tempDir.getCanonicalPath()).build();
+ icingSearchEngine = new IcingSearchEngine(options);
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ icingSearchEngine.destroy();
}
@Test
public void testInitialize() throws Exception {
- IcingSearchEngineOptions options =
- IcingSearchEngineOptions.newBuilder().setBaseDir(tempDir.getCanonicalPath()).build();
- IcingSearchEngine icing = new IcingSearchEngine(options);
-
- InitializeResultProto initializeResultProto = icing.initialize();
+ InitializeResultProto initializeResultProto = icingSearchEngine.initialize();
assertStatusOk(initializeResultProto.getStatus());
}
@Test
public void testSetAndGetSchema() throws Exception {
- IcingSearchEngineOptions options =
- IcingSearchEngineOptions.newBuilder().setBaseDir(tempDir.getCanonicalPath()).build();
- IcingSearchEngine icing = new IcingSearchEngine(options);
- assertStatusOk(icing.initialize().getStatus());
+ assertStatusOk(icingSearchEngine.initialize().getStatus());
SchemaTypeConfigProto emailTypeConfig = createEmailTypeConfig();
SchemaProto schema = SchemaProto.newBuilder().addTypes(emailTypeConfig).build();
SetSchemaResultProto setSchemaResultProto =
- icing.setSchema(schema, /*ignoreErrorsAndDeleteDocuments=*/ false);
+ icingSearchEngine.setSchema(schema, /*ignoreErrorsAndDeleteDocuments=*/ false);
assertStatusOk(setSchemaResultProto.getStatus());
- GetSchemaResultProto getSchemaResultProto = icing.getSchema();
+ GetSchemaResultProto getSchemaResultProto = icingSearchEngine.getSchema();
assertStatusOk(getSchemaResultProto.getStatus());
assertThat(getSchemaResultProto.getSchema()).isEqualTo(schema);
GetSchemaTypeResultProto getSchemaTypeResultProto =
- icing.getSchemaType(emailTypeConfig.getSchemaType());
+ icingSearchEngine.getSchemaType(emailTypeConfig.getSchemaType());
assertStatusOk(getSchemaTypeResultProto.getStatus());
assertThat(getSchemaTypeResultProto.getSchemaTypeConfig()).isEqualTo(emailTypeConfig);
}
@Test
public void testPutAndGetDocuments() throws Exception {
- IcingSearchEngineOptions options =
- IcingSearchEngineOptions.newBuilder().setBaseDir(tempDir.getCanonicalPath()).build();
- IcingSearchEngine icing = new IcingSearchEngine(options);
- assertStatusOk(icing.initialize().getStatus());
+ assertStatusOk(icingSearchEngine.initialize().getStatus());
SchemaTypeConfigProto emailTypeConfig = createEmailTypeConfig();
SchemaProto schema = SchemaProto.newBuilder().addTypes(emailTypeConfig).build();
assertThat(
- icing
+ icingSearchEngine
.setSchema(schema, /*ignoreErrorsAndDeleteDocuments=*/ false)
.getStatus()
.getCode())
.isEqualTo(StatusProto.Code.OK);
DocumentProto emailDocument = createEmailDocument("namespace", "uri");
- PutResultProto putResultProto = icing.put(emailDocument);
+ PutResultProto putResultProto = icingSearchEngine.put(emailDocument);
assertStatusOk(putResultProto.getStatus());
- GetResultProto getResultProto = icing.get("namespace", "uri");
+ GetResultProto getResultProto = icingSearchEngine.get("namespace", "uri");
assertStatusOk(getResultProto.getStatus());
assertThat(getResultProto.getDocument()).isEqualTo(emailDocument);
}
@Test
public void testSearch() throws Exception {
- IcingSearchEngineOptions options =
- IcingSearchEngineOptions.newBuilder().setBaseDir(tempDir.getCanonicalPath()).build();
- IcingSearchEngine icing = new IcingSearchEngine(options);
- assertStatusOk(icing.initialize().getStatus());
+ assertStatusOk(icingSearchEngine.initialize().getStatus());
SchemaTypeConfigProto emailTypeConfig = createEmailTypeConfig();
SchemaProto schema = SchemaProto.newBuilder().addTypes(emailTypeConfig).build();
assertThat(
- icing
+ icingSearchEngine
.setSchema(schema, /*ignoreErrorsAndDeleteDocuments=*/ false)
.getStatus()
.getCode())
@@ -184,7 +184,7 @@ public final class IcingSearchEngineTest {
createEmailDocument("namespace", "uri").toBuilder()
.addProperties(PropertyProto.newBuilder().setName("subject").addStringValues("foo"))
.build();
- assertStatusOk(icing.put(emailDocument).getStatus());
+ assertStatusOk(icingSearchEngine.put(emailDocument).getStatus());
SearchSpecProto searchSpec =
SearchSpecProto.newBuilder()
@@ -193,7 +193,7 @@ public final class IcingSearchEngineTest {
.build();
SearchResultProto searchResultProto =
- icing.search(
+ icingSearchEngine.search(
searchSpec,
ScoringSpecProto.getDefaultInstance(),
ResultSpecProto.getDefaultInstance());
@@ -204,15 +204,12 @@ public final class IcingSearchEngineTest {
@Test
public void testGetNextPage() throws Exception {
- IcingSearchEngineOptions options =
- IcingSearchEngineOptions.newBuilder().setBaseDir(tempDir.getCanonicalPath()).build();
- IcingSearchEngine icing = new IcingSearchEngine(options);
- assertStatusOk(icing.initialize().getStatus());
+ assertStatusOk(icingSearchEngine.initialize().getStatus());
SchemaTypeConfigProto emailTypeConfig = createEmailTypeConfig();
SchemaProto schema = SchemaProto.newBuilder().addTypes(emailTypeConfig).build();
assertThat(
- icing
+ icingSearchEngine
.setSchema(schema, /*ignoreErrorsAndDeleteDocuments=*/ false)
.getStatus()
.getCode())
@@ -225,8 +222,8 @@ public final class IcingSearchEngineTest {
.addProperties(PropertyProto.newBuilder().setName("subject").addStringValues("foo"))
.build();
documents.put("uri:" + i, emailDocument);
- assertWithMessage(icing.put(emailDocument).getStatus().getMessage())
- .that(icing.put(emailDocument).getStatus().getCode())
+ assertWithMessage(icingSearchEngine.put(emailDocument).getStatus().getMessage())
+ .that(icingSearchEngine.put(emailDocument).getStatus().getCode())
.isEqualTo(StatusProto.Code.OK);
}
@@ -238,7 +235,8 @@ public final class IcingSearchEngineTest {
ResultSpecProto resultSpecProto = ResultSpecProto.newBuilder().setNumPerPage(1).build();
SearchResultProto searchResultProto =
- icing.search(searchSpec, ScoringSpecProto.getDefaultInstance(), resultSpecProto);
+ icingSearchEngine.search(
+ searchSpec, ScoringSpecProto.getDefaultInstance(), resultSpecProto);
assertStatusOk(searchResultProto.getStatus());
assertThat(searchResultProto.getResultsCount()).isEqualTo(1);
DocumentProto resultDocument = searchResultProto.getResults(0).getDocument();
@@ -246,7 +244,7 @@ public final class IcingSearchEngineTest {
// fetch rest pages
for (int i = 1; i < 5; i++) {
- searchResultProto = icing.getNextPage(searchResultProto.getNextPageToken());
+ searchResultProto = icingSearchEngine.getNextPage(searchResultProto.getNextPageToken());
assertWithMessage(searchResultProto.getStatus().getMessage())
.that(searchResultProto.getStatus().getCode())
.isEqualTo(StatusProto.Code.OK);
@@ -256,120 +254,109 @@ public final class IcingSearchEngineTest {
}
// invalidate rest result
- icing.invalidateNextPageToken(searchResultProto.getNextPageToken());
+ icingSearchEngine.invalidateNextPageToken(searchResultProto.getNextPageToken());
- searchResultProto = icing.getNextPage(searchResultProto.getNextPageToken());
+ searchResultProto = icingSearchEngine.getNextPage(searchResultProto.getNextPageToken());
assertStatusOk(searchResultProto.getStatus());
assertThat(searchResultProto.getResultsCount()).isEqualTo(0);
}
@Test
public void testDelete() throws Exception {
- IcingSearchEngineOptions options =
- IcingSearchEngineOptions.newBuilder().setBaseDir(tempDir.getCanonicalPath()).build();
- IcingSearchEngine icing = new IcingSearchEngine(options);
- assertStatusOk(icing.initialize().getStatus());
+ assertStatusOk(icingSearchEngine.initialize().getStatus());
SchemaTypeConfigProto emailTypeConfig = createEmailTypeConfig();
SchemaProto schema = SchemaProto.newBuilder().addTypes(emailTypeConfig).build();
assertThat(
- icing
+ icingSearchEngine
.setSchema(schema, /*ignoreErrorsAndDeleteDocuments=*/ false)
.getStatus()
.getCode())
.isEqualTo(StatusProto.Code.OK);
DocumentProto emailDocument = createEmailDocument("namespace", "uri");
- assertStatusOk(icing.put(emailDocument).getStatus());
+ assertStatusOk(icingSearchEngine.put(emailDocument).getStatus());
- DeleteResultProto deleteResultProto = icing.delete("namespace", "uri");
+ DeleteResultProto deleteResultProto = icingSearchEngine.delete("namespace", "uri");
assertStatusOk(deleteResultProto.getStatus());
- GetResultProto getResultProto = icing.get("namespace", "uri");
+ GetResultProto getResultProto = icingSearchEngine.get("namespace", "uri");
assertThat(getResultProto.getStatus().getCode()).isEqualTo(StatusProto.Code.NOT_FOUND);
}
@Test
public void testDeleteByNamespace() throws Exception {
- IcingSearchEngineOptions options =
- IcingSearchEngineOptions.newBuilder().setBaseDir(tempDir.getCanonicalPath()).build();
- IcingSearchEngine icing = new IcingSearchEngine(options);
- assertStatusOk(icing.initialize().getStatus());
+ assertStatusOk(icingSearchEngine.initialize().getStatus());
SchemaTypeConfigProto emailTypeConfig = createEmailTypeConfig();
SchemaProto schema = SchemaProto.newBuilder().addTypes(emailTypeConfig).build();
assertThat(
- icing
+ icingSearchEngine
.setSchema(schema, /*ignoreErrorsAndDeleteDocuments=*/ false)
.getStatus()
.getCode())
.isEqualTo(StatusProto.Code.OK);
DocumentProto emailDocument = createEmailDocument("namespace", "uri");
- assertStatusOk(icing.put(emailDocument).getStatus());
+ assertStatusOk(icingSearchEngine.put(emailDocument).getStatus());
DeleteByNamespaceResultProto deleteByNamespaceResultProto =
- icing.deleteByNamespace("namespace");
+ icingSearchEngine.deleteByNamespace("namespace");
assertStatusOk(deleteByNamespaceResultProto.getStatus());
- GetResultProto getResultProto = icing.get("namespace", "uri");
+ GetResultProto getResultProto = icingSearchEngine.get("namespace", "uri");
assertThat(getResultProto.getStatus().getCode()).isEqualTo(StatusProto.Code.NOT_FOUND);
}
@Test
public void testDeleteBySchemaType() throws Exception {
- IcingSearchEngineOptions options =
- IcingSearchEngineOptions.newBuilder().setBaseDir(tempDir.getCanonicalPath()).build();
- IcingSearchEngine icing = new IcingSearchEngine(options);
- assertStatusOk(icing.initialize().getStatus());
+ assertStatusOk(icingSearchEngine.initialize().getStatus());
SchemaTypeConfigProto emailTypeConfig = createEmailTypeConfig();
SchemaProto schema = SchemaProto.newBuilder().addTypes(emailTypeConfig).build();
assertThat(
- icing
+ icingSearchEngine
.setSchema(schema, /*ignoreErrorsAndDeleteDocuments=*/ false)
.getStatus()
.getCode())
.isEqualTo(StatusProto.Code.OK);
DocumentProto emailDocument = createEmailDocument("namespace", "uri");
- assertStatusOk(icing.put(emailDocument).getStatus());
+ assertStatusOk(icingSearchEngine.put(emailDocument).getStatus());
DeleteBySchemaTypeResultProto deleteBySchemaTypeResultProto =
- icing.deleteBySchemaType(EMAIL_TYPE);
+ icingSearchEngine.deleteBySchemaType(EMAIL_TYPE);
assertStatusOk(deleteBySchemaTypeResultProto.getStatus());
- GetResultProto getResultProto = icing.get("namespace", "uri");
+ GetResultProto getResultProto = icingSearchEngine.get("namespace", "uri");
assertThat(getResultProto.getStatus().getCode()).isEqualTo(StatusProto.Code.NOT_FOUND);
}
-
@Test
public void testDeleteByQuery() throws Exception {
- IcingSearchEngineOptions options =
- IcingSearchEngineOptions.newBuilder().setBaseDir(tempDir.getCanonicalPath()).build();
- IcingSearchEngine icing = new IcingSearchEngine(options);
- assertStatusOk(icing.initialize().getStatus());
+ assertStatusOk(icingSearchEngine.initialize().getStatus());
SchemaTypeConfigProto emailTypeConfig = createEmailTypeConfig();
SchemaProto schema = SchemaProto.newBuilder().addTypes(emailTypeConfig).build();
assertThat(
- icing
- .setSchema(schema, /*ignoreErrorsAndDeleteDocuments=*/ false)
- .getStatus()
- .getCode())
+ icingSearchEngine
+ .setSchema(schema, /*ignoreErrorsAndDeleteDocuments=*/ false)
+ .getStatus()
+ .getCode())
.isEqualTo(StatusProto.Code.OK);
DocumentProto emailDocument1 =
createEmailDocument("namespace", "uri1").toBuilder()
- .addProperties(PropertyProto.newBuilder().setName("subject").addStringValues("foo"))
- .build();;
- assertStatusOk(icing.put(emailDocument1).getStatus());
+ .addProperties(PropertyProto.newBuilder().setName("subject").addStringValues("foo"))
+ .build();
+
+ assertStatusOk(icingSearchEngine.put(emailDocument1).getStatus());
DocumentProto emailDocument2 =
createEmailDocument("namespace", "uri2").toBuilder()
- .addProperties(PropertyProto.newBuilder().setName("subject").addStringValues("bar"))
- .build();;
- assertStatusOk(icing.put(emailDocument2).getStatus());
+ .addProperties(PropertyProto.newBuilder().setName("subject").addStringValues("bar"))
+ .build();
+
+ assertStatusOk(icingSearchEngine.put(emailDocument2).getStatus());
SearchSpecProto searchSpec =
SearchSpecProto.newBuilder()
@@ -378,7 +365,7 @@ public final class IcingSearchEngineTest {
.build();
SearchResultProto searchResultProto =
- icing.search(
+ icingSearchEngine.search(
searchSpec,
ScoringSpecProto.getDefaultInstance(),
ResultSpecProto.getDefaultInstance());
@@ -386,45 +373,36 @@ public final class IcingSearchEngineTest {
assertThat(searchResultProto.getResultsCount()).isEqualTo(1);
assertThat(searchResultProto.getResults(0).getDocument()).isEqualTo(emailDocument1);
- DeleteResultProto deleteResultProto = icing.deleteByQuery(searchSpec);
+ DeleteResultProto deleteResultProto = icingSearchEngine.deleteByQuery(searchSpec);
assertStatusOk(deleteResultProto.getStatus());
- GetResultProto getResultProto = icing.get("namespace", "uri1");
+ GetResultProto getResultProto = icingSearchEngine.get("namespace", "uri1");
assertThat(getResultProto.getStatus().getCode()).isEqualTo(StatusProto.Code.NOT_FOUND);
- getResultProto = icing.get("namespace", "uri2");
+ getResultProto = icingSearchEngine.get("namespace", "uri2");
assertStatusOk(getResultProto.getStatus());
}
@Test
public void testPersistToDisk() throws Exception {
- IcingSearchEngineOptions options =
- IcingSearchEngineOptions.newBuilder().setBaseDir(tempDir.getCanonicalPath()).build();
- IcingSearchEngine icing = new IcingSearchEngine(options);
- assertStatusOk(icing.initialize().getStatus());
+ assertStatusOk(icingSearchEngine.initialize().getStatus());
- PersistToDiskResultProto persistToDiskResultProto = icing.persistToDisk();
+ PersistToDiskResultProto persistToDiskResultProto = icingSearchEngine.persistToDisk();
assertStatusOk(persistToDiskResultProto.getStatus());
}
@Test
public void testOptimize() throws Exception {
- IcingSearchEngineOptions options =
- IcingSearchEngineOptions.newBuilder().setBaseDir(tempDir.getCanonicalPath()).build();
- IcingSearchEngine icing = new IcingSearchEngine(options);
- assertStatusOk(icing.initialize().getStatus());
+ assertStatusOk(icingSearchEngine.initialize().getStatus());
- OptimizeResultProto optimizeResultProto = icing.optimize();
+ OptimizeResultProto optimizeResultProto = icingSearchEngine.optimize();
assertStatusOk(optimizeResultProto.getStatus());
}
@Test
public void testGetOptimizeInfo() throws Exception {
- IcingSearchEngineOptions options =
- IcingSearchEngineOptions.newBuilder().setBaseDir(tempDir.getCanonicalPath()).build();
- IcingSearchEngine icing = new IcingSearchEngine(options);
- assertStatusOk(icing.initialize().getStatus());
+ assertStatusOk(icingSearchEngine.initialize().getStatus());
- GetOptimizeInfoResultProto getOptimizeInfoResultProto = icing.getOptimizeInfo();
+ GetOptimizeInfoResultProto getOptimizeInfoResultProto = icingSearchEngine.getOptimizeInfo();
assertStatusOk(getOptimizeInfoResultProto.getStatus());
assertThat(getOptimizeInfoResultProto.getOptimizableDocs()).isEqualTo(0);
assertThat(getOptimizeInfoResultProto.getEstimatedOptimizableBytes()).isEqualTo(0);
@@ -432,39 +410,63 @@ public final class IcingSearchEngineTest {
@Test
public void testGetAllNamespaces() throws Exception {
- IcingSearchEngineOptions options =
- IcingSearchEngineOptions.newBuilder().setBaseDir(tempDir.getCanonicalPath()).build();
- IcingSearchEngine icing = new IcingSearchEngine(options);
- assertStatusOk(icing.initialize().getStatus());
+ assertStatusOk(icingSearchEngine.initialize().getStatus());
SchemaTypeConfigProto emailTypeConfig = createEmailTypeConfig();
SchemaProto schema = SchemaProto.newBuilder().addTypes(emailTypeConfig).build();
assertThat(
- icing
- .setSchema(schema, /*ignoreErrorsAndDeleteDocuments=*/ false)
- .getStatus()
- .getCode())
+ icingSearchEngine
+ .setSchema(schema, /*ignoreErrorsAndDeleteDocuments=*/ false)
+ .getStatus()
+ .getCode())
.isEqualTo(StatusProto.Code.OK);
DocumentProto emailDocument = createEmailDocument("namespace", "uri");
- assertStatusOk(icing.put(emailDocument).getStatus());
+ assertStatusOk(icingSearchEngine.put(emailDocument).getStatus());
- GetAllNamespacesResultProto getAllNamespacesResultProto = icing.getAllNamespaces();
+ GetAllNamespacesResultProto getAllNamespacesResultProto = icingSearchEngine.getAllNamespaces();
assertStatusOk(getAllNamespacesResultProto.getStatus());
assertThat(getAllNamespacesResultProto.getNamespacesList()).containsExactly("namespace");
}
@Test
public void testReset() throws Exception {
- IcingSearchEngineOptions options =
- IcingSearchEngineOptions.newBuilder().setBaseDir(tempDir.getCanonicalPath()).build();
- IcingSearchEngine icing = new IcingSearchEngine(options);
- assertStatusOk(icing.initialize().getStatus());
+ assertStatusOk(icingSearchEngine.initialize().getStatus());
- ResetResultProto resetResultProto = icing.reset();
+ ResetResultProto resetResultProto = icingSearchEngine.reset();
assertStatusOk(resetResultProto.getStatus());
}
+ @Test
+ public void testReportUsage() throws Exception {
+ assertStatusOk(icingSearchEngine.initialize().getStatus());
+
+ // Set schema and put a document.
+ SchemaTypeConfigProto emailTypeConfig = createEmailTypeConfig();
+ SchemaProto schema = SchemaProto.newBuilder().addTypes(emailTypeConfig).build();
+ assertThat(
+ icingSearchEngine
+ .setSchema(schema, /*ignoreErrorsAndDeleteDocuments=*/ false)
+ .getStatus()
+ .getCode())
+ .isEqualTo(StatusProto.Code.OK);
+
+ DocumentProto emailDocument = createEmailDocument("namespace", "uri");
+ PutResultProto putResultProto = icingSearchEngine.put(emailDocument);
+ assertStatusOk(putResultProto.getStatus());
+
+ // Report usage
+ UsageReport usageReport =
+ UsageReport.newBuilder()
+ .setDocumentNamespace("namespace")
+ .setDocumentUri("uri")
+ .setUsageTimestampMs(1)
+ .setUsageType(UsageReport.UsageType.USAGE_TYPE1)
+ .build();
+ ReportUsageResultProto reportUsageResultProto = icingSearchEngine.reportUsage(usageReport);
+ assertStatusOk(reportUsageResultProto.getStatus());
+ }
+
private static void assertStatusOk(StatusProto status) {
assertWithMessage(status.getMessage()).that(status.getCode()).isEqualTo(StatusProto.Code.OK);
}