// // RKTableViewCellMappingsTest.m // RestKit // // Created by Blake Watters on 8/9/11. // Copyright (c) 2009-2012 RestKit. All rights reserved. // #import "RKTestEnvironment.h" #import "RKTableViewCellMappings.h" #import "RKTestUser.h" #import "RKTestAddress.h" @interface RKTestSubclassedUser : RKTestUser @end @implementation RKTestSubclassedUser @end @interface RKTableViewCellMappingsTest : RKTestCase @end @implementation RKTableViewCellMappingsTest - (void)testRaiseAnExceptionWhenAnAttemptIsMadeToRegisterAnExistingMappableClass { RKTableViewCellMappings *cellMappings = [RKTableViewCellMappings cellMappings]; RKTableViewCellMapping *firstMapping = [RKTableViewCellMapping cellMapping]; RKTableViewCellMapping *secondMapping = [RKTableViewCellMapping cellMapping]; [cellMappings setCellMapping:firstMapping forClass:[RKTestUser class]]; NSException *exception = nil; @try { [cellMappings setCellMapping:secondMapping forClass:[RKTestUser class]]; } @catch (NSException *e) { exception = e; } @finally { assertThat(exception, is(notNilValue())); } } - (void)testFindCellMappingsWithAnExactClassMatch { RKTableViewCellMappings *cellMappings = [RKTableViewCellMappings cellMappings]; RKTableViewCellMapping *firstMapping = [RKTableViewCellMapping cellMapping]; RKTableViewCellMapping *secondMapping = [RKTableViewCellMapping cellMapping]; [cellMappings setCellMapping:firstMapping forClass:[RKTestSubclassedUser class]]; [cellMappings setCellMapping:secondMapping forClass:[RKTestUser class]]; assertThat([cellMappings cellMappingForObject:[RKTestUser new]], is(equalTo(secondMapping))); } - (void)testFindCellMappingsWithASubclassMatch { RKTableViewCellMappings *cellMappings = [RKTableViewCellMappings cellMappings]; RKTableViewCellMapping *firstMapping = [RKTableViewCellMapping cellMapping]; RKTableViewCellMapping *secondMapping = [RKTableViewCellMapping cellMapping]; [cellMappings setCellMapping:firstMapping forClass:[RKTestUser class]]; [cellMappings setCellMapping:secondMapping forClass:[RKTestSubclassedUser class]]; assertThat([cellMappings cellMappingForObject:[RKTestSubclassedUser new]], is(equalTo(secondMapping))); } - (void)testReturnTheCellMappingForAnObjectInstance { RKTableViewCellMappings *cellMappings = [RKTableViewCellMappings cellMappings]; RKTableViewCellMapping *mapping = [RKTableViewCellMapping cellMapping]; [cellMappings setCellMapping:mapping forClass:[RKTestUser class]]; assertThat([cellMappings cellMappingForObject:[RKTestUser new]], is(equalTo(mapping))); } @end