|
14 | 14 | * limitations under the License. |
15 | 15 | */ |
16 | 16 |
|
17 | | -#import <FirebaseFirestore/FIRBSONBinaryData.h> |
18 | 17 | #import <FirebaseFirestore/FIRBSONObjectId.h> |
19 | 18 | #import <FirebaseFirestore/FIRBSONTimestamp.h> |
| 19 | +#import <FirebaseFirestore/FIRBlob.h> |
20 | 20 | #import <FirebaseFirestore/FIRDecimal128Value.h> |
21 | 21 | #import <FirebaseFirestore/FIRFieldValue.h> |
22 | 22 | #import <FirebaseFirestore/FIRInt32Value.h> |
@@ -138,27 +138,54 @@ - (void)testCreateAndReadAndCompareBsonTimestamp { |
138 | 138 | XCTAssertFalse([val1 isEqual:val4]); |
139 | 139 | } |
140 | 140 |
|
141 | | -- (void)testCreateAndReadAndCompareBsonBinaryData { |
| 141 | +- (void)testCreateAndReadAndCompareBlob { |
142 | 142 | uint8_t byteArray1[] = {0x01, 0x02, 0x03, 0x04, 0x05}; |
143 | 143 | uint8_t byteArray2[] = {0x01, 0x02, 0x03, 0x04, 0x99}; |
144 | 144 | NSData *data1 = [NSData dataWithBytes:byteArray1 length:sizeof(byteArray1)]; |
145 | 145 | NSData *data2 = [NSData dataWithBytes:byteArray1 length:sizeof(byteArray1)]; |
146 | 146 | NSData *data3 = [NSData dataWithBytes:byteArray2 length:sizeof(byteArray2)]; |
147 | 147 |
|
148 | | - FIRBSONBinaryData *val1 = [[FIRBSONBinaryData alloc] initWithSubtype:128 data:data1]; |
149 | | - FIRBSONBinaryData *val2 = [[FIRBSONBinaryData alloc] initWithSubtype:128 data:data2]; |
150 | | - FIRBSONBinaryData *val3 = [[FIRBSONBinaryData alloc] initWithSubtype:128 data:data3]; |
151 | | - FIRBSONBinaryData *val4 = [[FIRBSONBinaryData alloc] initWithSubtype:1 data:data1]; |
| 148 | + // Standard Blobs |
| 149 | + FIRBlob *std1 = [FIRBlob blobWithBytes:data1]; |
| 150 | + FIRBlob *std2 = [FIRBlob blobWithBytes:data2]; |
| 151 | + FIRBlob *std3 = [FIRBlob blobWithBytes:data3]; |
152 | 152 |
|
153 | | - // Test reading the values back. |
154 | | - XCTAssertEqual(128, val1.subtype); |
155 | | - XCTAssertEqual(data1, val1.data); |
156 | | - XCTAssertTrue([val1.data isEqualToData:data1]); |
| 153 | + // BSON Blobs |
| 154 | + FIRBlob *bson1 = [FIRBlob blobWithBSONBinary:data1 subtype:128]; |
| 155 | + FIRBlob *bson2 = [FIRBlob blobWithBSONBinary:data2 subtype:128]; |
| 156 | + FIRBlob *bson3 = [FIRBlob blobWithBSONBinary:data3 subtype:128]; |
| 157 | + FIRBlob *bson4 = [FIRBlob blobWithBSONBinary:data1 subtype:1]; |
| 158 | + |
| 159 | + // Test reading properties back |
| 160 | + XCTAssertEqual(0, std1.subtype); |
| 161 | + XCTAssertFalse(std1.isBSON); |
| 162 | + XCTAssertEqual(data1, std1.bytes); |
| 163 | + |
| 164 | + XCTAssertEqual(128, bson1.subtype); |
| 165 | + XCTAssertTrue(bson1.isBSON); |
| 166 | + XCTAssertEqual(data1, bson1.bytes); |
157 | 167 |
|
158 | 168 | // Test isEqual |
159 | | - XCTAssertTrue([val1 isEqual:val2]); |
160 | | - XCTAssertFalse([val1 isEqual:val3]); |
161 | | - XCTAssertFalse([val1 isEqual:val4]); |
| 169 | + XCTAssertTrue([std1 isEqual:std2]); |
| 170 | + XCTAssertFalse([std1 isEqual:std3]); |
| 171 | + XCTAssertFalse([std1 isEqual:bson1]); |
| 172 | + |
| 173 | + XCTAssertTrue([bson1 isEqual:bson2]); |
| 174 | + XCTAssertFalse([bson1 isEqual:bson3]); |
| 175 | + XCTAssertFalse([bson1 isEqual:bson4]); |
| 176 | + |
| 177 | + // Test compare |
| 178 | + XCTAssertEqual(NSOrderedSame, [std1 compare:std2]); |
| 179 | + XCTAssertEqual(NSOrderedAscending, [std1 compare:std3]); |
| 180 | + XCTAssertEqual(NSOrderedDescending, [std3 compare:std1]); |
| 181 | + |
| 182 | + XCTAssertEqual(NSOrderedSame, [bson1 compare:bson2]); |
| 183 | + XCTAssertEqual(NSOrderedAscending, [bson1 compare:bson3]); |
| 184 | + |
| 185 | + // Standard blob (subtype 0) compares less than BSON blob (subtype 1) |
| 186 | + XCTAssertEqual(NSOrderedAscending, [std1 compare:bson4]); |
| 187 | + // BSON blob (subtype 1) compares less than BSON blob (subtype 128) |
| 188 | + XCTAssertEqual(NSOrderedAscending, [bson4 compare:bson1]); |
162 | 189 | } |
163 | 190 |
|
164 | 191 | - (void)testFieldValueMinKey { |
@@ -205,14 +232,14 @@ - (void)testFieldValueBsonTimestamp { |
205 | 232 | XCTAssertEqual(100U, val2.increment); |
206 | 233 | } |
207 | 234 |
|
208 | | -- (void)testFieldValueBsonBinaryData { |
| 235 | +- (void)testFieldValueBlob { |
209 | 236 | uint8_t byteArray[] = {0x01, 0x02, 0x03, 0x04, 0x05}; |
210 | 237 | NSData *data = [NSData dataWithBytes:byteArray length:sizeof(byteArray)]; |
211 | | - FIRBSONBinaryData *val1 = [[FIRBSONBinaryData alloc] initWithSubtype:128 data:data]; |
212 | | - FIRBSONBinaryData *val2 = [[FIRBSONBinaryData alloc] initWithSubtype:128 data:data]; |
| 238 | + FIRBlob *val1 = [FIRBlob blobWithBSONBinary:data subtype:128]; |
| 239 | + FIRBlob *val2 = [FIRBlob blobWithBSONBinary:data subtype:128]; |
213 | 240 | XCTAssertTrue([val1 isEqual:val2]); |
214 | 241 | XCTAssertEqual(128, val2.subtype); |
215 | | - XCTAssertEqual(data, val2.data); |
| 242 | + XCTAssertEqual(data, val2.bytes); |
216 | 243 | } |
217 | 244 |
|
218 | 245 | @end |
|
0 commit comments