@@ -8,9 +8,7 @@ import 'parse_query_test.mocks.dart';
8
8
@GenerateMocks ([ParseClient ])
9
9
void main () {
10
10
group ('queryBuilder' , () {
11
- test ('whereRelatedTo' , () async {
12
- final MockParseClient client = MockParseClient ();
13
-
11
+ setUp (() async {
14
12
await Parse ().initialize (
15
13
'appId' ,
16
14
'https://test.parse.com' ,
@@ -24,6 +22,10 @@ void main() {
24
22
// to prevent automatic detection
25
23
appVersion: 'someAppVersion' ,
26
24
);
25
+ });
26
+
27
+ test ('whereRelatedTo' , () async {
28
+ final MockParseClient client = MockParseClient ();
27
29
28
30
final QueryBuilder <ParseObject > queryBuilder =
29
31
QueryBuilder <ParseObject >(ParseObject ('_User' , client: client));
@@ -62,5 +64,48 @@ void main() {
62
64
'where={"\$ relatedTo":{"object":{"__type":"Pointer","className":"Post","objectId":"8TOXdXf3tz"},"key":"likes"}}' );
63
65
expect (result.query, expectedQuery.query);
64
66
});
67
+
68
+ test ('wherePolygonContains' , () async {
69
+ final MockParseClient client = MockParseClient ();
70
+
71
+ final QueryBuilder <ParseObject > queryBuilder =
72
+ QueryBuilder <ParseObject >(ParseObject ('TEST_SCHEMA' , client: client));
73
+ double latitude = 84.17724609375 ;
74
+ double longitude = - 53.69670647530323 ;
75
+ ParseGeoPoint point =
76
+ ParseGeoPoint (latitude: latitude, longitude: longitude);
77
+ queryBuilder.wherePolygonContains ("geometry" , point);
78
+
79
+ when (client.get (
80
+ any,
81
+ options: anyNamed ("options" ),
82
+ onReceiveProgress: anyNamed ("onReceiveProgress" ),
83
+ )).thenAnswer ((_) async => ParseNetworkResponse (
84
+ statusCode: 200 ,
85
+ data:
86
+ '{"results":[{"objectId":"eT9muOxBTK","createdAt":"2022-07-25T13:46:06.092Z","updatedAt":"2022-07-25T13:46:23.586Z","geometry": {"type": "Polygon","coordinates": [[[84.17724609375,-53.69670647530323],[83.1884765625,-54.61025498157913],[84.814453125,-55.14120964449505],[85.67138671875,-54.40614309031968],[84.17724609375,-53.69670647530323]]]}}]}' ));
87
+
88
+ ParseResponse response = await queryBuilder.query ();
89
+
90
+ expect (response.results? .first, isA <ParseObject >());
91
+
92
+ ParseObject parseObject = response.results? .first;
93
+
94
+ expect (parseObject.objectId, "eT9muOxBTK" );
95
+ expect (parseObject.containsKey ("geometry" ), true );
96
+
97
+ final Uri result = Uri .parse (verify (client.get (
98
+ captureAny,
99
+ options: anyNamed ("options" ),
100
+ onReceiveProgress: anyNamed ("onReceiveProgress" ),
101
+ )).captured.single);
102
+
103
+ expect (result.path, '/classes/TEST_SCHEMA' );
104
+
105
+ final Uri expectedQuery = Uri (
106
+ query:
107
+ 'where={"geometry":{"\$ geoIntersects":{"\$ point":{"__type":"GeoPoint","latitude":$latitude ,"longitude":$longitude }}}}' );
108
+ expect (result.query, expectedQuery.query);
109
+ });
65
110
});
66
111
}
0 commit comments