|
1 | 1 | /*
|
2 |
| - * Copyright 2017-2019, Optimizely |
| 2 | + * Copyright 2017-2020, Optimizely |
3 | 3 | *
|
4 | 4 | * Licensed under the Apache License, Version 2.0 (the "License");
|
5 | 5 | * you may not use this file except in compliance with the License.
|
|
32 | 32 | using OptimizelySDK.Config;
|
33 | 33 | using OptimizelySDK.Event.Entity;
|
34 | 34 | using OptimizelySDK.OptlyConfig;
|
| 35 | +using System.Globalization; |
| 36 | +using System.Threading; |
35 | 37 |
|
36 | 38 | namespace OptimizelySDK.Tests
|
37 | 39 | {
|
@@ -1175,6 +1177,74 @@ public void TestGetFeatureVariableBooleanReturnsCorrectValue()
|
1175 | 1177 | Assert.Null(OptimizelyMock.Object.GetFeatureVariableBoolean(featureKey, variableKeyNull, TestUserId, null));
|
1176 | 1178 | }
|
1177 | 1179 |
|
| 1180 | + [Test] |
| 1181 | + public void TestGetFeatureVariableDoubleFRCulture() |
| 1182 | + { |
| 1183 | + SetCulture("en-US"); |
| 1184 | + var fallbackConfigManager = new FallbackProjectConfigManager(Config); |
| 1185 | + |
| 1186 | + var optimizely = new Optimizely(fallbackConfigManager); |
| 1187 | + |
| 1188 | + var doubleValue = optimizely.GetFeatureVariableDouble("double_single_variable_feature", "double_variable", "testUser1"); |
| 1189 | + |
| 1190 | + Assert.AreEqual(doubleValue, 14.99); |
| 1191 | + |
| 1192 | + SetCulture("fr-FR"); |
| 1193 | + var doubleValueFR = optimizely.GetFeatureVariableDouble("double_single_variable_feature", "double_variable", "testUser1"); |
| 1194 | + Assert.AreEqual(doubleValueFR, 14.99); |
| 1195 | + } |
| 1196 | + |
| 1197 | + [Test] |
| 1198 | + public void TestGetFeatureVariableIntegerFRCulture() |
| 1199 | + { |
| 1200 | + SetCulture("en-US"); |
| 1201 | + var fallbackConfigManager = new FallbackProjectConfigManager(Config); |
| 1202 | + |
| 1203 | + var optimizely = new Optimizely(fallbackConfigManager); |
| 1204 | + |
| 1205 | + var integerValue = optimizely.GetFeatureVariableInteger("integer_single_variable_feature", "integer_variable", "testUser1"); |
| 1206 | + |
| 1207 | + Assert.AreEqual(integerValue, 13); |
| 1208 | + |
| 1209 | + SetCulture("fr-FR"); |
| 1210 | + var integerValueFR = optimizely.GetFeatureVariableInteger("integer_single_variable_feature", "integer_variable", "testUser1"); |
| 1211 | + Assert.AreEqual(integerValueFR, 13); |
| 1212 | + } |
| 1213 | + |
| 1214 | + [Test] |
| 1215 | + public void TestGetFeatureVariableBooleanFRCulture() |
| 1216 | + { |
| 1217 | + SetCulture("en-US"); |
| 1218 | + var fallbackConfigManager = new FallbackProjectConfigManager(Config); |
| 1219 | + |
| 1220 | + var optimizely = new Optimizely(fallbackConfigManager); |
| 1221 | + |
| 1222 | + var booleanValue = optimizely.GetFeatureVariableBoolean("boolean_single_variable_feature", "boolean_variable", "testUser1"); |
| 1223 | + |
| 1224 | + Assert.AreEqual(booleanValue, false); |
| 1225 | + |
| 1226 | + SetCulture("fr-FR"); |
| 1227 | + var booleanValueFR = optimizely.GetFeatureVariableBoolean("boolean_single_variable_feature", "boolean_variable", "testUser1"); |
| 1228 | + Assert.AreEqual(booleanValueFR, false); |
| 1229 | + } |
| 1230 | + |
| 1231 | + [Test] |
| 1232 | + public void TestGetFeatureVariableStringFRCulture() |
| 1233 | + { |
| 1234 | + SetCulture("en-US"); |
| 1235 | + var fallbackConfigManager = new FallbackProjectConfigManager(Config); |
| 1236 | + |
| 1237 | + var optimizely = new Optimizely(fallbackConfigManager); |
| 1238 | + |
| 1239 | + var stringValue = optimizely.GetFeatureVariableString("string_single_variable_feature", "string_variable", "testUser1"); |
| 1240 | + |
| 1241 | + Assert.AreEqual(stringValue, "cta_1"); |
| 1242 | + |
| 1243 | + SetCulture("fr-FR"); |
| 1244 | + var stringValueFR = optimizely.GetFeatureVariableString("string_single_variable_feature", "string_variable", "testUser1"); |
| 1245 | + Assert.AreEqual(stringValueFR, "cta_1"); |
| 1246 | + } |
| 1247 | + |
1178 | 1248 | [Test]
|
1179 | 1249 | public void TestGetFeatureVariableDoubleReturnsCorrectValue()
|
1180 | 1250 | {
|
@@ -3426,5 +3496,15 @@ public void TestGetOptimizelyConfigNullConfig()
|
3426 | 3496 | }
|
3427 | 3497 |
|
3428 | 3498 | #endregion
|
| 3499 | + |
| 3500 | + |
| 3501 | + #region Test Culture |
| 3502 | + public static void SetCulture(string culture) |
| 3503 | + { |
| 3504 | + var ci1 = new CultureInfo(culture); |
| 3505 | + Thread.CurrentThread.CurrentCulture = ci1; |
| 3506 | + Thread.CurrentThread.CurrentUICulture = ci1; |
| 3507 | + } |
| 3508 | + #endregion |
3429 | 3509 | }
|
3430 | 3510 | }
|
0 commit comments