| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- /*
- * 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
|