27
27
#import " Firestore/Example/Tests/Util/FSTHelpers.h"
28
28
29
29
#include " Firestore/core/src/firebase/firestore/model/database_id.h"
30
+ #include " Firestore/core/src/firebase/firestore/model/field_value.h"
30
31
#include " Firestore/core/src/firebase/firestore/util/string_apple.h"
31
32
#include " Firestore/core/test/firebase/firestore/testutil/testutil.h"
32
33
33
34
namespace testutil = firebase::firestore::testutil;
34
35
namespace util = firebase::firestore::util;
35
36
using firebase::firestore::model::DatabaseId;
37
+ using firebase::firestore::model::FieldValue;
36
38
37
39
/* * Helper to wrap the values in a set of equality groups using FSTTestFieldValue(). */
38
40
NSArray *FSTWrapGroups (NSArray *groups) {
@@ -91,6 +93,7 @@ - (void)testWrapIntegers {
91
93
FSTFieldValue *wrapped = FSTTestFieldValue (value);
92
94
XCTAssertEqualObjects ([wrapped class ], [FSTIntegerValue class ]);
93
95
XCTAssertEqualObjects ([wrapped value ], @([value longLongValue ]));
96
+ XCTAssertEqual (wrapped.type , FieldValue::Type::Integer);
94
97
}
95
98
}
96
99
@@ -105,6 +108,7 @@ - (void)testWrapsDoubles {
105
108
FSTFieldValue *wrapped = FSTTestFieldValue (value);
106
109
XCTAssertEqualObjects ([wrapped class ], [FSTDoubleValue class ]);
107
110
XCTAssertEqualObjects ([wrapped value ], value);
111
+ XCTAssertEqual (wrapped.type , FieldValue::Type::Double);
108
112
}
109
113
}
110
114
@@ -113,6 +117,7 @@ - (void)testWrapsNilAndNSNull {
113
117
XCTAssertEqual (FSTTestFieldValue (nil ), nullValue);
114
118
XCTAssertEqual (FSTTestFieldValue ([NSNull null ]), nullValue);
115
119
XCTAssertEqual ([nullValue value ], [NSNull null ]);
120
+ XCTAssertEqual (nullValue.type , FieldValue::Type::Null);
116
121
}
117
122
118
123
- (void )testWrapsBooleans {
@@ -121,6 +126,7 @@ - (void)testWrapsBooleans {
121
126
FSTFieldValue *wrapped = FSTTestFieldValue (value);
122
127
XCTAssertEqualObjects ([wrapped class ], [FSTBooleanValue class ]);
123
128
XCTAssertEqualObjects ([wrapped value ], value);
129
+ XCTAssertEqual (wrapped.type , FieldValue::Type::Boolean);
124
130
}
125
131
126
132
// Unsigned chars could conceivably be handled consistently with signed chars but on arm64 these
@@ -219,6 +225,7 @@ - (void)testWrapStrings {
219
225
FSTFieldValue *wrapped = FSTTestFieldValue (value);
220
226
XCTAssertEqualObjects ([wrapped class ], [FSTStringValue class ]);
221
227
XCTAssertEqualObjects ([wrapped value ], value);
228
+ XCTAssertEqual (wrapped.type , FieldValue::Type::String);
222
229
}
223
230
}
224
231
@@ -229,6 +236,7 @@ - (void)testWrapDates {
229
236
XCTAssertEqualObjects ([wrapped class ], [FSTTimestampValue class ]);
230
237
XCTAssertEqualObjects ([[wrapped value ] class ], [FIRTimestamp class ]);
231
238
XCTAssertEqualObjects ([wrapped value ], [FIRTimestamp timestampWithDate: value]);
239
+ XCTAssertEqual (wrapped.type , FieldValue::Type::Timestamp);
232
240
}
233
241
}
234
242
@@ -239,6 +247,7 @@ - (void)testWrapGeoPoints {
239
247
FSTFieldValue *wrapped = FSTTestFieldValue (value);
240
248
XCTAssertEqualObjects ([wrapped class ], [FSTGeoPointValue class ]);
241
249
XCTAssertEqualObjects ([wrapped value ], value);
250
+ XCTAssertEqual (wrapped.type , FieldValue::Type::GeoPoint);
242
251
}
243
252
}
244
253
@@ -248,6 +257,7 @@ - (void)testWrapBlobs {
248
257
FSTFieldValue *wrapped = FSTTestFieldValue (value);
249
258
XCTAssertEqualObjects ([wrapped class ], [FSTBlobValue class ]);
250
259
XCTAssertEqualObjects ([wrapped value ], value);
260
+ XCTAssertEqual (wrapped.type , FieldValue::Type::Blob);
251
261
}
252
262
}
253
263
@@ -262,11 +272,13 @@ - (void)testWrapResourceNames {
262
272
XCTAssertEqualObjects ([wrapped value ], [FSTDocumentKey keyWithDocumentKey: value.key]);
263
273
XCTAssertTrue (*((FSTReferenceValue *)wrapped).databaseID ==
264
274
*(const DatabaseId *)(value.databaseID ));
275
+ XCTAssertEqual (wrapped.type , FieldValue::Type::Reference);
265
276
}
266
277
}
267
278
268
279
- (void )testWrapsEmptyObjects {
269
280
XCTAssertEqualObjects (FSTTestFieldValue (@{}), [FSTObjectValue objectValue ]);
281
+ XCTAssertEqual (FSTTestFieldValue (@{}).type , FieldValue::Type::Object);
270
282
}
271
283
272
284
- (void )testWrapsSimpleObjects {
@@ -279,6 +291,7 @@ - (void)testWrapsSimpleObjects {
279
291
@" d" : [FSTNullValue nullValue ]
280
292
}];
281
293
XCTAssertEqualObjects (actual, expected);
294
+ XCTAssertEqual (actual.type , FieldValue::Type::Object);
282
295
}
283
296
284
297
- (void )testWrapsNestedObjects {
@@ -291,6 +304,7 @@ - (void)testWrapsNestedObjects {
291
304
}]
292
305
}];
293
306
XCTAssertEqualObjects (actual, expected);
307
+ XCTAssertEqual (actual.type , FieldValue::Type::Object);
294
308
}
295
309
296
310
- (void )testExtractsFields {
@@ -414,6 +428,7 @@ - (void)testArrays {
414
428
415
429
FSTArrayValue *actual = (FSTArrayValue *)FSTTestFieldValue (@[ @" value" , @YES ]);
416
430
XCTAssertEqualObjects (actual, expected);
431
+ XCTAssertEqual (actual.type , FieldValue::Type::Array);
417
432
}
418
433
419
434
- (void )testValueEquality {
0 commit comments