1 2#import <XCTest/XCTest.h> 3 4#import "EXAppLoader+Tests.h" 5#import "EXAppLoaderRequestExpectation.h" 6 7@interface EXAppLoaderRequestExpectation () <EXAppLoaderDelegate> 8 9@property (nonatomic, strong) NSURL *url; 10@property (nonatomic, strong) XCTestExpectation *expectToSucceed; 11@property (nonatomic, strong) XCTestExpectation *expectToFail; 12@property (nonatomic, strong) EXDevelopmentHomeLoader *appLoader; 13 14@end 15 16@implementation EXAppLoaderRequestExpectation 17 18- (instancetype)initWithUrl:(NSURL *)url expectToSucceed:(XCTestExpectation *)expectToSucceed expectToFail:(XCTestExpectation *)expectToFail 19{ 20 if (self = [super init]) { 21 _url = url; 22 _expectToSucceed = expectToSucceed; 23 _expectToFail = expectToFail; 24 _appLoader = [[EXDevelopmentHomeLoader alloc] initWithManifestUrl:_url]; 25 _appLoader.delegate = self; 26 } 27 return self; 28} 29 30- (void)request 31{ 32 [_appLoader request]; 33} 34 35#pragma mark - AppLoaderDelegate 36 37- (void)appLoader:(EXDevelopmentHomeLoader *)appLoader didLoadOptimisticManifest:(NSDictionary *)manifest 38{ 39 40} 41 42- (void)appLoader:(EXDevelopmentHomeLoader *)appLoader didLoadBundleWithProgress:(EXLoadingProgress *)progress 43{ 44 45} 46 47- (void)appLoader:(EXDevelopmentHomeLoader *)appLoader didFinishLoadingManifest:(NSDictionary *)manifest bundle:(NSData *)data 48{ 49 [_expectToSucceed fulfill]; 50} 51 52- (void)appLoader:(EXDevelopmentHomeLoader *)appLoader didFailWithError:(NSError *)error 53{ 54 [_expectToFail fulfill]; 55} 56 57- (void)appLoader:(EXDevelopmentHomeLoader *)appLoader didResolveUpdatedBundleWithManifest:(NSDictionary * _Nullable)manifest isFromCache:(BOOL)isFromCache error:(NSError * _Nullable)error 58{ 59 60} 61 62@end 63