Skip to content

Commit 8b08c61

Browse files
committed
Updated the tests
1 parent fd4bc99 commit 8b08c61

File tree

2 files changed

+47
-85
lines changed

2 files changed

+47
-85
lines changed

core-api/src/main/java/com/optimizely/ab/optimizelyconfig/OptimizelyVariable.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -59,10 +59,7 @@ public boolean equals(Object obj) {
5959
if (obj == this) return true;
6060
OptimizelyVariable optimizelyVariable = (OptimizelyVariable) obj;
6161
return id.equals(optimizelyVariable.getId()) &&
62-
value.equals(optimizelyVariable.getValue()) &&
63-
key.equals(optimizelyVariable.getKey()) &&
64-
type.equals(optimizelyVariable.getType()
65-
);
62+
value.equals(optimizelyVariable.getValue());
6663
}
6764

6865
@Override

core-api/src/test/java/com/optimizely/ab/optimizelyconfig/OptimizelyConfigServiceTest.java

Lines changed: 46 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -74,110 +74,75 @@ public void testGetFeatureVariablesMap() {
7474

7575
@Test
7676
public void testGetExperimentsMapForFeature() {
77-
projectConfig.getFeatureFlags().forEach(featureFlag -> {
78-
List<String> experimentIds = featureFlag.getExperimentIds();
79-
Map<String, OptimizelyExperiment> optimizelyFeatureExperimentMap =
80-
optimizelyConfigService.getExperimentsMapForFeature(experimentIds, optimizelyConfigService.getExperimentsMap());
81-
assertEquals(optimizelyFeatureExperimentMap.size(), experimentIds.size());
82-
optimizelyFeatureExperimentMap.forEach((experimentKey, experiment) ->
83-
assertTrue(experimentIds.contains(experiment.getId()))
84-
);
85-
});
77+
List<String> experimentIds = projectConfig.getFeatureFlags().get(1).getExperimentIds();
78+
Map<String, OptimizelyExperiment> optimizelyFeatureExperimentMap =
79+
optimizelyConfigService.getExperimentsMapForFeature(experimentIds, optimizelyConfigService.getExperimentsMap());
80+
assertEquals(exptectedConfig.getFeaturesMap().get("multi_variate_feature").getExperimentsMap().size(), optimizelyFeatureExperimentMap.size());
8681
}
8782

8883
@Test
8984
public void testGetFeatureVariableUsageInstanceMap() {
9085
List<FeatureVariableUsageInstance> featureVariableUsageInstances =
91-
projectConfig.getExperiments().get(0).getVariations().get(0).getFeatureVariableUsageInstances();
86+
projectConfig.getExperiments().get(1).getVariations().get(1).getFeatureVariableUsageInstances();
9287
Map<String, OptimizelyVariable> optimizelyVariableMap =
9388
optimizelyConfigService.getFeatureVariableUsageInstanceMap(featureVariableUsageInstances);
94-
featureVariableUsageInstances.forEach(featureVariableUsageInstance -> {
95-
OptimizelyVariable optimizelyVariable = optimizelyVariableMap.get(featureVariableUsageInstance.getId());
96-
assertEquals(optimizelyVariable.getValue(), featureVariableUsageInstance.getValue());
97-
assertEquals(optimizelyVariable.getId(), featureVariableUsageInstance.getId());
98-
});
89+
Map<String, OptimizelyVariable> expectedOptimizelyVariableMap = new HashMap<String, OptimizelyVariable>() {{
90+
put(
91+
"675244127",
92+
new OptimizelyVariable(
93+
"675244127",
94+
null,
95+
null,
96+
"F"
97+
)
98+
);
99+
put(
100+
"4052219963",
101+
new OptimizelyVariable(
102+
"4052219963",
103+
null,
104+
null,
105+
"eorge"
106+
)
107+
);
108+
}};
109+
assertEquals(expectedOptimizelyVariableMap.size(), optimizelyVariableMap.size());
110+
assertEquals(expectedOptimizelyVariableMap, optimizelyVariableMap);
99111
}
100112

101113
@Test
102114
public void testGetVariationsMap() {
103-
Experiment experiment = projectConfig.getExperiments().get(0);
104-
List<Variation> variations = experiment.getVariations();
105115
Map<String, OptimizelyVariation> optimizelyVariationMap =
106-
optimizelyConfigService.getVariationsMap(variations, experiment.getId());
107-
variations.forEach(variation -> {
108-
OptimizelyVariation optimizelyVariation = optimizelyVariationMap.get(variation.getKey());
109-
assertEquals(optimizelyVariation.getId(), variation.getId());
110-
assertEquals(optimizelyVariation.getKey(), variation.getKey());
111-
List<FeatureVariableUsageInstance> featureVariableUsageInstances = variation.getFeatureVariableUsageInstances();
112-
optimizelyVariation.getVariablesMap().forEach((variableKey, variable) -> {
113-
if(featureVariableUsageInstances != null) {
114-
featureVariableUsageInstances.forEach(featureVariableUsageInstance -> {
115-
if (variable.getId().equals(featureVariableUsageInstance.getId())) {
116-
assertEquals(variable.getValue(), featureVariableUsageInstance.getValue());
117-
}
118-
});
119-
}
120-
});
121-
});
116+
optimizelyConfigService.getVariationsMap(projectConfig.getExperiments().get(1).getVariations(), "3262035800");
117+
assertEquals(exptectedConfig.getExperimentsMap().get("multivariate_experiment").getVariationsMap().size(), optimizelyVariationMap.size());
118+
assertEquals(exptectedConfig.getExperimentsMap().get("multivariate_experiment").getVariationsMap(), optimizelyVariationMap);
122119
}
123120

124121
@Test
125122
public void testGetExperimentFeatureKey() {
126-
List<Experiment> experiments = projectConfig.getExperiments();
127-
experiments.forEach(experiment -> {
128-
String featureKey = optimizelyConfigService.getExperimentFeatureKey(experiment.getId());
129-
List<String> featureKeys = projectConfig.getExperimentFeatureKeyMapping().get(experiment.getId());
130-
if(featureKeys != null) {
131-
assertTrue(featureKeys.contains(featureKey));
132-
}
133-
});
123+
String featureKey = optimizelyConfigService.getExperimentFeatureKey("3262035800");
124+
assertEquals("multi_variate_feature", featureKey);
134125
}
135126

136127
@Test
137128
public void testGenerateFeatureKeyToVariablesMap() {
138129
Map<String, List<FeatureVariable>> featureKeyToVariableMap = optimizelyConfigService.generateFeatureKeyToVariablesMap();
139-
projectConfig.getFeatureFlags().forEach(featureFlag -> {
140-
List<FeatureVariable> featureVariables = featureKeyToVariableMap.get(featureFlag.getKey());
141-
assertEquals(featureVariables.size(), featureFlag.getVariables().size());
142-
featureVariables.forEach(featureVariable ->
143-
featureFlag.getVariables().forEach(variable -> {
144-
if (variable.getKey().equals(featureVariable.getKey())) {
145-
assertEquals(variable.getDefaultValue(), featureVariable.getDefaultValue());
146-
assertEquals(variable.getType().getVariableType().toLowerCase(), featureVariable.getType().getVariableType().toLowerCase());
147-
assertEquals(variable.getId(), featureVariable.getId());
148-
}
149-
})
150-
);
151-
});
130+
FeatureVariable featureVariable = featureKeyToVariableMap.get("multi_variate_feature").get(0);
131+
OptimizelyVariable expectedOptimizelyVariable = exptectedConfig.getFeaturesMap().get("multi_variate_feature").getVariablesMap().get("first_letter");
132+
assertEquals(expectedOptimizelyVariable.getId(), featureVariable.getId());
133+
assertEquals(expectedOptimizelyVariable.getValue(), featureVariable.getDefaultValue());
134+
assertEquals(expectedOptimizelyVariable.getKey(), featureVariable.getKey());
135+
assertEquals(expectedOptimizelyVariable.getType(), featureVariable.getType().getVariableType().toLowerCase());
152136
}
153137

154138
@Test
155139
public void testGetMergedVariablesMap() {
156-
List<Experiment> experiments = projectConfig.getExperiments();
157-
experiments.forEach(experiment ->
158-
experiment.getVariations().forEach(variation -> {
159-
// creating temporary variable map to get values while merging
160-
Map<String, OptimizelyVariable> tempVariableIdMap = optimizelyConfigService.getFeatureVariableUsageInstanceMap(variation.getFeatureVariableUsageInstances());
161-
String featureKey = optimizelyConfigService.getExperimentFeatureKey(experiment.getId());
162-
if (featureKey != null) {
163-
// keeping all the feature variables for asserting
164-
List<FeatureVariable> featureVariables = optimizelyConfigService.generateFeatureKeyToVariablesMap().get(featureKey);
165-
Map<String, OptimizelyVariable> optimizelyVariableMap = optimizelyConfigService.getMergedVariablesMap(variation, experiment.getId());
166-
featureVariables.forEach(featureVariable -> {
167-
OptimizelyVariable optimizelyVariable = optimizelyVariableMap.get(featureVariable.getKey());
168-
assertEquals(optimizelyVariable.getKey(), featureVariable.getKey());
169-
assertEquals(optimizelyVariable.getId(), featureVariable.getId());
170-
assertEquals(optimizelyVariable.getType(), featureVariable.getType().getVariableType().toLowerCase());
171-
// getting the expected value to assert after merging
172-
// if feature is enabled, then value should be taken from varition variable otherwise default value from feature variable is used.
173-
String expectedValue = variation.getFeatureEnabled() && tempVariableIdMap.get(featureVariable.getId()) != null
174-
? tempVariableIdMap.get(featureVariable.getId()).getValue()
175-
: featureVariable.getDefaultValue();
176-
assertEquals(optimizelyVariable.getValue(), expectedValue);
177-
});
178-
}
179-
})
180-
);
140+
Variation variation = projectConfig.getExperiments().get(1).getVariations().get(1);
141+
Map<String, OptimizelyVariable> optimizelyVariableMap = optimizelyConfigService.getMergedVariablesMap(variation, "3262035800");
142+
Map<String, OptimizelyVariable> expectedOptimizelyVariableMap =
143+
exptectedConfig.getExperimentsMap().get("multivariate_experiment").getVariationsMap().get("Feorge").getVariablesMap();
144+
assertEquals(expectedOptimizelyVariableMap.size(), optimizelyVariableMap.size());
145+
assertEquals(expectedOptimizelyVariableMap, optimizelyVariableMap);
181146
}
182147

183148
private ProjectConfig generateOptimizelyConfig() {
@@ -322,14 +287,14 @@ private ProjectConfig generateOptimizelyConfig() {
322287
"675244127",
323288
"first_letter",
324289
"H",
325-
null,
290+
FeatureVariable.VariableStatus.ACTIVE,
326291
FeatureVariable.VariableType.STRING
327292
),
328293
new FeatureVariable(
329294
"4052219963",
330295
"rest_of_name",
331296
"arry",
332-
null,
297+
FeatureVariable.VariableStatus.ACTIVE,
333298
FeatureVariable.VariableType.STRING
334299
)
335300
)

0 commit comments

Comments
 (0)