The deprecated saveWithBlock: method should do it's work on the current thread

This commit is contained in:
Tony Arnold
2012-12-14 12:09:35 +11:00
parent a28d4210ac
commit 2c66056016
2 changed files with 26 additions and 3 deletions

View File

@@ -15,7 +15,7 @@
+ (void) saveWithBlock:(void(^)(NSManagedObjectContext *localContext))block;
{
[self saveWithBlock:block completion:nil];
[self saveWithBlockAndWait:block];
}
+ (void) saveWithBlock:(void(^)(NSManagedObjectContext *localContext))block completion:(MRSaveCompletionHandler)completion;

View File

@@ -161,6 +161,29 @@ describe(@"MagicalRecord", ^{
});
});
context(@"save action", ^{
it(@"should save", ^{
__block NSManagedObjectID *objectId;
[MagicalRecord saveWithBlock:^(NSManagedObjectContext *localContext) {
NSManagedObject *inserted = [SingleEntityWithNoRelationships MR_createInContext:localContext];
[[@([inserted hasChanges]) should] beTrue];
[localContext obtainPermanentIDsForObjects:@[inserted] error:nil];
objectId = [inserted objectID];
}];
[[objectId should] beNonNil];
NSManagedObject *fetchedObject = [[NSManagedObjectContext MR_rootSavingContext] objectWithID:objectId];
[[objectId should] beNonNil];
[[fetchedObject should] beNonNil];
[[@([fetchedObject hasChanges]) should] beFalse];
});
});
context(@"background save action", ^{
it(@"should call completion block", ^{
__block BOOL completionBlockCalled = NO;
@@ -176,7 +199,6 @@ describe(@"MagicalRecord", ^{
});
it(@"should save", ^{
__block BOOL saveSuccessState = NO;
__block NSManagedObjectID *objectId;
__block NSManagedObject *fetchedObject;
@@ -197,8 +219,9 @@ describe(@"MagicalRecord", ^{
[[expectFutureValue(fetchedObject) shouldEventually] beNonNil];
[[expectFutureValue(@([fetchedObject hasChanges])) shouldEventually] beFalse];
});
});
});
});