|
11 | 11 | #import "ASVideoNode.h" |
12 | 12 |
|
13 | 13 | @interface ASVideoNodeTests : XCTestCase |
| 14 | +@end |
14 | 15 |
|
| 16 | +@interface ASVideoNode () |
| 17 | +@property (atomic, readonly) AVPlayerItem *currentItem; |
| 18 | +@property (atomic) ASInterfaceState interfaceState; |
15 | 19 | @end |
16 | 20 |
|
17 | 21 | @implementation ASVideoNodeTests |
18 | 22 |
|
19 | | -- (void)testVideoNodeReplacesAVPlayerWhenNewURLIsSet { |
| 23 | +- (void)testVideoNodeReplacesAVPlayerItemWhenNewURLIsSet { |
20 | 24 | ASVideoNode *videoNode = [[ASVideoNode alloc] init]; |
| 25 | + videoNode.interfaceState = ASInterfaceStateFetchData; |
21 | 26 | videoNode.asset = [AVAsset assetWithURL:[NSURL URLWithString:@"firstURL"]]; |
22 | | - [videoNode fetchData]; |
23 | | - AVPlayer *player = ((AVPlayerLayer *)videoNode.layer).player; |
| 27 | + |
| 28 | + AVPlayerItem *item = [videoNode currentItem]; |
24 | 29 |
|
25 | 30 | videoNode.asset = [AVAsset assetWithURL:[NSURL URLWithString:@"secondURL"]]; |
26 | | - [videoNode fetchData]; |
27 | | - AVPlayer *secondPlayer = ((AVPlayerLayer *)videoNode.layer).player; |
28 | | - |
29 | | - XCTAssertNotEqualObjects(player, secondPlayer); |
| 31 | + AVPlayerItem *secondItem = [videoNode currentItem]; |
| 32 | + |
| 33 | + XCTAssertNotEqualObjects(item, secondItem); |
30 | 34 | } |
31 | 35 |
|
32 | | -- (void)testVideoNodeDoesNotMakeNewPlayerWhenURLIsTheSame { |
| 36 | +- (void)testVideoNodeDoesNotReplaceAVPlayerItemWhenSameURLIsSet { |
33 | 37 | ASVideoNode *videoNode = [[ASVideoNode alloc] init]; |
| 38 | + videoNode.interfaceState = ASInterfaceStateFetchData; |
| 39 | + |
34 | 40 | videoNode.asset = [AVAsset assetWithURL:[NSURL URLWithString:@"firstURL"]]; |
35 | | - [videoNode fetchData]; |
| 41 | + AVPlayerItem *item = [videoNode currentItem]; |
36 | 42 |
|
37 | | - AVPlayer *firstPlayer = ((AVPlayerLayer *)videoNode.layer).player; |
38 | 43 | videoNode.asset = [AVAsset assetWithURL:[NSURL URLWithString:@"firstURL"]]; |
39 | | - |
40 | | - AVPlayer *secondPlayer = ((AVPlayerLayer *)videoNode.layer).player; |
| 44 | + AVPlayerItem *secondItem = [videoNode currentItem]; |
41 | 45 |
|
42 | | - XCTAssertEqualObjects(firstPlayer, secondPlayer); |
| 46 | + XCTAssertEqualObjects(item, secondItem); |
43 | 47 | } |
44 | 48 |
|
45 | 49 | @end |
0 commit comments