Skip to content

Commit 871e4c2

Browse files
committed
More tests for failures of localId resolutions
1 parent 9a7920f commit 871e4c2

File tree

1 file changed

+50
-0
lines changed

1 file changed

+50
-0
lines changed

Parse/Tests/Unit/URLSessionCommandRunnerTests.m

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
#import "PFTestCase.h"
2020
#import "PFObject.h"
2121
#import "PFObjectPrivate.h"
22+
#import "PFFieldOperation.h"
2223
#import "PFURLSession.h"
2324
#import "PFURLSessionCommandRunner_Private.h"
2425

@@ -279,4 +280,53 @@ - (void)testLocalIdResolutionFailureWithNoLocalId {
279280
XCTAssertEqualObjects(error.localizedDescription, @"Tried to resolve a localId for an object with no localId.");
280281
}
281282

283+
- (void)testLocalIdResolutionWithArray {
284+
PFObject *object = [PFObject objectWithClassName:@"Yolo"];
285+
id command = [PFRESTCommand commandWithHTTPPath:@"" httpMethod:@"" parameters:@{@"values":@[@(1), object]} sessionToken:nil error:nil];
286+
NSError *error;
287+
[command resolveLocalIds:&error];
288+
XCTAssertNotNil(error);
289+
XCTAssertEqualObjects(error.domain, PFParseErrorDomain);
290+
XCTAssertEqualObjects(error.localizedDescription, @"Tried to resolve a localId for an object with no localId.");
291+
}
292+
293+
- (void)testLocalIdResolutionWithArrayAndMutlipleErrors {
294+
PFObject *objectWithLocalId = [PFObject objectWithoutDataWithClassName:@"Yolo" localId:@"localId"];
295+
PFObject *object = [PFObject objectWithClassName:@"Yolo"];
296+
id command = [PFRESTCommand commandWithHTTPPath:@"" httpMethod:@"" parameters:@{@"values":@[objectWithLocalId, object]} sessionToken:nil error:nil];
297+
NSError *error;
298+
[command resolveLocalIds:&error];
299+
XCTAssertNotNil(error);
300+
XCTAssertEqualObjects(error.domain, PFParseErrorDomain);
301+
XCTAssertEqualObjects(error.localizedDescription, @"Tried to save an object with a pointer to a new, unsaved object.");
302+
}
303+
304+
- (void)testLocalIdResolutionWithOperations {
305+
NSError *error;
306+
PFObject *objectWithLocalId = [PFObject objectWithoutDataWithClassName:@"Yolo" localId:@"localId"];
307+
PFObject *object = [PFObject objectWithClassName:@"Yolo"];
308+
PFAddOperation *addOperation = [PFAddOperation addWithObjects:@[objectWithLocalId, object]];
309+
id command = [PFRESTCommand commandWithHTTPPath:@"" httpMethod:@"" parameters:@{@"values":addOperation} sessionToken:nil error:nil];
310+
[command resolveLocalIds:&error];
311+
XCTAssertNotNil(error);
312+
XCTAssertEqualObjects(error.domain, PFParseErrorDomain);
313+
XCTAssertEqualObjects(error.localizedDescription, @"Tried to save an object with a pointer to a new, unsaved object.");
314+
315+
error = nil;
316+
317+
PFAddUniqueOperation *addUniqueOperation = [PFAddUniqueOperation addUniqueWithObjects:@[objectWithLocalId, object]];
318+
command = [PFRESTCommand commandWithHTTPPath:@"" httpMethod:@"" parameters:@{@"values":addUniqueOperation} sessionToken:nil error:nil];
319+
[command resolveLocalIds:&error];
320+
XCTAssertNotNil(error);
321+
XCTAssertEqualObjects(error.domain, PFParseErrorDomain);
322+
XCTAssertEqualObjects(error.localizedDescription, @"Tried to save an object with a pointer to a new, unsaved object.");
323+
324+
PFRemoveOperation *removeOperation = [PFRemoveOperation removeWithObjects:@[objectWithLocalId, object]];
325+
command = [PFRESTCommand commandWithHTTPPath:@"" httpMethod:@"" parameters:@{@"values":removeOperation} sessionToken:nil error:nil];
326+
[command resolveLocalIds:&error];
327+
XCTAssertNotNil(error);
328+
XCTAssertEqualObjects(error.domain, PFParseErrorDomain);
329+
XCTAssertEqualObjects(error.localizedDescription, @"Tried to save an object with a pointer to a new, unsaved object.");
330+
}
331+
282332
@end

0 commit comments

Comments
 (0)