// // RKTestFixture.h // RestKit // // Created by Blake Watters on 2/1/12. // Copyright (c) 2009-2012 RestKit. All rights reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // #import #if TARGET_OS_IPHONE #import #endif /** Provides a static method API for conveniently accessing fixture data contained within a designated NSBundle. Useful when writing unit tests that leverage fixture data for testing parsing and object mapping operations. */ @interface RKTestFixture : NSObject /** Returns the NSBundle object designated as the source location for unit testing fixture data. @return The NSBundle object designated as the source location for unit testing fixture data or nil if none has been configured. */ + (NSBundle *)fixtureBundle; /** Designates the specified NSBundle object as the source location for unit testing fixture data. @param bundle The new fixture NSBundle object. */ + (void)setFixtureBundle:(NSBundle *)bundle; /** Returns the full path to the specified fixture file on within the fixture bundle. @param fixtureName The name of the fixture file. @return The full path to the specified fixture file or nil if it cannot be located. */ + (NSString *)pathForFixture:(NSString *)fixtureName; #if TARGET_OS_IPHONE /** Creates and returns an image object by loading the image data from the fixture identified by the specified file name. @param fixtureName The name of the fixture file. @return A new image object for the specified fixture, or nil if the method could not initialize the image from the specified file. */ + (UIImage *)imageWithContentsOfFixture:(NSString *)fixtureName; #endif /** Creates and returns a string object by reading data from the fixture identified by the specified file name using UTF-8 encoding. @param fixtureName The name of the fixture file. @return A string created by reading data from the specified fixture file using the NSUTF8StringEncoding. */ + (NSString *)stringWithContentsOfFixture:(NSString *)fixtureName; /** Creates and returns a data object by reading every byte from the fixture identified by the specified file name. @param fixtureName The name of the resource file. @return A data object by reading every byte from the fixture file. */ + (NSData *)dataWithContentsOfFixture:(NSString *)fixtureName; /** Returns the MIME Type for the fixture identified by the specified name. @param fixtureName The name of the fixture file. @return The MIME Type for the resource file or nil if the file could not be located. */ + (NSString *)MIMETypeForFixture:(NSString *)fixtureName; /** Creates and returns an object representation of the data from the fixture identified by the specified file name by reading the data as a string and parsing it using a parser appropriate for the MIME Type of the file. @param fixtureName The name of the resource file. @return A new image object for the specified file, or nil if the method could not initialize the image from the specified file. @see RKParserRegistry */ + (id)parsedObjectWithContentsOfFixture:(NSString *)fixtureName; @end