Skip to content

Commit 7d1544f

Browse files
committed
more tests for cloning
1 parent 9ed7bc6 commit 7d1544f

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

Tests/OptimizelyTests-Common/OptimizelyUserContextTests_ForcedDecisions.swift

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -427,6 +427,9 @@ class OptimizelyUserContextTests_ForcedDecisions: XCTestCase {
427427

428428
func testClone() {
429429
let user = optimizely.createUserContext(userId: kUserId, attributes: ["country": "us"])
430+
431+
// clone with empty ForcedDecisions
432+
430433
guard let user2 = user.clone else {
431434
XCTFail()
432435
return
@@ -435,6 +438,8 @@ class OptimizelyUserContextTests_ForcedDecisions: XCTestCase {
435438
XCTAssertEqual(user2.attributes["country"] as? String, "us")
436439
XCTAssertNil(user2.forcedDecisions)
437440

441+
// clone with non-empty ForcedDecisions
442+
438443
_ = user.setForcedDecision(flagKey: "a", variationKey: "b")
439444
_ = user.setForcedDecision(flagKey: "a", ruleKey: "c", variationKey: "d")
440445

@@ -448,6 +453,12 @@ class OptimizelyUserContextTests_ForcedDecisions: XCTestCase {
448453
XCTAssertEqual(user3.getForcedDecision(flagKey: "a"), "b")
449454
XCTAssertEqual(user3.getForcedDecision(flagKey:"a", ruleKey: "c"), "d")
450455
XCTAssertNil(user3.getForcedDecision(flagKey:"x"))
456+
457+
// clone should have a separate copy for FocedDecisions
458+
459+
_ = user.setForcedDecision(flagKey: "a", ruleKey: "new-rk", variationKey: "new-vk")
460+
XCTAssertEqual(user.getForcedDecision(flagKey: "a", ruleKey: "new-rk"), "new-vk")
461+
XCTAssertNil(user3.getForcedDecision(flagKey: "a", ruleKey: "new-rk"))
451462
}
452463

453464
}

0 commit comments

Comments
 (0)