Files
RestKit/Tests/Logic/CoreData/RKConnectionDescriptionTest.m

57 lines
2.5 KiB
Objective-C

//
// RKConnectionDescriptionTest.m
// RestKit
//
// Created by Blake Watters on 11/25/12.
// Copyright (c) 2012 RestKit. All rights reserved.
//
#import "RKTestEnvironment.h"
#import "RKConnectionDescription.h"
@interface RKConnectionDescriptionTest : RKTestCase
@property (nonatomic, strong) NSRelationshipDescription *relationship;
@end
@implementation RKConnectionDescriptionTest
- (void)setUp
{
[RKTestFactory setUp];
RKManagedObjectStore *managedObjectStore = [RKTestFactory managedObjectStore];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Human" inManagedObjectContext:managedObjectStore.persistentStoreManagedObjectContext];
self.relationship = [entity relationshipsByName][@"cats"];
}
- (void)tearDown
{
[RKTestFactory tearDown];
}
- (void)testInitWithNilRelationshipRaisesError
{
expect(^{ RKConnectionDescription __unused *connection = [[RKConnectionDescription alloc] initWithRelationship:nil attributes:@{ @"catID": @"catID" }]; }).to.raiseWithReason(NSInternalInconsistencyException, @"Invalid parameter not satisfying: relationship");
}
- (void)testInitWithNilAttributesRaisesError
{
expect(^{ RKConnectionDescription __unused *connection = [[RKConnectionDescription alloc] initWithRelationship:self.relationship attributes:nil]; }).to.raiseWithReason(NSInternalInconsistencyException, @"Invalid parameter not satisfying: attributes");
}
- (void)testInitWithEmptyAttributesDictionaryRaisesError
{
expect(^{ RKConnectionDescription __unused *connection = [[RKConnectionDescription alloc] initWithRelationship:self.relationship attributes:@{}]; }).to.raiseWithReason(NSInternalInconsistencyException, @"Cannot connect a relationship without at least one pair of attributes describing the connection");
}
- (void)testInitWithAttributeThatDoesNotExistInEntityRaisesError
{
expect(^{ RKConnectionDescription __unused *connection = [[RKConnectionDescription alloc] initWithRelationship:self.relationship attributes:@{ @"invalidID": @"catID" }]; }).to.raiseWithReason(NSInternalInconsistencyException, @"Cannot connect relationship: invalid attributes given for source entity 'Human': invalidID");
}
- (void)testInitWithAttributeThatDoesNotExistInDestinationEntityRaisesError
{
expect(^{ RKConnectionDescription __unused *connection = [[RKConnectionDescription alloc] initWithRelationship:self.relationship attributes:@{ @"favoriteCatID": @"invalid" }]; }).to.raiseWithReason(NSInternalInconsistencyException, @"Cannot connect relationship: invalid attributes given for destination entity 'Cat': invalid");
}
@end