Skip to content

Commit 4fd3067

Browse files
authored
Feat: Adds Decide All, DecideForKeys and track event (#251)
- Added trackevent in OptimizelyUserContext - Added decide for keys api - Added decideall api - Added unit tests of decide, decideAll, DecideForKeys and trackEvent Apis.
1 parent dea90f6 commit 4fd3067

File tree

7 files changed

+700
-48
lines changed

7 files changed

+700
-48
lines changed

OptimizelySDK.Tests/EventTests/EventFactoryTest.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ public void TestCreateImpressionEventNoAttributes()
8888
{ "rule_key", "test_experiment" },
8989
{ "flag_key", "test_experiment" },
9090
{ "variation_key", "control" },
91-
{"enabled", false }
91+
{ "enabled", false }
9292
} }
9393
}
9494
}

OptimizelySDK.Tests/OptimizelyTest.cs

+12-8
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
using System.Globalization;
3636
using System.Threading;
3737
using OptimizelySDK.Tests.Utils;
38+
using OptimizelySDK.OptimizelyDecisions;
3839

3940
namespace OptimizelySDK.Tests
4041
{
@@ -98,7 +99,7 @@ public void Initialize()
9899
SkipJsonValidation = false,
99100
};
100101

101-
OptimizelyMock = new Mock<Optimizely>(TestData.Datafile, EventDispatcherMock.Object, LoggerMock.Object, ErrorHandlerMock.Object, null, false, null)
102+
OptimizelyMock = new Mock<Optimizely>(TestData.Datafile, EventDispatcherMock.Object, LoggerMock.Object, ErrorHandlerMock.Object, null, false, null, null)
102103
{
103104
CallBase = true
104105
};
@@ -166,6 +167,8 @@ private class OptimizelyHelper
166167
public bool SkipJsonValidation { get; set; }
167168
public EventProcessor EventProcessor { get; set; }
168169

170+
public OptimizelyDecideOption[] DefaultDecideOptions { get; set; }
171+
169172
public PrivateObject CreatePrivateOptimizely()
170173
{
171174
return new PrivateObject(typeof(Optimizely), ParameterTypes,
@@ -177,7 +180,8 @@ public PrivateObject CreatePrivateOptimizely()
177180
ErrorHandler,
178181
UserProfileService,
179182
SkipJsonValidation,
180-
EventProcessor
183+
EventProcessor,
184+
DefaultDecideOptions
181185
});
182186
}
183187
}
@@ -196,7 +200,7 @@ public void TestCreateUserContext()
196200
var optlyUserContext = Optimizely.CreateUserContext(TestUserId, attribute);
197201
Assert.AreEqual(TestUserId, optlyUserContext.UserId);
198202
Assert.AreEqual(Optimizely, optlyUserContext.Optimizely);
199-
Assert.AreEqual(attribute, optlyUserContext.UserAttributes);
203+
Assert.AreEqual(attribute, optlyUserContext.Attributes);
200204
}
201205

202206
[Test]
@@ -205,7 +209,7 @@ public void TestCreateUserContextWithoutAttributes()
205209
var optlyUserContext = Optimizely.CreateUserContext(TestUserId);
206210
Assert.AreEqual(TestUserId, optlyUserContext.UserId);
207211
Assert.AreEqual(Optimizely, optlyUserContext.Optimizely);
208-
Assert.IsTrue(optlyUserContext.UserAttributes.Count == 0);
212+
Assert.IsTrue(optlyUserContext.Attributes.Count == 0);
209213
}
210214

211215
[Test]
@@ -228,11 +232,11 @@ public void TestCreateUserContextMultipleAttribute()
228232

229233
Assert.AreEqual("userId1", optlyUserContext1.UserId);
230234
Assert.AreEqual(Optimizely, optlyUserContext1.Optimizely);
231-
Assert.AreEqual(attribute1, optlyUserContext1.UserAttributes);
235+
Assert.AreEqual(attribute1, optlyUserContext1.Attributes);
232236

233237
Assert.AreEqual("userId2", optlyUserContext2.UserId);
234238
Assert.AreEqual(Optimizely, optlyUserContext2.Optimizely);
235-
Assert.AreEqual(attribute2, optlyUserContext2.UserAttributes);
239+
Assert.AreEqual(attribute2, optlyUserContext2.Attributes);
236240
}
237241

238242
[Test]
@@ -247,7 +251,7 @@ public void TestChangeAttributeDoesNotEffectValues()
247251
var optlyUserContext = Optimizely.CreateUserContext(userId, attribute);
248252
Assert.AreEqual(TestUserId, optlyUserContext.UserId);
249253
Assert.AreEqual(Optimizely, optlyUserContext.Optimizely);
250-
Assert.AreEqual(attribute, optlyUserContext.UserAttributes);
254+
Assert.AreEqual(attribute, optlyUserContext.Attributes);
251255

252256
attribute = new UserAttributes
253257
{
@@ -258,7 +262,7 @@ public void TestChangeAttributeDoesNotEffectValues()
258262
userId = "InvalidUser";
259263
Assert.AreEqual("testUserId", optlyUserContext.UserId);
260264
Assert.AreEqual(Optimizely, optlyUserContext.Optimizely);
261-
Assert.AreNotEqual(attribute, optlyUserContext.UserAttributes);
265+
Assert.AreNotEqual(attribute, optlyUserContext.Attributes);
262266
}
263267

264268
#endregion

0 commit comments

Comments
 (0)