CloudKitMockXCTest.h [plain text]
#if OCTAGON
#import <CloudKit/CloudKit.h>
#import <CloudKit/CloudKit_Private.h>
#import <XCTest/XCTest.h>
#import <Foundation/Foundation.h>
#import <SystemConfiguration/SystemConfiguration.h>
#import "keychain/ckks/CKKSCKAccountStateTracker.h"
#import "keychain/ckks/tests/MockCloudKit.h"
NS_ASSUME_NONNULL_BEGIN
@class CKKSKey;
@class CKKSCKRecordHolder;
@class CKKSKeychainView;
@class CKKSViewManager;
@class FakeCKZone;
@class CKKSLockStateTracker;
@class CKKSReachabilityTracker;
@interface CloudKitMockXCTest : XCTestCase
@property CKRecordZoneID* testZoneID;
@property (nullable) id mockDatabase;
@property (nullable) id mockDatabaseExceptionCatcher;
@property (nullable) id mockContainer;
@property (nullable) id mockContainerExpectations;
@property (nullable) id mockFakeCKModifyRecordZonesOperation;
@property (nullable) id mockFakeCKModifySubscriptionsOperation;
@property (nullable) id mockFakeCKFetchRecordZoneChangesOperation;
@property (nullable) id mockFakeCKFetchRecordsOperation;
@property (nullable) id mockFakeCKQueryOperation;
@property (nullable) id mockAccountStateTracker;
@property CKAccountStatus accountStatus;
@property BOOL supportsDeviceToDeviceEncryption;
@property BOOL iCloudHasValidCredentials;
@property SOSAccountStatus* circleStatus;
@property (readonly) NSString* ckDeviceID;
@property (readonly) CKKSCKAccountStateTracker* accountStateTracker;
@property NSString* apsEnvironment;
@property NSString* circlePeerID;
@property bool aksLockState; @property (readonly) CKKSLockStateTracker* lockStateTracker;
@property (nullable) id mockLockStateTracker;
@property SCNetworkReachabilityFlags reachabilityFlags; @property (readonly) CKKSReachabilityTracker *reachabilityTracker;
@property (nullable) id mockReachabilityTracker;
@property (nullable) NSMutableDictionary<CKRecordZoneID*, FakeCKZone*>* zones;
@property (nullable) NSOperationQueue* operationQueue;
@property (nullable) NSBlockOperation* ckaccountHoldOperation;
@property (nullable) NSBlockOperation* ckModifyHoldOperation;
@property (nullable) NSBlockOperation* ckFetchHoldOperation;
@property bool silentFetchesAllowed;
@property bool silentZoneDeletesAllowed;
@property (nullable) id mockCKKSViewManager;
@property (nullable) CKKSViewManager* injectedManager;
- (CKKSKey*)fakeTLK:(CKRecordZoneID*)zoneID;
- (void)expectCKModifyItemRecords:(NSUInteger)expectedNumberOfRecords
currentKeyPointerRecords:(NSUInteger)expectedCurrentKeyRecords
zoneID:(CKRecordZoneID*)zoneID;
- (void)expectCKModifyItemRecords:(NSUInteger)expectedNumberOfRecords
currentKeyPointerRecords:(NSUInteger)expectedCurrentKeyRecords
zoneID:(CKRecordZoneID*)zoneID
checkItem:(BOOL (^_Nullable)(CKRecord*))checkItem;
- (void)expectCKModifyItemRecords:(NSUInteger)expectedNumberOfModifiedRecords
deletedRecords:(NSUInteger)expectedNumberOfDeletedRecords
currentKeyPointerRecords:(NSUInteger)expectedCurrentKeyRecords
zoneID:(CKRecordZoneID*)zoneID
checkItem:(BOOL (^_Nullable)(CKRecord*))checkItem;
- (void)expectCKDeleteItemRecords:(NSUInteger)expectedNumberOfRecords zoneID:(CKRecordZoneID*)zoneID;
- (void)expectCKModifyKeyRecords:(NSUInteger)expectedNumberOfRecords
currentKeyPointerRecords:(NSUInteger)expectedCurrentKeyRecords
tlkShareRecords:(NSUInteger)expectedTLKShareRecords
zoneID:(CKRecordZoneID*)zoneID;
- (void)expectCKModifyKeyRecords:(NSUInteger)expectedNumberOfRecords
currentKeyPointerRecords:(NSUInteger)expectedCurrentKeyRecords
tlkShareRecords:(NSUInteger)expectedTLKShareRecords
zoneID:(CKRecordZoneID*)zoneID
checkModifiedRecord:(BOOL (^_Nullable)(CKRecord*))checkModifiedRecord;
- (void)expectCKModifyRecords:(NSDictionary<NSString*, NSNumber*>*)expectedRecordTypeCounts
deletedRecordTypeCounts:(NSDictionary<NSString*, NSNumber*>* _Nullable)expectedDeletedRecordTypeCounts
zoneID:(CKRecordZoneID*)zoneID
checkModifiedRecord:(BOOL (^_Nullable)(CKRecord*))checkRecord
runAfterModification:(void (^_Nullable)(void))afterModification;
- (void)failNextCKAtomicModifyItemRecordsUpdateFailure:(CKRecordZoneID*)zoneID;
- (void)failNextCKAtomicModifyItemRecordsUpdateFailure:(CKRecordZoneID*)zoneID
blockAfterReject:(void (^_Nullable)(void))blockAfterReject;
- (void)failNextCKAtomicModifyItemRecordsUpdateFailure:(CKRecordZoneID*)zoneID
blockAfterReject:(void (^_Nullable)(void))blockAfterReject
withError:(NSError* _Nullable)error;
- (void)expectCKAtomicModifyItemRecordsUpdateFailure:(CKRecordZoneID*)zoneID;
- (void)failNextZoneCreation:(CKRecordZoneID*)zoneID;
- (void)failNextZoneCreationSilently:(CKRecordZoneID*)zoneID;
- (void)failNextZoneSubscription:(CKRecordZoneID*)zoneID;
- (void)failNextZoneSubscription:(CKRecordZoneID*)zoneID withError:(NSError*)error;
- (void)expectCKFetch;
- (void)expectCKFetchAndRunBeforeFinished:(void (^_Nullable)(void))blockAfterFetch;
- (void)expectCKFetchByRecordID;
- (void)expectCKFetchByQuery;
- (void)waitForCKModifications;
- (void)startCKAccountStatusMock;
- (void)startCKKSSubsystem;
- (void)holdCloudKitModifications;
- (void)releaseCloudKitModificationHold;
- (void)holdCloudKitFetches;
- (void)releaseCloudKitFetchHold;
- (NSError*)ckInternalServerExtensionError:(NSInteger)code description:(NSString*)desc;
- (void)rejectWrite:(CKModifyRecordsOperation*)op failedRecords:(NSMutableDictionary<CKRecordID*, NSError*>*)failedRecords;
@end
NS_ASSUME_NONNULL_END
#endif