Skip to content

Commit db932a5

Browse files
authored
feat(OptimizelyConfig): Add new fields to OptimizelyConfig (#266)
1 parent e54f4c9 commit db932a5

19 files changed

+1046
-119
lines changed

OptimizelySDK.Net35/OptimizelySDK.Net35.csproj

+9
Original file line numberDiff line numberDiff line change
@@ -284,9 +284,18 @@
284284
<Compile Include="..\OptimizelySDK\OptlyConfig\OptimizelyConfig.cs">
285285
<Link>OptlyConfig\OptimizelyConfig.cs</Link>
286286
</Compile>
287+
<Compile Include="..\OptimizelySDK\OptlyConfig\OptimizelyAttribute.cs">
288+
<Link>OptlyConfig\OptimizelyAttribute.cs</Link>
289+
</Compile>
290+
<Compile Include="..\OptimizelySDK\OptlyConfig\OptimizelyEvent.cs">
291+
<Link>OptlyConfig\OptimizelyEvent.cs</Link>
292+
</Compile>
287293
<Compile Include="..\OptimizelySDK\OptlyConfig\OptimizelyExperiment.cs">
288294
<Link>OptlyConfig\OptimizelyExperiment.cs</Link>
289295
</Compile>
296+
<Compile Include="..\OptimizelySDK\OptlyConfig\OptimizelyAudience.cs">
297+
<Link>OptlyConfig\OptimizelyAudience.cs</Link>
298+
</Compile>
290299
<Compile Include="..\OptimizelySDK\OptlyConfig\OptimizelyFeature.cs">
291300
<Link>OptlyConfig\OptimizelyFeature.cs</Link>
292301
</Compile>

OptimizelySDK.Net40/OptimizelySDK.Net40.csproj

+9
Original file line numberDiff line numberDiff line change
@@ -300,6 +300,12 @@
300300
</Compile>
301301
<Compile Include="..\OptimizelySDK\OptlyConfig\OptimizelyConfig.cs">
302302
<Link>OptlyConfig\OptimizelyConfig.cs</Link>
303+
</Compile>
304+
<Compile Include="..\OptimizelySDK\OptlyConfig\OptimizelyAttribute.cs">
305+
<Link>OptlyConfig\OptimizelyAttribute.cs</Link>
306+
</Compile>
307+
<Compile Include="..\OptimizelySDK\OptlyConfig\OptimizelyEvent.cs">
308+
<Link>OptlyConfig\OptimizelyEvent.cs</Link>
303309
</Compile>
304310
<Compile Include="..\OptimizelySDK\OptlyConfig\OptimizelyExperiment.cs">
305311
<Link>OptlyConfig\OptimizelyExperiment.cs</Link>
@@ -312,6 +318,9 @@
312318
</Compile>
313319
<Compile Include="..\OptimizelySDK\OptlyConfig\OptimizelyVariation.cs">
314320
<Link>OptlyConfig\OptimizelyVariation.cs</Link>
321+
</Compile>
322+
<Compile Include="..\OptimizelySDK\OptlyConfig\OptimizelyAudience.cs">
323+
<Link>OptlyConfig\OptimizelyAudience.cs</Link>
315324
</Compile>
316325
<Compile Include="..\OptimizelySDK\OptlyConfig\OptimizelyConfigService.cs">
317326
<Link>OptlyConfig\OptimizelyConfigService.cs</Link>

OptimizelySDK.NetStandard16/OptimizelySDK.NetStandard16.csproj

+3
Original file line numberDiff line numberDiff line change
@@ -82,10 +82,13 @@
8282
<Compile Include="..\OptimizelySDK\Config\PollingProjectConfigManager.cs" />
8383
<Compile Include="..\OptimizelySDK\Config\HttpProjectConfigManager.cs" />
8484
<Compile Include="..\OptimizelySDK\OptlyConfig\OptimizelyConfig.cs" />
85+
<Compile Include="..\OptimizelySDK\OptlyConfig\OptimizelyAttribute.cs" />
86+
<Compile Include="..\OptimizelySDK\OptlyConfig\OptimizelyEvent.cs" />
8587
<Compile Include="..\OptimizelySDK\OptlyConfig\OptimizelyExperiment.cs" />
8688
<Compile Include="..\OptimizelySDK\OptlyConfig\OptimizelyFeature.cs" />
8789
<Compile Include="..\OptimizelySDK\OptlyConfig\OptimizelyVariable.cs" />
8890
<Compile Include="..\OptimizelySDK\OptlyConfig\OptimizelyVariation.cs" />
91+
<Compile Include="..\OptimizelySDK\OptlyConfig\OptimizelyAudience.cs" />
8992
<Compile Include="..\OptimizelySDK\OptlyConfig\OptimizelyConfigService.cs" />
9093
<Compile Include="..\OptimizelySDK\OptlyConfig\IOptimizelyConfigManager.cs" />
9194
<Compile Include="..\OptimizelySDK\OptimizelyDecisions\DecisionMessage.cs" />

OptimizelySDK.NetStandard20/OptimizelySDK.NetStandard20.csproj

+9
Original file line numberDiff line numberDiff line change
@@ -258,9 +258,15 @@
258258
</Compile>
259259
<Compile Include="..\OptimizelySDK\Event\EventProcessor.cs">
260260
<Link>Event\EventProcessor.cs</Link>
261+
</Compile>
262+
<Compile Include="..\OptimizelySDK\OptlyConfig\OptimizelyAttribute.cs">
263+
<Link>OptlyConfig\OptimizelyAttribute.cs</Link>
261264
</Compile>
262265
<Compile Include="..\OptimizelySDK\OptlyConfig\OptimizelyConfig.cs">
263266
<Link>OptlyConfig\OptimizelyConfig.cs</Link>
267+
</Compile>
268+
<Compile Include="..\OptimizelySDK\OptlyConfig\OptimizelyEvent.cs">
269+
<Link>OptlyConfig\OptimizelyEvent.cs</Link>
264270
</Compile>
265271
<Compile Include="..\OptimizelySDK\OptlyConfig\OptimizelyExperiment.cs">
266272
<Link>OptlyConfig\OptimizelyExperiment.cs</Link>
@@ -270,6 +276,9 @@
270276
</Compile>
271277
<Compile Include="..\OptimizelySDK\OptlyConfig\OptimizelyVariable.cs">
272278
<Link>OptlyConfig\OptimizelyVariable.cs</Link>
279+
</Compile>
280+
<Compile Include="..\OptimizelySDK\OptlyConfig\OptimizelyAudience.cs">
281+
<Link>OptlyConfig\OptimizelyAudience.cs</Link>
273282
</Compile>
274283
<Compile Include="..\OptimizelySDK\OptlyConfig\OptimizelyVariation.cs">
275284
<Link>OptlyConfig\OptimizelyVariation.cs</Link>

OptimizelySDK.Tests/OptimizelyConfigTests/OptimizelyConfigTest.cs

+308-61
Large diffs are not rendered by default.

OptimizelySDK.Tests/OptimizelySDK.Tests.csproj

+3
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@
7878
<Compile Include="DecisionServiceTest.cs" />
7979
<Compile Include="DefaultErrorHandlerTest.cs" />
8080
<Compile Include="EventTests\EventProcessorProps.cs" />
81+
<Compile Include="OptimizelyConfigTests\OptimizelyConfigTest.cs" />
8182
<Compile Include="OptimizelyDecisions\OptimizelyDecisionTest.cs" />
8283
<Compile Include="OptimizelyJSONTest.cs" />
8384
<Compile Include="EventTests\BatchEventProcessorTest.cs" />
@@ -123,6 +124,8 @@
123124
<EmbeddedResource Include="simple_ab_experiments.json" />
124125
<EmbeddedResource Include="EmptyRolloutRule.json" />
125126
<EmbeddedResource Include="emptydatafile.json" />
127+
<EmbeddedResource Include="similar_exp_keys.json" />
128+
<EmbeddedResource Include="similar_rule_keys_bucketing.json" />
126129
</ItemGroup>
127130
<ItemGroup>
128131
<ProjectReference Include="..\OptimizelySDK\OptimizelySDK.csproj">

OptimizelySDK.Tests/Utils/TestData.cs

+14
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ public class TestData
2929
private static string typedAudienceDatafile = null;
3030
private static string emptyRolloutDatafile = null;
3131
private static string emptyDatafile = null;
32+
private static string duplicateExpKeysDatafile = null;
33+
private static string duplicateRuleKeysDatafile = null;
3234

3335
public static string Datafile
3436
{
@@ -38,6 +40,18 @@ public static string Datafile
3840
}
3941
}
4042

43+
public static string DuplicateExpKeysDatafile {
44+
get {
45+
return duplicateExpKeysDatafile ?? (duplicateExpKeysDatafile = LoadJsonData("similar_exp_keys.json"));
46+
}
47+
}
48+
49+
public static string DuplicateRuleKeysDatafile {
50+
get {
51+
return duplicateRuleKeysDatafile ?? (duplicateRuleKeysDatafile = LoadJsonData("similar_rule_keys_bucketing.json"));
52+
}
53+
}
54+
4155
public static string SimpleABExperimentsDatafile
4256
{
4357
get
+125
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
{
2+
"version": "4",
3+
"rollouts": [],
4+
"typedAudiences": [
5+
{
6+
"id": "20415611520",
7+
"conditions": [
8+
"and",
9+
[
10+
"or",
11+
[
12+
"or",
13+
{
14+
"value": true,
15+
"type": "custom_attribute",
16+
"name": "hiddenLiveEnabled",
17+
"match": "exact"
18+
}
19+
]
20+
]
21+
],
22+
"name": "test1"
23+
},
24+
{
25+
"id": "20406066925",
26+
"conditions": [
27+
"and",
28+
[
29+
"or",
30+
[
31+
"or",
32+
{
33+
"value": false,
34+
"type": "custom_attribute",
35+
"name": "hiddenLiveEnabled",
36+
"match": "exact"
37+
}
38+
]
39+
]
40+
],
41+
"name": "test2"
42+
}
43+
],
44+
"anonymizeIP": true,
45+
"projectId": "20430981610",
46+
"variables": [],
47+
"featureFlags": [
48+
{
49+
"experimentIds": ["9300000007569"],
50+
"rolloutId": "",
51+
"variables": [],
52+
"id": "3045",
53+
"key": "flag1"
54+
},
55+
{
56+
"experimentIds": ["9300000007573"],
57+
"rolloutId": "",
58+
"variables": [],
59+
"id": "3046",
60+
"key": "flag2"
61+
}
62+
],
63+
"experiments": [
64+
{
65+
"status": "Running",
66+
"audienceConditions": ["or", "20415611520"],
67+
"audienceIds": ["20415611520"],
68+
"variations": [
69+
{
70+
"variables": [],
71+
"id": "8045",
72+
"key": "variation1",
73+
"featureEnabled": true
74+
}
75+
],
76+
"forcedVariations": {},
77+
"key": "targeted_delivery",
78+
"layerId": "9300000007569",
79+
"trafficAllocation": [{ "entityId": "8045", "endOfRange": 10000 }],
80+
"id": "9300000007569"
81+
},
82+
{
83+
"status": "Running",
84+
"audienceConditions": ["or", "20406066925"],
85+
"audienceIds": ["20406066925"],
86+
"variations": [
87+
{
88+
"variables": [],
89+
"id": "8048",
90+
"key": "variation2",
91+
"featureEnabled": true
92+
}
93+
],
94+
"forcedVariations": {},
95+
"key": "targeted_delivery",
96+
"layerId": "9300000007573",
97+
"trafficAllocation": [{ "entityId": "8048", "endOfRange": 10000 }],
98+
"id": "9300000007573"
99+
}
100+
],
101+
"audiences": [
102+
{
103+
"id": "20415611520",
104+
"conditions": "[\"or\", {\"match\": \"exact\", \"name\": \"$opt_dummy_attribute\", \"type\": \"custom_attribute\", \"value\": \"$opt_dummy_value\"}]",
105+
"name": "test1"
106+
},
107+
{
108+
"id": "20406066925",
109+
"conditions": "[\"or\", {\"match\": \"exact\", \"name\": \"$opt_dummy_attribute\", \"type\": \"custom_attribute\", \"value\": \"$opt_dummy_value\"}]",
110+
"name": "test2"
111+
},
112+
{
113+
"conditions": "[\"or\", {\"match\": \"exact\", \"name\": \"$opt_dummy_attribute\", \"type\": \"custom_attribute\", \"value\": \"$opt_dummy_value\"}]",
114+
"id": "$opt_dummy_audience",
115+
"name": "Optimizely-Generated Audience for Backwards Compatibility"
116+
}
117+
],
118+
"groups": [],
119+
"attributes": [{ "id": "20408641883", "key": "hiddenLiveEnabled" }],
120+
"botFiltering": false,
121+
"accountId": "17882702980",
122+
"events": [],
123+
"revision": "25",
124+
"sendFlagDecisions": true
125+
}

0 commit comments

Comments
 (0)