mirror of
https://github.com/firebase/firebase-ios-sdk
synced 2026-11-09 22:36:01 +05:45
103 lines
3.3 KiB
Plaintext
103 lines
3.3 KiB
Plaintext
/*
|
|
* Copyright 2022 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 <FirebaseFirestore/FIRTransactionOptions.h>
|
|
|
|
#import <XCTest/XCTest.h>
|
|
|
|
NS_ASSUME_NONNULL_BEGIN
|
|
|
|
@interface FIRTransactionOptionsTests : XCTestCase
|
|
@end
|
|
|
|
@implementation FIRTransactionOptionsTests
|
|
|
|
- (void)testDefaults {
|
|
FIRTransactionOptions* options = [[FIRTransactionOptions alloc] init];
|
|
XCTAssertEqual(options.maxAttempts, 5);
|
|
}
|
|
|
|
- (void)testSetMaxAttempts {
|
|
FIRTransactionOptions* options = [[FIRTransactionOptions alloc] init];
|
|
options.maxAttempts = 10;
|
|
XCTAssertEqual(options.maxAttempts, 10);
|
|
options.maxAttempts = 99;
|
|
XCTAssertEqual(options.maxAttempts, 99);
|
|
}
|
|
|
|
- (void)testSetMaxAttemptsThrowsOnInvalidValue {
|
|
FIRTransactionOptions* options = [[FIRTransactionOptions alloc] init];
|
|
XCTAssertThrows(options.maxAttempts = 0);
|
|
XCTAssertThrows(options.maxAttempts = -1);
|
|
XCTAssertThrows(options.maxAttempts = INT32_MIN);
|
|
XCTAssertThrows(options.maxAttempts = INT32_MAX + 1);
|
|
}
|
|
|
|
- (void)testHash {
|
|
XCTAssertEqual([[[FIRTransactionOptions alloc] init] hash],
|
|
[[[FIRTransactionOptions alloc] init] hash]);
|
|
|
|
FIRTransactionOptions* options1a = [[FIRTransactionOptions alloc] init];
|
|
options1a.maxAttempts = 99;
|
|
FIRTransactionOptions* options1b = [[FIRTransactionOptions alloc] init];
|
|
options1b.maxAttempts = 99;
|
|
FIRTransactionOptions* options2a = [[FIRTransactionOptions alloc] init];
|
|
options2a.maxAttempts = 11;
|
|
FIRTransactionOptions* options2b = [[FIRTransactionOptions alloc] init];
|
|
options2b.maxAttempts = 11;
|
|
|
|
XCTAssertEqual([options1a hash], [options1b hash]);
|
|
XCTAssertEqual([options2a hash], [options2b hash]);
|
|
XCTAssertNotEqual([options1a hash], [options2a hash]);
|
|
}
|
|
|
|
- (void)testIsEqual {
|
|
FIRTransactionOptions* options1a = [[FIRTransactionOptions alloc] init];
|
|
options1a.maxAttempts = 99;
|
|
FIRTransactionOptions* options1b = [[FIRTransactionOptions alloc] init];
|
|
options1b.maxAttempts = 99;
|
|
FIRTransactionOptions* options2a = [[FIRTransactionOptions alloc] init];
|
|
options2a.maxAttempts = 11;
|
|
FIRTransactionOptions* options2b = [[FIRTransactionOptions alloc] init];
|
|
options2b.maxAttempts = 11;
|
|
|
|
XCTAssertTrue([options1a isEqual:options1a]);
|
|
|
|
XCTAssertTrue([options1a isEqual:options1b]);
|
|
XCTAssertTrue([options2a isEqual:options2b]);
|
|
|
|
XCTAssertFalse([options1a isEqual:options2a]);
|
|
|
|
XCTAssertFalse([options1a isEqual:@"definitely not equal"]);
|
|
}
|
|
|
|
- (void)testCopy {
|
|
FIRTransactionOptions* options1 = [[FIRTransactionOptions alloc] init];
|
|
options1.maxAttempts = 99;
|
|
FIRTransactionOptions* options2 = [options1 copy];
|
|
XCTAssertEqual(options2.maxAttempts, 99);
|
|
|
|
// Verify that the copy is independent of the copied object.
|
|
options1.maxAttempts = 55;
|
|
XCTAssertEqual(options2.maxAttempts, 99);
|
|
options2.maxAttempts = 22;
|
|
XCTAssertEqual(options1.maxAttempts, 55);
|
|
}
|
|
|
|
@end
|
|
|
|
NS_ASSUME_NONNULL_END
|