-
Notifications
You must be signed in to change notification settings - Fork 124
/
Copy pathfirestore_test.dart
92 lines (75 loc) · 2.82 KB
/
firestore_test.dart
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
// Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// Validating the fix related to
// https://github.com/google/googleapis.dart/issues/211
import 'package:googleapis/firestore/v1.dart';
import 'package:test/test.dart';
import 'package:test_integration/shared.dart';
import 'package:test_integration/test_integration.dart';
void main() {
test('firestore NULL_VALUE', () async {
await withClientFromDefaultCredentials([FirestoreApi.datastoreScope],
(client) async {
final firestore = FirestoreApi(client);
final documents = firestore.projects.databases.documents;
final input = Document(
fields: {
'places': Value(nullValue: 'NULL_VALUE'),
},
);
print(prettyJsonEncode(input));
final document = await documents.patch(
input,
'$_documentsPath/googleapis_integration_test/test_document_id',
);
print(prettyJsonEncode(document));
});
});
// google/googleapis.dart#504
test('firestore documents.batchGet', () async {
await withClientFromDefaultCredentials([FirestoreApi.datastoreScope],
(client) async {
final firestore = FirestoreApi(client);
final documents = firestore.projects.databases.documents;
final input = Document(
fields: {
'places': Value(nullValue: 'NULL_VALUE'),
},
);
print(prettyJsonEncode(input));
final document = await documents.createDocument(
input,
_documentsPath,
'googleapis_integration_test',
);
print(prettyJsonEncode(document));
final result = await documents.batchGet(
BatchGetDocumentsRequest(documents: [document.name!]),
_databaseId,
);
print(prettyJsonEncode(result));
});
});
// Regression test for https://github.com/google/googleapis.dart/issues/517
test('runAggregationQuery', () async {
final req = RunAggregationQueryRequest(
structuredAggregationQuery: StructuredAggregationQuery(
aggregations: [Aggregation(alias: 'count', count: Count())],
structuredQuery: StructuredQuery(
from: [CollectionSelector(collectionId: 'foo')],
),
),
);
await withClientFromDefaultCredentials([FirestoreApi.datastoreScope],
(client) async {
final firestore = FirestoreApi(client);
final documents = firestore.projects.databases.documents;
final res = await documents.runAggregationQuery(req, _documentsPath);
expect(res, isA<List>().having((p0) => p0.length, 'length', 1));
});
});
}
String get _databaseId =>
'projects/${readConfig('project_name')}/databases/(default)';
String get _documentsPath => '$_databaseId/documents';