From 6c842b4fdbd185643280a936b31a950c3032b6ed Mon Sep 17 00:00:00 2001 From: Jeff Arena Date: Tue, 2 Apr 2013 11:58:54 -0400 Subject: [PATCH] Add another shared object factory method flavor. --- Code/Testing/RKTestFactory.h | 1 + Code/Testing/RKTestFactory.m | 11 +++++++++++ 2 files changed, 12 insertions(+) diff --git a/Code/Testing/RKTestFactory.h b/Code/Testing/RKTestFactory.h index 27a7af1e..4eb0ed5a 100644 --- a/Code/Testing/RKTestFactory.h +++ b/Code/Testing/RKTestFactory.h @@ -144,6 +144,7 @@ extern NSString * const RKTestFactoryDefaultNamesManagedObjectStore; @return The shared object instance for the factory registered with the given name. */ + (id)sharedObjectFromFactory:(NSString *)factoryName; ++ (id)sharedObjectFromFactory:(NSString *)factoryName properties:(NSDictionary *)properties; /** Inserts a new managed object for the `NSEntityDescription` with the given name into the specified managed object context and sets properties on the instance from the given dictionary. A permanent managed object ID is obtained for the object so that it can be referenced across threads without any further work. diff --git a/Code/Testing/RKTestFactory.m b/Code/Testing/RKTestFactory.m index 076ce485..fc630122 100644 --- a/Code/Testing/RKTestFactory.m +++ b/Code/Testing/RKTestFactory.m @@ -94,12 +94,18 @@ } - (id)sharedObjectFromFactory:(NSString *)factoryName +{ + return [self sharedObjectFromFactory:factoryName properties:nil]; +} + +- (id)sharedObjectFromFactory:(NSString *)factoryName properties:(NSDictionary *)properties { id sharedObject = [self.sharedObjectsByFactoryName objectForKey:factoryName]; if (! sharedObject) { sharedObject = [self objectFromFactory:factoryName properties:nil]; [self.sharedObjectsByFactoryName setObject:sharedObject forKey:factoryName]; } + [sharedObject setValuesForKeysWithDictionary:properties]; return sharedObject; } @@ -171,6 +177,11 @@ return [[RKTestFactory sharedFactory] sharedObjectFromFactory:factoryName]; } ++ (id)sharedObjectFromFactory:(NSString *)factoryName properties:(NSDictionary *)properties +{ + return [[RKTestFactory sharedFactory] sharedObjectFromFactory:factoryName properties:properties]; +} + + (id)insertManagedObjectForEntityForName:(NSString *)entityName inManagedObjectContext:(NSManagedObjectContext *)managedObjectContext withProperties:(NSDictionary *)properties