@@ -74,110 +74,75 @@ public void testGetFeatureVariablesMap() {
74
74
75
75
@ Test
76
76
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 ());
86
81
}
87
82
88
83
@ Test
89
84
public void testGetFeatureVariableUsageInstanceMap () {
90
85
List <FeatureVariableUsageInstance > featureVariableUsageInstances =
91
- projectConfig .getExperiments ().get (0 ).getVariations ().get (0 ).getFeatureVariableUsageInstances ();
86
+ projectConfig .getExperiments ().get (1 ).getVariations ().get (1 ).getFeatureVariableUsageInstances ();
92
87
Map <String , OptimizelyVariable > optimizelyVariableMap =
93
88
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 );
99
111
}
100
112
101
113
@ Test
102
114
public void testGetVariationsMap () {
103
- Experiment experiment = projectConfig .getExperiments ().get (0 );
104
- List <Variation > variations = experiment .getVariations ();
105
115
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 );
122
119
}
123
120
124
121
@ Test
125
122
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 );
134
125
}
135
126
136
127
@ Test
137
128
public void testGenerateFeatureKeyToVariablesMap () {
138
129
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 ());
152
136
}
153
137
154
138
@ Test
155
139
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 );
181
146
}
182
147
183
148
private ProjectConfig generateOptimizelyConfig () {
@@ -322,14 +287,14 @@ private ProjectConfig generateOptimizelyConfig() {
322
287
"675244127" ,
323
288
"first_letter" ,
324
289
"H" ,
325
- null ,
290
+ FeatureVariable . VariableStatus . ACTIVE ,
326
291
FeatureVariable .VariableType .STRING
327
292
),
328
293
new FeatureVariable (
329
294
"4052219963" ,
330
295
"rest_of_name" ,
331
296
"arry" ,
332
- null ,
297
+ FeatureVariable . VariableStatus . ACTIVE ,
333
298
FeatureVariable .VariableType .STRING
334
299
)
335
300
)
0 commit comments