[Objc] CoreData added test

This commit is contained in:
Mateusz Mackowiak 2016-05-27 15:51:32 +02:00 committed by wing328
parent 5145beea05
commit bfd71c1e29
3 changed files with 75 additions and 26 deletions

View File

@ -18,13 +18,13 @@
{{#vars}}
{{#description}}/* {{{description}}} {{^required}}[optional]{{/required}}
*/{{/description}}
@property (nullable, nonatomic, retain) {{^complexType}}{{{ datatype }}}{{/complexType}}{{#complexType}}{{#isListContainer}}NSSet*{{/isListContainer}}{{^isListContainer}}{{{complexType}}}ManagedObject*{{/isListContainer}}{{/complexType}} {{name}};
@property (nullable, nonatomic, retain) {{^complexType}}{{{ datatype }}}{{/complexType}}{{#complexType}}{{#isListContainer}}NSSet<{{{complexType}}}ManagedObject*>*{{/isListContainer}}{{^isListContainer}}{{{complexType}}}ManagedObject*{{/isListContainer}}{{/complexType}} {{name}};
{{/vars}}
{{#vars}}{{#isListContainer}}{{#complexType}}- (void)add{{vendorExtensions.x-uppercaseName}}Object:({{complexType}}ManagedObject *)value;
- (void)remove{{vendorExtensions.x-uppercaseName}}Object:({{complexType}}ManagedObject *)value;
- (void)add{{vendorExtensions.x-uppercaseName}}:(NSSet *)values;
- (void)remove{{vendorExtensions.x-uppercaseName}}:(NSSet *)values;
- (void)add{{vendorExtensions.x-uppercaseName}}:(NSSet<{{{complexType}}}ManagedObject*> *)values;
- (void)remove{{vendorExtensions.x-uppercaseName}}:(NSSet<{{{complexType}}}ManagedObject*> *)values;
{{/complexType}}{{/isListContainer}}{{/vars}}
@end
{{/model}}

View File

@ -22,14 +22,14 @@
@property (nullable, nonatomic, retain) NSArray<NSString*>* photoUrls;
@property (nullable, nonatomic, retain) NSSet* tags;
@property (nullable, nonatomic, retain) NSSet<SWGTagManagedObject*>* tags;
/* pet status in the store [optional]
*/
@property (nullable, nonatomic, retain) NSString* status;
- (void)addTagsObject:(SWGTagManagedObject *)value;
- (void)removeTagsObject:(SWGTagManagedObject *)value;
- (void)addTags:(NSSet *)values;
- (void)removeTags:(NSSet *)values;
- (void)addTags:(NSSet<SWGTagManagedObject*> *)values;
- (void)removeTags:(NSSet<SWGTagManagedObject*> *)values;
@end

View File

@ -11,10 +11,14 @@
#import "SWGPetManagedObject.h"
#import "SWGPetManagedObjectBuilder.h"
#import "DatabaseHelper.h"
#import "SWGUserManagedObject.h"
#import "SWGUserManagedObjectBuilder.h"
#import "SWGOrderManagedObjectBuilder.h"
@interface BuildersTest : XCTestCase {
SWGPet *pet;
SWGPetManagedObjectBuilder* builder;
SWGUser* user;
SWGOrder *order;
NSManagedObjectContext *context;
}
@ -31,37 +35,82 @@
@"category": @{ @"id": @1, @"name": @"test category" },
@"tags": @[ @{ @"id": @1, @"name": @"test tag" }],
};
pet = [[SWGPet alloc] initWithDictionary:petDict error:nil];
NSError * error;
pet = [[SWGPet alloc] initWithDictionary:petDict error:&error];
XCTAssertNil(error);
NSDictionary *userDict = @{
@"id": @1,
@"email": @"test@test.com",
@"firstName": @"firstName",
@"lastName": @"lastName",
@"password": @"password",
@"username": @"username",
@"phone": @"57676767",
};
error = nil;
user = [[SWGUser alloc] initWithDictionary:userDict error:&error];
XCTAssertNil(error);
NSDictionary *orderDict = @{
@"id": @324,
@"petId": @234,
@"quantity": @12,
@"shipDate": @"1997-07-16T19:20:30+00:00",
@"status": @"status",
@"complete": @1,
};
error = nil;
order = [[SWGOrder alloc] initWithDictionary:orderDict error:&error];
XCTAssertNil(error);
context = [DatabaseHelper createContextWithModelName:@"SWGModel"];
builder = [[SWGPetManagedObjectBuilder alloc] init];
}
- (void)tearDown {
// Put teardown code here. This method is called after the invocation of each test method in the class.
[super tearDown];
}
- (void)testSWGPetExample {
SWGPetManagedObjectBuilder* builder = [[SWGPetManagedObjectBuilder alloc] init];
- (void)testExample {
SWGPetManagedObject * managedObject = [builder SWGPetManagedObjectFromSWGPet:pet context:context];
SWGPet *pet2 = [builder SWGPetFromSWGPetManagedObject:managedObject];
NSError * error;
XCTAssertTrue([context save:&error]);
XCTAssertNil(error);
[context deleteObject:managedObject];
SWGTag * tag = [pet.tags firstObject];
SWGTag * tag2 = [pet2.tags firstObject];
XCTAssertEqualObjects(tag._id, tag2._id);
XCTAssertEqualObjects(tag.name, tag2.name);
XCTAssertTrue([context save:&error]);
XCTAssertNil(error);
XCTAssertEqualObjects(pet.description,pet2.description);
SWGCategory * category = pet.category;
SWGCategory * category2 = pet2.category;
}
XCTAssertEqualObjects(category._id, category2._id);
XCTAssertEqualObjects(category.name, category2.name);
XCTAssertEqualObjects(pet.status,pet2.status);
XCTAssertEqualObjects(pet.photoUrls,pet2.photoUrls);
XCTAssertEqualObjects(pet.name,pet2.name);
XCTAssertEqualObjects(pet._id,pet2._id);
- (void)testSWGUserExample {
SWGUserManagedObjectBuilder * builder = [[SWGUserManagedObjectBuilder alloc] init];
SWGUserManagedObject * managedObject = [builder SWGUserManagedObjectFromSWGUser:user context:context];
SWGUser *user2 = [builder SWGUserFromSWGUserManagedObject:managedObject];
NSError * error;
XCTAssertTrue([context save:&error]);
XCTAssertNil(error);
[context deleteObject:managedObject];
XCTAssertTrue([context save:&error]);
XCTAssertNil(error);
XCTAssertEqualObjects(user.description,user2.description);
}
- (void)testSWGOrderExample {
SWGOrderManagedObjectBuilder * builder = [[SWGOrderManagedObjectBuilder alloc] init];
SWGOrderManagedObject * managedObject = [builder SWGOrderManagedObjectFromSWGOrder:order context:context];
SWGOrder *order2 = [builder SWGOrderFromSWGOrderManagedObject:managedObject];
NSError * error;
XCTAssertTrue([context save:&error]);
XCTAssertNil(error);
[context deleteObject:managedObject];
XCTAssertTrue([context save:&error]);
XCTAssertNil(error);
XCTAssertEqualObjects(order.description,order2.description);
}