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