diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/WhisperServerService.java b/service/src/main/java/org/whispersystems/textsecuregcm/WhisperServerService.java index e63801566..46e8feb8a 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/WhisperServerService.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/WhisperServerService.java @@ -700,7 +700,7 @@ public class WhisperServerService extends Application dynamicConfigurationManager; + private final ExperimentEnrollmentManager experimentEnrollmentManager; private final GenericServerSecretParams serverSecretParams; private final Clock clock; private final RateLimiters rateLimiters; private final AccountsManager accountsManager; public BackupAuthManager( - final DynamicConfigurationManager dynamicConfigurationManager, + final ExperimentEnrollmentManager experimentEnrollmentManager, final RateLimiters rateLimiters, final AccountsManager accountsManager, final GenericServerSecretParams serverSecretParams, final Clock clock) { - this.dynamicConfigurationManager = dynamicConfigurationManager; + this.experimentEnrollmentManager = experimentEnrollmentManager; this.rateLimiters = rateLimiters; this.accountsManager = accountsManager; this.serverSecretParams = serverSecretParams; @@ -157,9 +158,6 @@ public class BackupAuthManager { } private boolean inExperiment(final String experimentName, final Account account) { - return dynamicConfigurationManager.getConfiguration() - .getExperimentEnrollmentConfiguration(experimentName) - .map(config -> config.getEnrolledUuids().contains(account.getUuid())) - .orElse(false); + return this.experimentEnrollmentManager.isEnrolled(account.getUuid(), experimentName); } } diff --git a/service/src/test/java/org/whispersystems/textsecuregcm/tests/util/ExperimentHelper.java b/service/src/test/java/org/whispersystems/textsecuregcm/tests/util/ExperimentHelper.java index e88fb86c6..f0e3a9c28 100644 --- a/service/src/test/java/org/whispersystems/textsecuregcm/tests/util/ExperimentHelper.java +++ b/service/src/test/java/org/whispersystems/textsecuregcm/tests/util/ExperimentHelper.java @@ -7,6 +7,7 @@ package org.whispersystems.textsecuregcm.tests.util; import org.whispersystems.textsecuregcm.configuration.dynamic.DynamicConfiguration; import org.whispersystems.textsecuregcm.configuration.dynamic.DynamicExperimentEnrollmentConfiguration; +import org.whispersystems.textsecuregcm.experiment.ExperimentEnrollmentManager; import org.whispersystems.textsecuregcm.storage.DynamicConfigurationManager; import java.util.Optional; import java.util.Set; @@ -17,7 +18,7 @@ import static org.mockito.Mockito.when; public class ExperimentHelper { - public static DynamicConfigurationManager withEnrollment( + private static DynamicConfigurationManager withEnrollment( final String experimentName, final Set enrolledUuids, final int enrollmentPercentage) { @@ -31,11 +32,11 @@ public class ExperimentHelper { return dcm; } - public static DynamicConfigurationManager withEnrollment(final String experimentName, final Set enrolledUuids) { - return withEnrollment(experimentName, enrolledUuids, 0); + public static ExperimentEnrollmentManager withEnrollment(final String experimentName, final Set enrolledUuids) { + return new ExperimentEnrollmentManager(withEnrollment(experimentName, enrolledUuids, 0)); } - public static DynamicConfigurationManager withEnrollment(final String experimentName, final UUID enrolledUuid) { - return withEnrollment(experimentName, Set.of(enrolledUuid), 0); + public static ExperimentEnrollmentManager withEnrollment(final String experimentName, final UUID enrolledUuid) { + return new ExperimentEnrollmentManager(withEnrollment(experimentName, Set.of(enrolledUuid), 0)); } }