From c7777ffc8dc01927c8f4339a4397e72c72e3c76b Mon Sep 17 00:00:00 2001 From: Jeff Arena Date: Fri, 20 Jan 2012 11:32:12 -0500 Subject: [PATCH] Add coverage for sending synchronous requests with both object loader flavors --- Specs/CoreData/RKManagedObjectLoaderSpec.m | 16 ++++++++++++++++ Specs/ObjectMapping/RKObjectLoaderSpec.m | 14 ++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/Specs/CoreData/RKManagedObjectLoaderSpec.m b/Specs/CoreData/RKManagedObjectLoaderSpec.m index a6807926..7ed7ad11 100644 --- a/Specs/CoreData/RKManagedObjectLoaderSpec.m +++ b/Specs/CoreData/RKManagedObjectLoaderSpec.m @@ -245,5 +245,21 @@ assertThatBool([doNotDeleteMe isDeleted], is(equalToBool(NO))); } +- (void)testShouldNotAssertDuringObjectMappingOnSynchronousRequest { + RKManagedObjectStore* store = RKSpecNewManagedObjectStore(); + RKObjectManager* objectManager = RKSpecNewObjectManager(); + RKSpecStubNetworkAvailability(YES); + objectManager.objectStore = store; + + RKObjectMapping* mapping = [RKManagedObjectMapping mappingForClass:[RKHuman class]]; + RKManagedObjectLoader* objectLoader = [objectManager loaderWithResourcePath:@"/humans/1"]; + objectLoader.objectMapping = mapping; + RKResponse *response = [objectLoader sendSynchronously]; + + NSArray* humans = [RKHuman findAll]; + assertThatUnsignedInteger([humans count], is(equalToInt(1))); + assertThatInteger(response.statusCode, is(equalToInt(200))); +} + @end diff --git a/Specs/ObjectMapping/RKObjectLoaderSpec.m b/Specs/ObjectMapping/RKObjectLoaderSpec.m index 88ca534a..f6fba36a 100644 --- a/Specs/ObjectMapping/RKObjectLoaderSpec.m +++ b/Specs/ObjectMapping/RKObjectLoaderSpec.m @@ -731,4 +731,18 @@ assertThat(blockError, is(equalTo(expectedError))); } +- (void)testShouldNotAssertDuringObjectMappingOnSynchronousRequest { + RKObjectManager* objectManager = RKSpecNewObjectManager(); + + RKObjectMapping* userMapping = [RKObjectMapping mappingForClass:[RKSpecComplexUser class]]; + userMapping.rootKeyPath = @"data.STUser"; + [userMapping mapAttributes:@"firstname", nil]; + RKObjectLoader* objectLoader = [objectManager loaderWithResourcePath:@"/humans/1"]; + objectLoader.objectMapping = userMapping; + [objectLoader sendSynchronously]; + RKResponse *response = [objectLoader sendSynchronously]; + + assertThatInteger(response.statusCode, is(equalToInt(200))); +} + @end