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