Files
RestKit/Tests/Logic/Network/RKRequestDescriptorTest.m

71 lines
2.6 KiB
Objective-C

//
// RKRequestDescriptorTest.m
// RestKit
//
// Created by Blake Watters on 10/14/12.
// Copyright (c) 2012 RestKit. All rights reserved.
//
#import "RKTestEnvironment.h"
#import "RKDynamicMapping.h"
@interface RKRequestDescriptorTest : RKTestCase
@end
@implementation RKRequestDescriptorTest
- (void)testValidArgumentsInitializeWithoutRaisingException
{
RKObjectMapping *invalidMapping = [RKObjectMapping requestMapping];
NSException *exception = nil;
@try {
[RKRequestDescriptor requestDescriptorWithMapping:invalidMapping objectClass:[RKRequestDescriptorTest class] rootKeyPath:nil];
}
@catch (NSException *caughtExpection) {
exception = caughtExpection;
}
@finally {
expect(exception).to.beNil();
}
}
- (void)testInvalidArgumentExceptionIsRaisedIfInitializedWithNonRequestMapping
{
RKObjectMapping *invalidMapping = [RKObjectMapping mappingForClass:[RKRequestDescriptorTest class]];
NSException *exception = nil;
@try {
[RKRequestDescriptor requestDescriptorWithMapping:invalidMapping objectClass:[RKRequestDescriptorTest class] rootKeyPath:nil];
}
@catch (NSException *caughtExpection) {
exception = caughtExpection;
}
@finally {
expect(exception).notTo.beNil();
expect(exception.name).to.equal(NSInvalidArgumentException);
expect(exception.reason).to.equal(@"`RKRequestDescriptor` objects must be initialized with a mapping whose target class is `NSMutableDictionary`, got 'RKRequestDescriptorTest' (see `[RKObjectMapping requestMapping]`)");
}
}
- (void)testInvalidArgumentExceptionIsRaisedInInitializedWithDynamicMappingContainingNonRequestMappings
{
RKObjectMapping *invalidMapping = [RKObjectMapping mappingForClass:[RKRequestDescriptorTest class]];
RKDynamicMapping *dynamicMapping = [RKDynamicMapping new];
[dynamicMapping setObjectMapping:invalidMapping whenValueOfKeyPath:@"whatever" isEqualTo:@"whatever"];
NSException *exception = nil;
@try {
[RKRequestDescriptor requestDescriptorWithMapping:dynamicMapping objectClass:[RKRequestDescriptorTest class] rootKeyPath:nil];
}
@catch (NSException *caughtExpection) {
exception = caughtExpection;
}
@finally {
expect(exception).notTo.beNil();
expect(exception.name).to.equal(NSInvalidArgumentException);
expect(exception.reason).to.equal(@"`RKRequestDescriptor` objects may only be initialized with `RKDynamicMapping` objects containing `RKObjectMapping` objects whose target class is `NSMutableDictionary`, got 'RKRequestDescriptorTest' (see `[RKObjectMapping requestMapping]`)");
}
}
@end