Browse Source

Merge branch 'abt-exp-meta'

Conflicts:
	FirebaseRemoteConfig/Sources/RCNConfigDBManager.m
	FirebaseRemoteConfig/Sources/RCNConfigExperiment.m
	FirebaseRemoteConfig/Tests/Unit/RCNConfigExperimentTest.m
Quan Pham 2 năm trước cách đây
mục cha
commit
bc78a5efee

+ 2 - 0
FirebaseRemoteConfig/Sources/RCNConfigDBManager.m

@@ -840,6 +840,8 @@ static NSArray *RemoteConfigMetadataTableColumnsInOrder(void) {
             YES, @{
               @RCNExperimentTableKeyPayload : [experimentPayloads copy],
               @RCNExperimentTableKeyMetadata : [experimentMetadata copy],
+              /// Activated experiments only need ExperimentsDescriptions data, which
+              /// experimentPayloads contains.
               @RCNExperimentTableKeyActivePayload : [activeExperimentPayloads copy]
             });
       });

+ 3 - 2
FirebaseRemoteConfig/Sources/RCNConfigExperiment.m

@@ -50,6 +50,7 @@ static NSString *const kAffectedParameterKeys = @"affectedParameterKeys";
   if (self) {
     _experimentPayloads = [[NSMutableArray alloc] init];
     _experimentMetadata = [[NSMutableDictionary alloc] init];
+    _activeExperimentPayloads = [[NSMutableArray alloc] init];
     _experimentStartTimeDateFormatter = [[NSDateFormatter alloc] init];
     [_experimentStartTimeDateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"];
     [_experimentStartTimeDateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];
@@ -155,7 +156,7 @@ static NSString *const kAffectedParameterKeys = @"affectedParameterKeys";
                        completionHandler:handler];
 
   /// Update activated experiments payload and metadata in DB.
-  [self updateActiveExperiments];
+  [self updateActiveExperimentsInDB];
 }
 
 - (void)updateExperimentStartTime {
@@ -182,7 +183,7 @@ static NSString *const kAffectedParameterKeys = @"affectedParameterKeys";
                          completionHandler:nil];
 }
 
-- (void)updateActiveExperiments {
+- (void)updateActiveExperimentsInDB {
   /// Put current fetched experiment payloads into activated experiment DB.
   [_activeExperimentPayloads removeAllObjects];
   [_DBManager deleteExperimentTableForKey:@RCNExperimentTableKeyActivePayload];

+ 2 - 2
FirebaseRemoteConfig/Tests/Unit/RCNConfigExperimentTest.m

@@ -42,7 +42,7 @@
 @property(nonatomic, strong) RCNConfigDBManager *DBManager;
 - (NSTimeInterval)updateExperimentStartTime;
 - (void)loadExperimentFromTable;
-- (void)updateActiveExperiments;
+- (void)updateActiveExperimentsInDB;
 - (NSMutableSet<NSString *> *_Nonnull)getKeysAffectedByChangedExperiments;
 @end
 
@@ -235,7 +235,7 @@
     XCTAssertNil(error);
     XCTAssertEqualObjects(experiment.experimentMetadata[@"last_experiment_start_time"],
                           @(12345678));
-    OCMVerify([experiment updateActiveExperiments]);
+    OCMVerify([experiment updateActiveExperimentsInDB]);
     XCTAssertEqualObjects(experiment.activeExperimentPayloads, @[ payloadData ]);
   }];
 }

+ 20 - 0
TestABTPayload2.txt

@@ -0,0 +1,20 @@
+{
+  "experimentId": "exp_2",
+  "variantId": "var_1",
+  "triggerEvent": "customTrigger",
+  "experimentStartTime": "1970-05-23T21:21:18.000Z",
+  "triggerTimeoutMillis": 15552000000,
+  "timeToLiveMillis": 15552000000,
+  "setEventToLog": "set_event",
+  "activateEventToLog": "activate_event",
+  "clearEventToLog": "clear_event",
+  "timeoutEventToLog": "timeout_event",
+  "ttlExpiryEventToLog": "ttl_expiry_event",
+  "overflowPolicy": 2,
+  "ongoingExperiments": [
+    {
+      "experimentId": "exp_1"
+    }
+  ],
+  "affectedParameterKey": ["test_key_1"]
+}