@@ -33,67 +33,34 @@ public class OptimizelyConfigServiceTest {
33
33
private ProjectConfig projectConfig ;
34
34
@ Mock
35
35
private OptimizelyConfigService optimizelyConfigService ;
36
+ private OptimizelyConfig exptectedConfig = getExpectedConfig ();
36
37
37
38
@ Before
38
39
public void initialize () throws Exception {
39
40
projectConfig = generateOptimizelyConfig ();
40
41
optimizelyConfigService = new OptimizelyConfigService (projectConfig );
42
+
41
43
}
42
44
43
45
@ Test
44
46
public void testGetExperimentsMap () {
45
47
Map <String , OptimizelyExperiment > optimizelyExperimentMap = optimizelyConfigService .getExperimentsMap ();
46
48
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 );
61
50
}
62
51
63
52
@ Test
64
53
public void testRevision () {
65
54
String revision = optimizelyConfigService .getConfig ().getRevision ();
66
- assertEquals (revision , projectConfig .getRevision ());
55
+ assertEquals (exptectedConfig . getRevision () , projectConfig .getRevision ());
67
56
}
68
57
69
58
@ Test
70
59
public void testGetFeaturesMap () {
71
60
Map <String , OptimizelyExperiment > optimizelyExperimentMap = optimizelyConfigService .getExperimentsMap ();
72
61
Map <String , OptimizelyFeature > optimizelyFeatureMap = optimizelyConfigService .getFeaturesMap (optimizelyExperimentMap );
73
62
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 );
97
64
}
98
65
99
66
@ Test
@@ -102,12 +69,7 @@ public void testGetFeatureVariablesMap() {
102
69
featureFlags .forEach (featureFlag -> {
103
70
Map <String , OptimizelyVariable > optimizelyVariableMap =
104
71
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 );
111
73
});
112
74
}
113
75
@@ -219,15 +181,6 @@ public void testGetMergedVariablesMap() {
219
181
);
220
182
}
221
183
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
-
231
184
private ProjectConfig generateOptimizelyConfig () {
232
185
return new DatafileProjectConfig (
233
186
"2360254204" ,
@@ -387,4 +340,211 @@ private ProjectConfig generateOptimizelyConfig() {
387
340
Collections .<Rollout >emptyList ()
388
341
);
389
342
}
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
+ }
390
550
}
0 commit comments