Files
app-check/AppCheckCore/Tests/Unit/Core/GACAppCheckTimerTests.m
T
Andrew Heard 2d2d0e6228 Renamed AppCheck to AppCheckCore (#11581)
Renamed the App Check (Lite) SDK to App Check Core.
2023-07-21 10:17:20 -04:00

75 lines
2.5 KiB
Objective-C

/*
* Copyright 2021 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#import <XCTest/XCTest.h>
#import "AppCheckCore/Sources/Core/TokenRefresh/GACAppCheckTimer.h"
@interface GACAppCheckTimerTests : XCTestCase
@end
@implementation GACAppCheckTimerTests
- (void)testTimerProvider {
dispatch_queue_t queue =
dispatch_queue_create("GACAppCheckTimerTests.testInit", DISPATCH_QUEUE_SERIAL);
NSTimeInterval fireTimerIn = 1;
NSDate *startTime = [NSDate date];
NSDate *fireDate = [NSDate dateWithTimeIntervalSinceNow:fireTimerIn];
GACTimerProvider timerProvider = [GACAppCheckTimer timerProvider];
XCTestExpectation *timerExpectation = [self expectationWithDescription:@"timer"];
GACAppCheckTimer *timer = timerProvider(fireDate, queue, ^{
NSTimeInterval actuallyFiredIn = [[NSDate date] timeIntervalSinceDate:startTime];
// Check that fired at proper time (allowing some timer drift).
XCTAssertLessThan(ABS(actuallyFiredIn - fireTimerIn), 0.5);
[timerExpectation fulfill];
});
XCTAssertNotNil(timer);
[self waitForExpectations:@[ timerExpectation ] timeout:fireTimerIn + 1];
}
- (void)testInit {
dispatch_queue_t queue =
dispatch_queue_create("GACAppCheckTimerTests.testInit", DISPATCH_QUEUE_SERIAL);
NSTimeInterval fireTimerIn = 2;
NSDate *startTime = [NSDate date];
NSDate *fireDate = [NSDate dateWithTimeIntervalSinceNow:fireTimerIn];
XCTestExpectation *timerExpectation = [self expectationWithDescription:@"timer"];
GACAppCheckTimer *timer = [[GACAppCheckTimer alloc]
initWithFireDate:fireDate
dispatchQueue:queue
block:^{
NSTimeInterval actuallyFiredIn = [[NSDate date] timeIntervalSinceDate:startTime];
// Check that fired at proper time (allowing some timer drift).
XCTAssertLessThan(ABS(actuallyFiredIn - fireTimerIn), 0.5);
[timerExpectation fulfill];
}];
XCTAssertNotNil(timer);
[self waitForExpectations:@[ timerExpectation ] timeout:fireTimerIn + 1];
}
@end