This repository has been archived on 2022-03-12. You can view files and clone it, but cannot push or open issues or pull requests.
reValuate/node_modules/expo-updates/ios/Tests/EXUpdatesSelectionPolicyNewestTests.m
2021-04-02 02:24:13 +03:00

76 lines
3.7 KiB
Objective-C

// Copyright (c) 2020 650 Industries, Inc. All rights reserved.
#import <XCTest/XCTest.h>
#import <EXUpdates/EXUpdatesConfig.h>
#import <EXUpdates/EXUpdatesDatabase.h>
#import <EXUpdates/EXUpdatesSelectionPolicyNewest.h>
#import <EXUpdates/EXUpdatesUpdate.h>
@interface EXUpdatesSelectionPolicyNewestTests : XCTestCase
@property (nonatomic, strong) EXUpdatesUpdate *update1;
@property (nonatomic, strong) EXUpdatesUpdate *update2;
@property (nonatomic, strong) EXUpdatesUpdate *update3;
@property (nonatomic, strong) EXUpdatesUpdate *update4;
@property (nonatomic, strong) EXUpdatesUpdate *update5;
@property (nonatomic, strong) id<EXUpdatesSelectionPolicy> selectionPolicy;
@end
@implementation EXUpdatesSelectionPolicyNewestTests
- (void)setUp
{
[super setUp];
NSString *runtimeVersion = @"1.0";
NSString *scopeKey = @"dummyScope";
EXUpdatesConfig *config = [EXUpdatesConfig new];
EXUpdatesDatabase *database = [EXUpdatesDatabase new];
_update1 = [EXUpdatesUpdate updateWithId:NSUUID.UUID scopeKey:scopeKey commitTime:[NSDate dateWithTimeIntervalSince1970:1608667851] runtimeVersion:runtimeVersion metadata:nil status:EXUpdatesUpdateStatusReady keep:YES config:config database:database];
_update2 = [EXUpdatesUpdate updateWithId:NSUUID.UUID scopeKey:scopeKey commitTime:[NSDate dateWithTimeIntervalSince1970:1608667852] runtimeVersion:runtimeVersion metadata:nil status:EXUpdatesUpdateStatusReady keep:YES config:config database:database];
_update3 = [EXUpdatesUpdate updateWithId:NSUUID.UUID scopeKey:scopeKey commitTime:[NSDate dateWithTimeIntervalSince1970:1608667853] runtimeVersion:runtimeVersion metadata:nil status:EXUpdatesUpdateStatusReady keep:YES config:config database:database];
_update4 = [EXUpdatesUpdate updateWithId:NSUUID.UUID scopeKey:scopeKey commitTime:[NSDate dateWithTimeIntervalSince1970:1608667854] runtimeVersion:runtimeVersion metadata:nil status:EXUpdatesUpdateStatusReady keep:YES config:config database:database];
_update5 = [EXUpdatesUpdate updateWithId:NSUUID.UUID scopeKey:scopeKey commitTime:[NSDate dateWithTimeIntervalSince1970:1608667855] runtimeVersion:runtimeVersion metadata:nil status:EXUpdatesUpdateStatusReady keep:YES config:config database:database];
_selectionPolicy = [[EXUpdatesSelectionPolicyNewest alloc] initWithRuntimeVersion:runtimeVersion];
}
- (void)tearDown
{
[super tearDown];
}
- (void)testUpdatesToDelete_onlyOneUpdate
{
NSArray<EXUpdatesUpdate *>* updatesToDelete = [_selectionPolicy updatesToDeleteWithLaunchedUpdate:_update1 updates:@[_update1]];
XCTAssert(0 == updatesToDelete.count);
}
- (void)testUpdatesToDelete_olderUpdates
{
NSArray<EXUpdatesUpdate *>* updatesToDelete = [_selectionPolicy updatesToDeleteWithLaunchedUpdate:_update3 updates:@[_update1, _update2, _update3]];
XCTAssert(1 == updatesToDelete.count);
XCTAssert([updatesToDelete containsObject:_update1]);
XCTAssert(![updatesToDelete containsObject:_update2]);
XCTAssert(![updatesToDelete containsObject:_update3]);
}
- (void)testUpdatesToDelete_newerUpdates
{
NSArray<EXUpdatesUpdate *>* updatesToDelete = [_selectionPolicy updatesToDeleteWithLaunchedUpdate:_update1 updates:@[_update1, _update2]];
XCTAssert(0 == updatesToDelete.count);
}
- (void)testUpdatesToDelete_olderAndNewerUpdates
{
NSArray<EXUpdatesUpdate *>* updatesToDelete = [_selectionPolicy updatesToDeleteWithLaunchedUpdate:_update4 updates:@[_update1, _update2, _update3, _update4, _update5]];
XCTAssert(2 == updatesToDelete.count);
XCTAssert([updatesToDelete containsObject:_update1]);
XCTAssert([updatesToDelete containsObject:_update2]);
XCTAssert(![updatesToDelete containsObject:_update3]);
XCTAssert(![updatesToDelete containsObject:_update4]);
XCTAssert(![updatesToDelete containsObject:_update5]);
}
@end