Files
RestKit/Tests/Logic/ObjectMapping/RKObjectMappingTest.m

109 lines
4.5 KiB
Objective-C

//
// RKObjectMappingTest.m
// RestKit
//
// Created by Blake Watters on 6/8/12.
// Copyright (c) 2012 RestKit. All rights reserved.
//
#import "RKTestEnvironment.h"
@interface RKObjectMappingTest : RKTestCase
@end
@implementation RKObjectMappingTest
- (void)testThatTwoMappingsWithTheSameAttributeMappingsButDifferentObjectClassesAreNotConsideredEqual
{
RKObjectMapping *mapping1 = [RKObjectMapping mappingForClass:[NSString class]];
RKObjectMapping *mapping2 = [RKObjectMapping mappingForClass:[NSNumber class]];
assertThatBool([mapping1 isEqualToMapping:mapping2], is(equalToBool(NO)));
}
- (void)testThatTwoMappingsForNilObjectClassAreConsideredEqual
{
RKObjectMapping *mapping1 = [RKObjectMapping mappingForClass:nil];
RKObjectMapping *mapping2 = [RKObjectMapping mappingForClass:nil];
assertThatBool([mapping1 isEqualToMapping:mapping2], is(equalToBool(YES)));
}
- (void)testThatTwoMappingsAreNotConsideredEqualIfOneHasNilObjectClass
{
RKObjectMapping *mapping1 = [RKObjectMapping mappingForClass:nil];
RKObjectMapping *mapping2 = [RKObjectMapping mappingForClass:[NSString class]];
assertThatBool([mapping1 isEqualToMapping:mapping2], is(equalToBool(NO)));
}
- (void)testThatRelationshipMappingsWithTheSameObjectClassAndNoAttributesAreConsideredEqual
{
RKObjectMapping *mapping1 = [RKObjectMapping mappingForClass:[NSString class]];
RKObjectMapping *mapping2 = [RKObjectMapping mappingForClass:[NSString class]];
assertThatBool([mapping1 isEqualToMapping:mapping2], is(equalToBool(YES)));
}
- (void)testThatTwoMappingsForTheSameObjectClassContainingIdenticalAttributeMappingsAreConsideredEqual
{
RKObjectMapping *mapping1 = [RKObjectMapping mappingForClass:[NSString class]];
[mapping1 mapKeyPath:@"this" toAttribute:@"that"];
RKObjectMapping *mapping2 = [RKObjectMapping mappingForClass:[NSString class]];
[mapping2 mapKeyPath:@"this" toAttribute:@"that"];
assertThatBool([mapping1 isEqualToMapping:mapping2], is(equalToBool(YES)));
}
- (void)testThatTwoMappingsForTheSameObjectClassContainingDifferingAttributeMappingsAreNotConsideredEqual
{
RKObjectMapping *mapping1 = [RKObjectMapping mappingForClass:[NSString class]];
[mapping1 mapKeyPath:@"this" toAttribute:@"that"];
RKObjectMapping *mapping2 = [RKObjectMapping mappingForClass:[NSString class]];
[mapping2 mapKeyPath:@"different" toAttribute:@"that"];
assertThatBool([mapping1 isEqualToMapping:mapping2], is(equalToBool(NO)));
}
- (void)testThatTwoMappingsWithEqualRelationshipMappingsAreConsideredEqual
{
RKObjectMapping *relationshipMapping1 = [RKObjectMapping mappingForClass:[NSSet class]];
RKObjectMapping *relationshipMapping2 = [RKObjectMapping mappingForClass:[NSSet class]];
RKObjectMapping *mapping1 = [RKObjectMapping mappingForClass:[NSString class]];
[mapping1 mapKeyPath:@"this" toRelationship:@"that" withMapping:relationshipMapping1];
RKObjectMapping *mapping2 = [RKObjectMapping mappingForClass:[NSString class]];
[mapping2 mapKeyPath:@"this" toRelationship:@"that" withMapping:relationshipMapping2];
assertThatBool([mapping1 isEqualToMapping:mapping2], is(equalToBool(YES)));
}
- (void)testThatTwoMappingsWithDifferingRelationshipMappingClassesAreNotConsideredEqual
{
RKObjectMapping *relationshipMapping1 = [RKObjectMapping mappingForClass:[NSSet class]];
RKObjectMapping *relationshipMapping2 = [RKObjectMapping mappingForClass:[NSNumber class]];
RKObjectMapping *mapping1 = [RKObjectMapping mappingForClass:[NSString class]];
[mapping1 mapKeyPath:@"this" toRelationship:@"that" withMapping:relationshipMapping1];
RKObjectMapping *mapping2 = [RKObjectMapping mappingForClass:[NSString class]];
[mapping2 mapKeyPath:@"this" toRelationship:@"that" withMapping:relationshipMapping2];
assertThatBool([mapping1 isEqualToMapping:mapping2], is(equalToBool(NO)));
}
- (void)testThatTwoMappingsWithDifferingRelationshipMappingKeyPathsAreNotConsideredEqual
{
RKObjectMapping *relationshipMapping1 = [RKObjectMapping mappingForClass:[NSSet class]];
RKObjectMapping *relationshipMapping2 = [RKObjectMapping mappingForClass:[NSSet class]];
RKObjectMapping *mapping1 = [RKObjectMapping mappingForClass:[NSString class]];
[mapping1 mapKeyPath:@"this" toRelationship:@"that" withMapping:relationshipMapping1];
RKObjectMapping *mapping2 = [RKObjectMapping mappingForClass:[NSString class]];
[mapping2 mapKeyPath:@"this" toRelationship:@"different" withMapping:relationshipMapping2];
assertThatBool([mapping1 isEqualToMapping:mapping2], is(equalToBool(NO)));
}
@end