use of com.google.firebase.firestore.core.Query in project firebase-android-sdk by firebase.
the class TargetIndexMatcherTest method withMultipleNotIn.
@Test
public void withMultipleNotIn() {
Query q = query("collId").filter(filter("a", "not-in", Arrays.asList(1, 2, 3))).filter(filter("a", ">=", 2));
validateServesTarget(q, "a", FieldIndex.Segment.Kind.ASCENDING);
}
use of com.google.firebase.firestore.core.Query in project firebase-android-sdk by firebase.
the class SQLiteSchemaTest method rewritesCanonicalIds.
@Test
public void rewritesCanonicalIds() {
schema.runSchemaUpgrades(0, 10);
Query filteredQuery = query("colletion").filter(filter("foo", "==", "bar"));
TargetData initialTargetData = new TargetData(filteredQuery.toTarget(), /* targetId= */
2, /* sequenceNumber= */
1, QueryPurpose.LISTEN);
db.execSQL("INSERT INTO targets (target_id, canonical_id, target_proto) VALUES (? ,?, ?)", new Object[] { 2, "invalid_canonical_id", serializer.encodeTargetData(initialTargetData).toByteArray() });
schema.runSchemaUpgrades(10, 11);
new SQLitePersistence.Query(db, "SELECT canonical_id, target_proto, canonical_id FROM targets").forEach(cursor -> {
String actualCanonicalId = cursor.getString(0);
byte[] targetProtoBytes = cursor.getBlob(1);
try {
Target targetProto = Target.parseFrom(targetProtoBytes);
TargetData targetData = serializer.decodeTargetData(targetProto);
String expectedCanonicalId = targetData.getTarget().getCanonicalId();
assertEquals(expectedCanonicalId, actualCanonicalId);
} catch (InvalidProtocolBufferException e) {
fail("Failed to decode Target data");
}
});
}
use of com.google.firebase.firestore.core.Query in project firebase-android-sdk by firebase.
the class RemoteSerializerTest method testEncodesFirstLevelAncestorQueries.
@Test
public void testEncodesFirstLevelAncestorQueries() {
Query q = Query.atPath(ResourcePath.fromString("messages"));
Target actual = serializer.encodeTarget(wrapTargetData(q));
StructuredQuery.Builder structuredQueryBuilder = StructuredQuery.newBuilder().addFrom(CollectionSelector.newBuilder().setCollectionId("messages")).addOrderBy(defaultKeyOrder());
QueryTarget.Builder queryBuilder = QueryTarget.newBuilder().setParent("projects/p/databases/d/documents").setStructuredQuery(structuredQueryBuilder);
Target expected = Target.newBuilder().setQuery(queryBuilder).setTargetId(1).setResumeToken(ByteString.EMPTY).build();
assertEquals(expected, actual);
assertEquals(serializer.decodeQueryTarget(serializer.encodeQueryTarget(q.toTarget())), q.toTarget());
}
use of com.google.firebase.firestore.core.Query in project firebase-android-sdk by firebase.
the class RemoteSerializerTest method testEncodesSortOrders.
@Test
public void testEncodesSortOrders() {
Query q = Query.atPath(ResourcePath.fromString("docs")).orderBy(orderBy("prop"));
Target actual = serializer.encodeTarget(wrapTargetData(q));
StructuredQuery.Builder structuredQueryBuilder = StructuredQuery.newBuilder().addFrom(CollectionSelector.newBuilder().setCollectionId("docs")).addOrderBy(Order.newBuilder().setDirection(Direction.ASCENDING).setField(FieldReference.newBuilder().setFieldPath("prop"))).addOrderBy(defaultKeyOrder());
QueryTarget.Builder queryBuilder = QueryTarget.newBuilder().setParent("projects/p/databases/d/documents").setStructuredQuery(structuredQueryBuilder);
Target expected = Target.newBuilder().setQuery(queryBuilder).setTargetId(1).setResumeToken(ByteString.EMPTY).build();
assertEquals(expected, actual);
assertEquals(serializer.decodeQueryTarget(serializer.encodeQueryTarget(q.toTarget())), q.toTarget());
}
use of com.google.firebase.firestore.core.Query in project firebase-android-sdk by firebase.
the class RemoteSerializerTest method testEncodesResumeTokens.
@Test
public void testEncodesResumeTokens() {
Query q = Query.atPath(ResourcePath.fromString("docs"));
TargetData targetData = new TargetData(q.toTarget(), 1, 2, QueryPurpose.LISTEN).withResumeToken(TestUtil.resumeToken(1000), SnapshotVersion.NONE);
Target actual = serializer.encodeTarget(targetData);
StructuredQuery.Builder structuredQueryBuilder = StructuredQuery.newBuilder().addFrom(CollectionSelector.newBuilder().setCollectionId("docs")).addOrderBy(defaultKeyOrder());
QueryTarget.Builder queryBuilder = QueryTarget.newBuilder().setParent("projects/p/databases/d/documents").setStructuredQuery(structuredQueryBuilder);
Target expected = Target.newBuilder().setQuery(queryBuilder).setTargetId(1).setResumeToken(TestUtil.resumeToken(1000)).build();
assertEquals(expected, actual);
assertEquals(serializer.decodeQueryTarget(serializer.encodeQueryTarget(q.toTarget())), q.toTarget());
}
Aggregations