22
22
#import " MTRErrorTestUtils.h"
23
23
#import " MTRFabricInfoChecker.h"
24
24
#import " MTRTestKeys.h"
25
+ #import " MTRTestPerControllerStorage.h"
25
26
#import " MTRTestResetCommissioneeHelper.h"
26
- #import " MTRTestStorage.h"
27
27
28
28
static const uint16_t kPairingTimeoutInSeconds = 10 ;
29
29
static const uint16_t kTimeoutInSeconds = 3 ;
@@ -69,73 +69,6 @@ - (void)controller:(MTRDeviceController *)controller commissioningComplete:(NSEr
69
69
70
70
@end
71
71
72
- @interface MTRPerControllerStorageTestsStorageDelegate : NSObject <MTRDeviceControllerStorageDelegate>
73
- @property (nonatomic , readonly ) NSMutableDictionary <NSString *, NSData *> * storage;
74
- @property (nonatomic , readonly ) NSUUID * controllerID;
75
- @end
76
-
77
- @implementation MTRPerControllerStorageTestsStorageDelegate
78
-
79
- - (instancetype )initWithControllerID : (NSUUID *)controllerID
80
- {
81
- if (!(self = [super init ])) {
82
- return nil ;
83
- }
84
-
85
- _storage = [[NSMutableDictionary alloc ] init ];
86
- _controllerID = controllerID;
87
- return self;
88
- }
89
-
90
- - (nullable id <NSSecureCoding >)controller : (MTRDeviceController *)controller
91
- valueForKey : (NSString *)key
92
- securityLevel : (MTRStorageSecurityLevel)securityLevel
93
- sharingType : (MTRStorageSharingType)sharingType
94
- {
95
- XCTAssertEqualObjects (_controllerID, controller.uniqueIdentifier );
96
-
97
- __auto_type * data = self.storage [key];
98
- if (data == nil ) {
99
- return data;
100
- }
101
-
102
- NSError * error;
103
- id value = [NSKeyedUnarchiver unarchivedObjectOfClasses: MTRDeviceControllerStorageClasses () fromData: data error: &error];
104
- XCTAssertNil (error);
105
- XCTAssertNotNil (data);
106
-
107
- return value;
108
- }
109
-
110
- - (BOOL )controller : (MTRDeviceController *)controller
111
- storeValue : (id <NSSecureCoding >)value
112
- forKey : (NSString *)key
113
- securityLevel : (MTRStorageSecurityLevel)securityLevel
114
- sharingType : (MTRStorageSharingType)sharingType
115
- {
116
- XCTAssertEqualObjects (_controllerID, controller.uniqueIdentifier );
117
-
118
- NSError * error;
119
- NSData * data = [NSKeyedArchiver archivedDataWithRootObject: value requiringSecureCoding: YES error: &error];
120
- XCTAssertNil (error);
121
- XCTAssertNotNil (data);
122
-
123
- self.storage [key] = data;
124
- return YES ;
125
- }
126
-
127
- - (BOOL )controller : (MTRDeviceController *)controller
128
- removeValueForKey : (NSString *)key
129
- securityLevel : (MTRStorageSecurityLevel)securityLevel
130
- sharingType : (MTRStorageSharingType)sharingType
131
- {
132
- XCTAssertEqualObjects (_controllerID, controller.uniqueIdentifier );
133
- self.storage [key] = nil ;
134
- return YES ;
135
- }
136
-
137
- @end
138
-
139
72
@interface MTRPerControllerStorageTestsCertificateIssuer : NSObject <MTROperationalCertificateIssuer>
140
73
- (instancetype )initWithRootCertificate : (MTRCertificateDERBytes)rootCertificate
141
74
intermediateCertificate : (MTRCertificateDERBytes _Nullable)intermediateCertificate
@@ -319,7 +252,7 @@ - (nullable MTRDeviceController *)startControllerWithRootKeys:(MTRTestKeys *)roo
319
252
operationalKeys : (MTRTestKeys *)operationalKeys
320
253
fabricID : (NSNumber *)fabricID
321
254
nodeID : (NSNumber *)nodeID
322
- storage : (MTRPerControllerStorageTestsStorageDelegate *)storage
255
+ storage : (MTRTestPerControllerStorage *)storage
323
256
caseAuthenticatedTags : (nullable NSSet *)caseAuthenticatedTags
324
257
error : (NSError * __autoreleasing *)error
325
258
certificateIssuer :
@@ -376,7 +309,7 @@ - (nullable MTRDeviceController *)startControllerWithRootKeys:(MTRTestKeys *)roo
376
309
operationalKeys : (MTRTestKeys *)operationalKeys
377
310
fabricID : (NSNumber *)fabricID
378
311
nodeID : (NSNumber *)nodeID
379
- storage : (MTRPerControllerStorageTestsStorageDelegate *)storage
312
+ storage : (MTRTestPerControllerStorage *)storage
380
313
error : (NSError * __autoreleasing *)error
381
314
certificateIssuer :
382
315
(MTRPerControllerStorageTestsCertificateIssuer * __autoreleasing *)certificateIssuer
@@ -395,7 +328,7 @@ - (nullable MTRDeviceController *)startControllerWithRootKeys:(MTRTestKeys *)roo
395
328
operationalKeys : (MTRTestKeys *)operationalKeys
396
329
fabricID : (NSNumber *)fabricID
397
330
nodeID : (NSNumber *)nodeID
398
- storage : (MTRPerControllerStorageTestsStorageDelegate *)storage
331
+ storage : (MTRTestPerControllerStorage *)storage
399
332
caseAuthenticatedTags : (nullable NSSet *)caseAuthenticatedTags
400
333
error : (NSError * __autoreleasing *)error
401
334
{
@@ -413,7 +346,7 @@ - (nullable MTRDeviceController *)startControllerWithRootKeys:(MTRTestKeys *)roo
413
346
operationalKeys : (MTRTestKeys *)operationalKeys
414
347
fabricID : (NSNumber *)fabricID
415
348
nodeID : (NSNumber *)nodeID
416
- storage : (MTRPerControllerStorageTestsStorageDelegate *)storage
349
+ storage : (MTRTestPerControllerStorage *)storage
417
350
error : (NSError * __autoreleasing *)error
418
351
{
419
352
return [self startControllerWithRootKeys: rootKeys
@@ -436,7 +369,7 @@ - (void)test001_BasicControllerStartup
436
369
__auto_type * operationalKeys = [[MTRTestKeys alloc ] init ];
437
370
XCTAssertNotNil (operationalKeys);
438
371
439
- __auto_type * storageDelegate = [[MTRPerControllerStorageTestsStorageDelegate alloc ] initWithControllerID: [NSUUID UUID ]];
372
+ __auto_type * storageDelegate = [[MTRTestPerControllerStorage alloc ] initWithControllerID: [NSUUID UUID ]];
440
373
441
374
NSNumber * nodeID = @(123 );
442
375
NSNumber * fabricID = @(456 );
@@ -481,7 +414,7 @@ - (void)test002_TryStartingTwoControllersWithSameNodeID
481
414
__auto_type * operationalKeys = [[MTRTestKeys alloc ] init ];
482
415
XCTAssertNotNil (operationalKeys);
483
416
484
- __auto_type * storageDelegate = [[MTRPerControllerStorageTestsStorageDelegate alloc ] initWithControllerID: [NSUUID UUID ]];
417
+ __auto_type * storageDelegate = [[MTRTestPerControllerStorage alloc ] initWithControllerID: [NSUUID UUID ]];
485
418
486
419
NSNumber * nodeID = @(123 );
487
420
NSNumber * fabricID = @(456 );
@@ -526,7 +459,7 @@ - (void)test003_TestTwoControllersSameUUID
526
459
XCTAssertNotNil (operationalKeys);
527
460
XCTAssertEqual (operationalKeys.signatureCount , 0 );
528
461
529
- __auto_type * storageDelegate = [[MTRPerControllerStorageTestsStorageDelegate alloc ] initWithControllerID: [NSUUID UUID ]];
462
+ __auto_type * storageDelegate = [[MTRTestPerControllerStorage alloc ] initWithControllerID: [NSUUID UUID ]];
530
463
531
464
NSNumber * fabricID = @(456 );
532
465
@@ -578,7 +511,7 @@ - (void)test004_TestBasicSessionResumption
578
511
XCTAssertNotNil (operationalKeys);
579
512
XCTAssertEqual (operationalKeys.signatureCount , 0 );
580
513
581
- __auto_type * storageDelegate = [[MTRPerControllerStorageTestsStorageDelegate alloc ] initWithControllerID: [NSUUID UUID ]];
514
+ __auto_type * storageDelegate = [[MTRTestPerControllerStorage alloc ] initWithControllerID: [NSUUID UUID ]];
582
515
583
516
NSNumber * nodeID = @(123 );
584
517
NSNumber * fabricID = @(456 );
@@ -675,7 +608,7 @@ - (void)test005_TestSessionResumptionDataClearingNodeIDChanged
675
608
XCTAssertNotNil (operationalKeys);
676
609
XCTAssertEqual (operationalKeys.signatureCount , 0 );
677
610
678
- __auto_type * storageDelegate = [[MTRPerControllerStorageTestsStorageDelegate alloc ] initWithControllerID: [NSUUID UUID ]];
611
+ __auto_type * storageDelegate = [[MTRTestPerControllerStorage alloc ] initWithControllerID: [NSUUID UUID ]];
679
612
680
613
NSNumber * nodeID1 = @(123 );
681
614
NSNumber * nodeID2 = @(246 );
@@ -778,7 +711,7 @@ - (void)test006_TestSessionResumptionDataClearingCATsChanged
778
711
XCTAssertNotNil (operationalKeys);
779
712
XCTAssertEqual (operationalKeys.signatureCount , 0 );
780
713
781
- __auto_type * storageDelegate = [[MTRPerControllerStorageTestsStorageDelegate alloc ] initWithControllerID: [NSUUID UUID ]];
714
+ __auto_type * storageDelegate = [[MTRTestPerControllerStorage alloc ] initWithControllerID: [NSUUID UUID ]];
782
715
783
716
NSNumber * nodeID = @(123 );
784
717
NSNumber * fabricID = @(456 );
@@ -887,7 +820,7 @@ - (void)test007_TestMultipleControllers
887
820
NSNumber * fabricID1 = @(1 );
888
821
NSNumber * fabricID2 = @(2 );
889
822
890
- __auto_type * storageDelegate1 = [[MTRPerControllerStorageTestsStorageDelegate alloc ] initWithControllerID: [NSUUID UUID ]];
823
+ __auto_type * storageDelegate1 = [[MTRTestPerControllerStorage alloc ] initWithControllerID: [NSUUID UUID ]];
891
824
892
825
// Start several controllers that have distinct identities but share some
893
826
// node/fabric IDs.
@@ -904,7 +837,7 @@ - (void)test007_TestMultipleControllers
904
837
XCTAssertNotNil (controller1);
905
838
XCTAssertTrue ([controller1 isRunning ]);
906
839
907
- __auto_type * storageDelegate2 = [[MTRPerControllerStorageTestsStorageDelegate alloc ] initWithControllerID: [NSUUID UUID ]];
840
+ __auto_type * storageDelegate2 = [[MTRTestPerControllerStorage alloc ] initWithControllerID: [NSUUID UUID ]];
908
841
MTRDeviceController * controller2 = [self startControllerWithRootKeys: rootKeys
909
842
operationalKeys: operationalKeys
910
843
fabricID: fabricID1
@@ -915,7 +848,7 @@ - (void)test007_TestMultipleControllers
915
848
XCTAssertNotNil (controller2);
916
849
XCTAssertTrue ([controller2 isRunning ]);
917
850
918
- __auto_type * storageDelegate3 = [[MTRPerControllerStorageTestsStorageDelegate alloc ] initWithControllerID: [NSUUID UUID ]];
851
+ __auto_type * storageDelegate3 = [[MTRTestPerControllerStorage alloc ] initWithControllerID: [NSUUID UUID ]];
919
852
MTRDeviceController * controller3 = [self startControllerWithRootKeys: rootKeys
920
853
operationalKeys: operationalKeys
921
854
fabricID: fabricID2
0 commit comments