blob: 01b6d56a0e66cec7802b6ef880c38e9d6429e98c [file]
//
// BrokerTestsHelpers.m
// Broker
//
// Created by Andrew Smith on 10/6/11.
// Copyright (c) 2011 Andrew B. Smith ( http://github.com/drewsmits ). All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
// of the Software, and to permit persons to whom the Software is furnished to do so,
// subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
#import "BrokerTestsHelpers.h"
@implementation BrokerTestsHelpers
+ (NSManagedObjectID *)createNewEmployee:(NSManagedObjectContext *)context {
NSManagedObject *employee = [NSEntityDescription insertNewObjectForEntityForName:@"Employee"
inManagedObjectContext:context];
[context save:nil];
return employee.objectID;
}
+ (NSManagedObject *)createNewFilledOutEmployee:(NSManagedObjectContext *)context {
NSManagedObject *employee = [NSEntityDescription insertNewObjectForEntityForName:@"Employee"
inManagedObjectContext:context];
[employee setValue:@12345 forKey:@"employeeID"];
[employee setValue:@"Kevin" forKey:@"firstname"];
[employee setValue:@"Bacon" forKey:@"lastname"];
[context save:nil];
return employee;
}
+ (NSManagedObject *)createNewDepartment:(NSManagedObjectContext *)context {
NSManagedObject *dept = [NSEntityDescription insertNewObjectForEntityForName:@"Department"
inManagedObjectContext:context];
[context save:nil];
return dept;
}
+ (NSArray *)findAllEntitiesNamed:(NSString *)entityName inContext:(NSManagedObjectContext *)context {
NSEntityDescription *entityDescription = [NSEntityDescription entityForName:entityName
inManagedObjectContext:context];
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:entityDescription];
NSError *error = nil;
NSArray *array = [context executeFetchRequest:request error:&error];
return array;
}
NSString *PathForTestResource(NSString *resouce) {
NSString *testBundlePath = [[NSBundle bundleForClass:[BrokerTestsHelpers class]] pathForResource:@"TestResources"
ofType:@"bundle"];
return [NSString stringWithFormat:@"%@/%@", testBundlePath, resouce];
}
NSURL *URLForTestResource(NSString *resouce) {
return [NSURL URLWithString:PathForTestResource(resouce)];
}
NSString *UTF8StringFromFile(NSString *fileName) {
NSString *path = PathForTestResource(fileName);
NSError *error;
NSString *string = [[NSString alloc] initWithContentsOfFile:path
encoding:NSUTF8StringEncoding
error:&error];
return string;
}
NSData *DataFromFile(NSString *fileName) {
NSString *path = PathForTestResource(fileName);
NSError *error;
NSData *data = [NSData dataWithContentsOfFile:path
options:NSDataReadingUncached
error:&error];
return data;
}
id JsonFromFile(NSString *fileName) {
NSData *data = DataFromFile(fileName);
id json = [NSJSONSerialization JSONObjectWithData:data
options:NSJSONReadingMutableContainers
error:nil];
return json;
}
@end