@java.lang.Override public Builder newBuilderForType() { return newBuilder(); }
private Value blobValue(byte[] b) { return Value.newBuilder().setBytesValue(ByteString.copyFrom(b)).build(); }
private Value intValue(long l) { return Value.newBuilder().setIntegerValue(l).build(); }
public static Value string(String value) { return Value.newBuilder().setStringValue(value).build(); }
private Value stringValue(String s) { return Value.newBuilder().setStringValue(s).build(); }
private Value booleanValue(boolean b) { return Value.newBuilder().setBooleanValue(b).build(); }
private Value nullValue() { return Value.newBuilder().setNullValue(NullValue.NULL_VALUE).build(); }
private Value doubleValue(double d) { return Value.newBuilder().setDoubleValue(d).build(); }
private Value referenceValue(String r) { return Value.newBuilder().setReferenceValue(r).build(); }
public static Value object(String key, Value value) { Value.Builder result = Value.newBuilder(); result.getMapValueBuilder().putFields(key, value); return result.build(); }
@Test public void serializeDocumentReference() throws Exception { doReturn(SINGLE_WRITE_COMMIT_RESPONSE) .when(firestoreMock) .sendRequest( commitCapture.capture(), Matchers.<UnaryCallable<CommitRequest, CommitResponse>>any()); documentReference.set(map("docRef", (Object) documentReference)).get(); Map<String, Value> documentReferenceFields = new HashMap<>(); documentReferenceFields.put( "docRef", Value.newBuilder().setReferenceValue(DOCUMENT_NAME).build()); assertCommitEquals(commit(set(documentReferenceFields)), commitCapture.getValue()); }
@Test public void deleteField() throws Exception { doReturn(SINGLE_WRITE_COMMIT_RESPONSE) .when(firestoreMock) .sendRequest( commitCapture.capture(), Matchers.<UnaryCallable<CommitRequest, CommitResponse>>any()); documentReference.update("foo", "bar", "bar.foo", FieldValue.delete()).get(); Value.Builder emptyMap = Value.newBuilder(); emptyMap.getMapValueBuilder(); Map<String, Value> fieldMap = new HashMap<>(); fieldMap.put("foo", string("bar")); CommitRequest expectedCommit = commit(update(fieldMap, Arrays.asList("foo", "bar.foo"))); assertCommitEquals(expectedCommit, commitCapture.getValue()); }
@Test public void updateNestedMap() throws Exception { doReturn(SINGLE_WRITE_COMMIT_RESPONSE) .when(firestoreMock) .sendRequest( commitCapture.capture(), Matchers.<UnaryCallable<CommitRequest, CommitResponse>>any()); documentReference.update("a.b", "foo", "a.c", FieldValue.delete()).get(); Map<String, Value> nestedUpdate = new HashMap<>(); Value.Builder valueProto = Value.newBuilder(); valueProto .getMapValueBuilder() .putFields("b", Value.newBuilder().setStringValue("foo").build()); nestedUpdate.put("a", valueProto.build()); CommitRequest expectedCommit = commit(update(nestedUpdate, Arrays.asList("a.b", "a.c"))); assertCommitEquals(expectedCommit, commitCapture.getValue()); }
private Value arrayValue(Value... values) { return Value.newBuilder() .setArrayValue(ArrayValue.newBuilder().addAllValues(Arrays.asList(values)).build()) .build(); }
@Test public void setNestedMapWithMerge() throws Exception { doReturn(SINGLE_WRITE_COMMIT_RESPONSE) .when(firestoreMock) .sendRequest( commitCapture.capture(), Matchers.<UnaryCallable<CommitRequest, CommitResponse>>any()); documentReference.set(NESTED_CLASS_OBJECT, SetOptions.mergeFields("first", "second")).get(); Map<String, Value> nestedUpdate = new HashMap<>(); Value.Builder nestedProto = Value.newBuilder(); nestedProto.getMapValueBuilder().putAllFields(SINGLE_FIELD_PROTO); nestedUpdate.put("first", nestedProto.build()); nestedProto.getMapValueBuilder().putAllFields(ALL_SUPPORTED_TYPES_PROTO); nestedUpdate.put("second", nestedProto.build()); CommitRequest expectedCommit = commit(set(nestedUpdate, Arrays.asList("first", "second"))); assertCommitEquals(expectedCommit, commitCapture.getValue()); }
@Test public void deserializeDocumentReference() throws Exception { doAnswer( getAllResponse( map("docRef", Value.newBuilder().setReferenceValue(DOCUMENT_NAME).build()))) .when(firestoreMock) .streamRequest( getAllCapture.capture(), streamObserverCapture.capture(), Matchers.<ServerStreamingCallable>any()); DocumentSnapshot snapshot = documentReference.get().get(); assertEquals(documentReference, snapshot.getData().get("docRef")); assertEquals(documentReference, snapshot.getReference()); }
@Test public void withDocumentIdFilter() throws Exception { doAnswer(queryResponse()) .when(firestoreMock) .streamRequest( runQuery.capture(), streamObserverCapture.capture(), Matchers.<ServerStreamingCallable>any()); query.whereEqualTo(FieldPath.documentId(), "doc").get().get(); RunQueryRequest expectedRequest = query( filter( Operator.EQUAL, "__name__", Value.newBuilder().setReferenceValue(DOCUMENT_NAME).build())); assertEquals(expectedRequest, runQuery.getValue()); }
private Value timestampValue(long seconds, int nanos) { return Value.newBuilder() .setTimestampValue(Timestamp.newBuilder().setSeconds(seconds).setNanos(nanos).build()) .build(); }
private Value geoPointValue(double latitude, double longitude) { return Value.newBuilder() .setGeoPointValue(LatLng.newBuilder().setLatitude(latitude).setLongitude(longitude).build()) .build(); }
private Value objectValue(String key, Value value, Object... keysAndValues) { MapValue.Builder mapBuilder = MapValue.newBuilder(); mapBuilder.putFields(key, value); for (int i = 0; i < keysAndValues.length; i += 2) { mapBuilder.putFields((String) keysAndValues[i], (Value) keysAndValues[i + 1]); } return Value.newBuilder().setMapValue(mapBuilder.build()).build(); } }