Skip to content

Commit 4730f73

Browse files
author
Varun Rathore
committed
Add exposurePercent to ExperimentValues
1 parent d04e15b commit 4730f73

3 files changed

Lines changed: 27 additions & 9 deletions

File tree

src/main/java/com/google/firebase/remoteconfig/ParameterValue.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -85,8 +85,8 @@ public static PersonalizationValue ofPersonalization(String personalizationId) {
8585
* @return A {@link ParameterValue.ExperimentValue} instance.
8686
*/
8787
public static ExperimentValue ofExperiment(String experimentId,
88-
List<ExperimentVariantValue> variantValues) {
89-
return new ExperimentValue(experimentId, variantValues);
88+
List<ExperimentVariantValue> variantValues, Double exposurePercent) {
89+
return new ExperimentValue(experimentId, variantValues, exposurePercent);
9090
}
9191

9292
abstract ParameterValueResponse toParameterValueResponse();
@@ -119,7 +119,7 @@ static ParameterValue fromParameterValueResponse(
119119
.map(evv -> new ExperimentVariantValue(
120120
evv.getVariantId(), evv.getValue(), evv.getNoChange()))
121121
.collect(toList());
122-
return ParameterValue.ofExperiment(ev.getExperimentId(), variantValues);
122+
return ParameterValue.ofExperiment(ev.getExperimentId(), variantValues, ev.getExposurePercent());
123123
}
124124
return ParameterValue.of(parameterValueResponse.getValue());
125125
}
@@ -400,10 +400,13 @@ public int hashCode() {
400400
public static final class ExperimentValue extends ParameterValue {
401401
private final String experimentId;
402402
private final List<ExperimentVariantValue> variantValues;
403+
private final Double exposurePercent;
403404

404-
private ExperimentValue(String experimentId, List<ExperimentVariantValue> variantValues) {
405+
406+
private ExperimentValue(String experimentId, List<ExperimentVariantValue> variantValues, Double exposurePercent) {
405407
this.experimentId = experimentId;
406408
this.variantValues = variantValues;
409+
this.exposurePercent = exposurePercent;
407410
}
408411

409412
/**

src/main/java/com/google/firebase/remoteconfig/internal/TemplateResponse.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121
import java.util.List;
2222
import java.util.Map;
2323

24+
import org.checkerframework.checker.units.qual.K;
25+
2426
/**
2527
* The Data Transfer Object for parsing Remote Config template responses from the
2628
* Remote Config service.
@@ -288,6 +290,9 @@ public static final class ExperimentValueResponse {
288290
@Key("variantValue")
289291
private List<ExperimentVariantValueResponse> experimentVariantValues;
290292

293+
@Key("exposurePercent")
294+
private Double exposurePercent;
295+
291296
public String getExperimentId() {
292297
return experimentId;
293298
}
@@ -296,6 +301,11 @@ public List<ExperimentVariantValueResponse> getExperimentVariantValues() {
296301
return experimentVariantValues;
297302
}
298303

304+
public Double getExposurePercent() {
305+
return exposurePercent;
306+
}
307+
308+
299309
public ExperimentValueResponse setExperimentId(String experimentId) {
300310
this.experimentId = experimentId;
301311
return this;
@@ -306,6 +316,11 @@ public ExperimentValueResponse setExperimentVariantValues(
306316
this.experimentVariantValues = experimentVariantValues;
307317
return this;
308318
}
319+
320+
public ExperimentValueResponse setExposurePercent(Double exposurePercent) {
321+
this.exposurePercent = exposurePercent;
322+
return this;
323+
}
309324
}
310325

311326
/**

src/test/java/com/google/firebase/remoteconfig/ParameterValueTest.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ public void testCreateExperimentValue() {
6464
ParameterValue.ofExperiment("experiment_1", ImmutableList.of(
6565
ExperimentVariantValue.of("variant_1", "value_1"),
6666
ExperimentVariantValue.ofNoChange("variant_2")
67-
));
67+
), 10.0);
6868

6969
assertEquals("experiment_1", parameterValue.getExperimentId());
7070
assertEquals(2, parameterValue.getExperimentVariantValues().size());
@@ -116,19 +116,19 @@ public void testEquality() {
116116
ParameterValue.ExperimentValue experimentValueOne =
117117
ParameterValue.ofExperiment("experiment_1", ImmutableList.of(
118118
ExperimentVariantValue.of("variant_1", "value_1")
119-
));
119+
), 10.0);
120120
ParameterValue.ExperimentValue experimentValueTwo =
121121
ParameterValue.ofExperiment("experiment_1", ImmutableList.of(
122122
ExperimentVariantValue.of("variant_1", "value_1")
123-
));
123+
), 10.0);
124124
ParameterValue.ExperimentValue experimentValueThree =
125125
ParameterValue.ofExperiment("experiment_2", ImmutableList.of(
126126
ExperimentVariantValue.of("variant_1", "value_1")
127-
));
127+
), 10.0);
128128
ParameterValue.ExperimentValue experimentValueFour =
129129
ParameterValue.ofExperiment("experiment_1", ImmutableList.of(
130130
ExperimentVariantValue.of("variant_2", "value_2")
131-
));
131+
), 10.0);
132132

133133
assertEquals(experimentValueOne, experimentValueTwo);
134134
assertNotEquals(experimentValueOne, experimentValueThree);

0 commit comments

Comments
 (0)