Skip to content

Commit 05a3198

Browse files
committed
Added hard coded expected config and updated the tests
1 parent df2d21f commit 05a3198

File tree

1 file changed

+213
-53
lines changed

1 file changed

+213
-53
lines changed

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

Lines changed: 213 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -33,67 +33,34 @@ public class OptimizelyConfigServiceTest {
3333
private ProjectConfig projectConfig;
3434
@Mock
3535
private OptimizelyConfigService optimizelyConfigService;
36+
private OptimizelyConfig exptectedConfig = getExpectedConfig();
3637

3738
@Before
3839
public void initialize() throws Exception {
3940
projectConfig = generateOptimizelyConfig();
4041
optimizelyConfigService = new OptimizelyConfigService(projectConfig);
42+
4143
}
4244

4345
@Test
4446
public void testGetExperimentsMap() {
4547
Map<String, OptimizelyExperiment> optimizelyExperimentMap = optimizelyConfigService.getExperimentsMap();
4648
assertEquals(optimizelyExperimentMap.size(), 2);
47-
48-
List<Experiment> experiments = getAllExperimentsFromDatafile();
49-
experiments.forEach(experiment -> {
50-
OptimizelyExperiment optimizelyExperiment = optimizelyExperimentMap.get(experiment.getKey());
51-
assertEquals(optimizelyExperiment.getId(), experiment.getId());
52-
assertEquals(optimizelyExperiment.getKey(), experiment.getKey());
53-
54-
Map<String, OptimizelyVariation> optimizelyVariationMap = optimizelyExperimentMap.get(experiment.getKey()).getVariationsMap();
55-
experiment.getVariations().forEach(variation -> {
56-
OptimizelyVariation optimizelyVariation = optimizelyVariationMap.get(variation.getKey());
57-
assertEquals(optimizelyVariation.getId(), variation.getId());
58-
assertEquals(optimizelyVariation.getKey(), variation.getKey());
59-
});
60-
});
49+
assertEquals(exptectedConfig.getExperimentsMap(), optimizelyExperimentMap);
6150
}
6251

6352
@Test
6453
public void testRevision() {
6554
String revision = optimizelyConfigService.getConfig().getRevision();
66-
assertEquals(revision, projectConfig.getRevision());
55+
assertEquals(exptectedConfig.getRevision(), projectConfig.getRevision());
6756
}
6857

6958
@Test
7059
public void testGetFeaturesMap() {
7160
Map<String, OptimizelyExperiment> optimizelyExperimentMap = optimizelyConfigService.getExperimentsMap();
7261
Map<String, OptimizelyFeature> optimizelyFeatureMap = optimizelyConfigService.getFeaturesMap(optimizelyExperimentMap);
7362
assertEquals(optimizelyFeatureMap.size(), 2);
74-
75-
projectConfig.getFeatureFlags().forEach(featureFlag -> {
76-
List<String> experimentIds = featureFlag.getExperimentIds();
77-
experimentIds.forEach(experimentId -> {
78-
String experimentKey = projectConfig.getExperimentIdMapping().get(experimentId).getKey();
79-
OptimizelyExperiment optimizelyExperiment
80-
= optimizelyFeatureMap.get(featureFlag.getKey()).getExperimentsMap().get(experimentKey);
81-
assertNotNull(optimizelyExperiment);
82-
});
83-
84-
OptimizelyFeature optimizelyFeature = optimizelyFeatureMap.get(featureFlag.getKey());
85-
assertEquals(optimizelyFeature.getId(), featureFlag.getId());
86-
assertEquals(optimizelyFeature.getKey(), featureFlag.getKey());
87-
88-
Map<String, OptimizelyVariable> optimizelyVariableMap = optimizelyFeatureMap.get(featureFlag.getKey()).getVariablesMap();
89-
featureFlag.getVariables().forEach(variable -> {
90-
OptimizelyVariable optimizelyVariable = optimizelyVariableMap.get(variable.getKey());
91-
assertEquals(optimizelyVariable.getId(), variable.getId());
92-
assertEquals(optimizelyVariable.getKey(), variable.getKey());
93-
assertEquals(optimizelyVariable.getType(), variable.getType().getVariableType().toLowerCase());
94-
assertEquals(optimizelyVariable.getValue(), variable.getDefaultValue());
95-
});
96-
});
63+
assertEquals(exptectedConfig.getFeaturesMap(), optimizelyFeatureMap);
9764
}
9865

9966
@Test
@@ -102,12 +69,7 @@ public void testGetFeatureVariablesMap() {
10269
featureFlags.forEach(featureFlag -> {
10370
Map<String, OptimizelyVariable> optimizelyVariableMap =
10471
optimizelyConfigService.getFeatureVariablesMap(featureFlag.getVariables());
105-
featureFlag.getVariables().forEach(variable -> {
106-
OptimizelyVariable optimizelyVariable = optimizelyVariableMap.get(variable.getKey());
107-
assertEquals(optimizelyVariable.getValue(), variable.getDefaultValue());
108-
assertEquals(optimizelyVariable.getId(), variable.getId());
109-
assertEquals(optimizelyVariable.getType(), variable.getType().getVariableType().toLowerCase());
110-
});
72+
assertEquals(exptectedConfig.getFeaturesMap().get(featureFlag.getKey()).getVariablesMap(), optimizelyVariableMap);
11173
});
11274
}
11375

@@ -219,15 +181,6 @@ public void testGetMergedVariablesMap() {
219181
);
220182
}
221183

222-
private List<Experiment> getAllExperimentsFromDatafile() {
223-
List<Experiment> experiments = new ArrayList<>();
224-
projectConfig.getGroups().forEach(group ->
225-
experiments.addAll(group.getExperiments())
226-
);
227-
experiments.addAll(projectConfig.getExperiments());
228-
return experiments;
229-
}
230-
231184
private ProjectConfig generateOptimizelyConfig() {
232185
return new DatafileProjectConfig(
233186
"2360254204",
@@ -387,4 +340,211 @@ private ProjectConfig generateOptimizelyConfig() {
387340
Collections.<Rollout>emptyList()
388341
);
389342
}
343+
344+
OptimizelyConfig getExpectedConfig() {
345+
Map<String, OptimizelyExperiment> optimizelyExperimentMap = new HashMap<>();
346+
optimizelyExperimentMap.put(
347+
"multivariate_experiment",
348+
new OptimizelyExperiment(
349+
"3262035800",
350+
"multivariate_experiment",
351+
new HashMap<String, OptimizelyVariation>() {{
352+
put(
353+
"Feorge",
354+
new OptimizelyVariation(
355+
"3631049532",
356+
"Feorge",
357+
true,
358+
new HashMap<String, OptimizelyVariable>() {{
359+
put(
360+
"first_letter",
361+
new OptimizelyVariable(
362+
"675244127",
363+
"first_letter",
364+
"string",
365+
"F"
366+
)
367+
);
368+
put(
369+
"rest_of_name",
370+
new OptimizelyVariable(
371+
"4052219963",
372+
"rest_of_name",
373+
"string",
374+
"eorge"
375+
)
376+
);
377+
}}
378+
)
379+
);
380+
put(
381+
"Fred",
382+
new OptimizelyVariation(
383+
"1880281238",
384+
"Fred",
385+
true,
386+
new HashMap<String, OptimizelyVariable>() {{
387+
put(
388+
"first_letter",
389+
new OptimizelyVariable(
390+
"675244127",
391+
"first_letter",
392+
"string",
393+
"F"
394+
)
395+
);
396+
put(
397+
"rest_of_name",
398+
new OptimizelyVariable(
399+
"4052219963",
400+
"rest_of_name",
401+
"string",
402+
"red"
403+
)
404+
);
405+
}}
406+
)
407+
);
408+
}}
409+
)
410+
);
411+
optimizelyExperimentMap.put(
412+
"basic_experiment",
413+
new OptimizelyExperiment(
414+
"1323241596",
415+
"basic_experiment",
416+
new HashMap<String, OptimizelyVariation>() {{
417+
put(
418+
"A",
419+
new OptimizelyVariation(
420+
"1423767502",
421+
"A",
422+
null,
423+
Collections.emptyMap()
424+
)
425+
);
426+
put(
427+
"B",
428+
new OptimizelyVariation(
429+
"3433458314",
430+
"B",
431+
null,
432+
Collections.emptyMap()
433+
)
434+
);
435+
}}
436+
)
437+
);
438+
439+
Map<String, OptimizelyFeature> optimizelyFeatureMap = new HashMap<>();
440+
optimizelyFeatureMap.put(
441+
"multi_variate_feature",
442+
new OptimizelyFeature(
443+
"3263342226",
444+
"multi_variate_feature",
445+
new HashMap<String, OptimizelyExperiment>() {{
446+
put(
447+
"multivariate_experiment",
448+
new OptimizelyExperiment(
449+
"3262035800",
450+
"multivariate_experiment",
451+
new HashMap<String, OptimizelyVariation>() {{
452+
put(
453+
"Feorge",
454+
new OptimizelyVariation(
455+
"3631049532",
456+
"Feorge",
457+
true,
458+
new HashMap<String, OptimizelyVariable>() {{
459+
put(
460+
"first_letter",
461+
new OptimizelyVariable(
462+
"675244127",
463+
"first_letter",
464+
"string",
465+
"F"
466+
)
467+
);
468+
put(
469+
"rest_of_name",
470+
new OptimizelyVariable(
471+
"4052219963",
472+
"rest_of_name",
473+
"string",
474+
"eorge"
475+
)
476+
);
477+
}}
478+
)
479+
);
480+
put(
481+
"Fred",
482+
new OptimizelyVariation(
483+
"1880281238",
484+
"Fred",
485+
true,
486+
new HashMap<String, OptimizelyVariable>() {{
487+
put(
488+
"first_letter",
489+
new OptimizelyVariable(
490+
"675244127",
491+
"first_letter",
492+
"string",
493+
"F"
494+
)
495+
);
496+
put(
497+
"rest_of_name",
498+
new OptimizelyVariable(
499+
"4052219963",
500+
"rest_of_name",
501+
"string",
502+
"red"
503+
)
504+
);
505+
}}
506+
)
507+
);
508+
}}
509+
)
510+
);
511+
}},
512+
new HashMap<String, OptimizelyVariable>() {{
513+
put(
514+
"first_letter",
515+
new OptimizelyVariable(
516+
"675244127",
517+
"first_letter",
518+
"string",
519+
"H"
520+
)
521+
);
522+
put(
523+
"rest_of_name",
524+
new OptimizelyVariable(
525+
"4052219963",
526+
"rest_of_name",
527+
"string",
528+
"arry"
529+
)
530+
);
531+
}}
532+
)
533+
);
534+
optimizelyFeatureMap.put(
535+
"boolean_feature",
536+
new OptimizelyFeature(
537+
"4195505407",
538+
"boolean_feature",
539+
Collections.emptyMap(),
540+
Collections.emptyMap()
541+
)
542+
);
543+
544+
return new OptimizelyConfig(
545+
optimizelyExperimentMap,
546+
optimizelyFeatureMap,
547+
"1480511547"
548+
);
549+
}
390550
}

0 commit comments

Comments
 (0)