13d95647eSBen Roth 23d95647eSBen Roth#import <XCTest/XCTest.h> 33d95647eSBen Roth 43d95647eSBen Roth#import "EXAppLoader+Tests.h" 53d95647eSBen Roth#import "EXAppLoaderRequestExpectation.h" 63d95647eSBen Roth 73d95647eSBen Roth@interface EXAppLoaderRequestExpectation () <EXAppLoaderDelegate> 83d95647eSBen Roth 93d95647eSBen Roth@property (nonatomic, strong) NSURL *url; 103d95647eSBen Roth@property (nonatomic, strong) XCTestExpectation *expectToSucceed; 113d95647eSBen Roth@property (nonatomic, strong) XCTestExpectation *expectToFail; 12*19a0af8dSWill Schurman@property (nonatomic, strong) EXDevelopmentHomeLoader *appLoader; 133d95647eSBen Roth 143d95647eSBen Roth@end 153d95647eSBen Roth 163d95647eSBen Roth@implementation EXAppLoaderRequestExpectation 173d95647eSBen Roth 183d95647eSBen Roth- (instancetype)initWithUrl:(NSURL *)url expectToSucceed:(XCTestExpectation *)expectToSucceed expectToFail:(XCTestExpectation *)expectToFail 193d95647eSBen Roth{ 203d95647eSBen Roth if (self = [super init]) { 213d95647eSBen Roth _url = url; 223d95647eSBen Roth _expectToSucceed = expectToSucceed; 233d95647eSBen Roth _expectToFail = expectToFail; 24*19a0af8dSWill Schurman _appLoader = [[EXDevelopmentHomeLoader alloc] initWithManifestUrl:_url]; 253d95647eSBen Roth _appLoader.delegate = self; 263d95647eSBen Roth } 273d95647eSBen Roth return self; 283d95647eSBen Roth} 293d95647eSBen Roth 303d95647eSBen Roth- (void)request 313d95647eSBen Roth{ 323d95647eSBen Roth [_appLoader request]; 333d95647eSBen Roth} 343d95647eSBen Roth 353d95647eSBen Roth#pragma mark - AppLoaderDelegate 363d95647eSBen Roth 37*19a0af8dSWill Schurman- (void)appLoader:(EXDevelopmentHomeLoader *)appLoader didLoadOptimisticManifest:(NSDictionary *)manifest 383d95647eSBen Roth{ 393d95647eSBen Roth 403d95647eSBen Roth} 413d95647eSBen Roth 42*19a0af8dSWill Schurman- (void)appLoader:(EXDevelopmentHomeLoader *)appLoader didLoadBundleWithProgress:(EXLoadingProgress *)progress 433d95647eSBen Roth{ 443d95647eSBen Roth 453d95647eSBen Roth} 463d95647eSBen Roth 47*19a0af8dSWill Schurman- (void)appLoader:(EXDevelopmentHomeLoader *)appLoader didFinishLoadingManifest:(NSDictionary *)manifest bundle:(NSData *)data 483d95647eSBen Roth{ 493d95647eSBen Roth [_expectToSucceed fulfill]; 503d95647eSBen Roth} 513d95647eSBen Roth 52*19a0af8dSWill Schurman- (void)appLoader:(EXDevelopmentHomeLoader *)appLoader didFailWithError:(NSError *)error 533d95647eSBen Roth{ 543d95647eSBen Roth [_expectToFail fulfill]; 553d95647eSBen Roth} 563d95647eSBen Roth 57*19a0af8dSWill Schurman- (void)appLoader:(EXDevelopmentHomeLoader *)appLoader didResolveUpdatedBundleWithManifest:(NSDictionary * _Nullable)manifest isFromCache:(BOOL)isFromCache error:(NSError * _Nullable)error 583d95647eSBen Roth{ 593d95647eSBen Roth 603d95647eSBen Roth} 613d95647eSBen Roth 623d95647eSBen Roth@end 63