8000 feat: Integrated ODPManager with UserContext and Optimizely client by mikechu-optimizely · Pull Request #323 · optimizely/csharp-sdk · GitHub
[go: up one dir, main page]

Skip to content

feat: Integrated ODPManager with UserContext and Optimizely client #323

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 69 commits into from
Feb 14, 2023
Merged
Changes from 1 commit
Commits
Show all changes
69 commits
Select commit Hold shift + click to select a range
57b6927
Include ODP Manager instantiation in Optimizely.cs
mikechu-optimizely Dec 8, 2022
3f27cfe
Add FetchQualifiedSegments to Optimizely.cs
mikechu-optimizely Dec 8, 2022
040138c
Add FetchQualifiedSegments to UserContext
mikechu-optimizely Dec 8, 2022
bf9005a
Add IdentifyUser, fetch segments callback, & docs
mikechu-optimizely Dec 9, 2022
d58a5a9
WIP existing test fixes
mikechu-optimizely Dec 9, 2022
65512ac
Fix legacy test (mock) constructors
mikechu-optimizely Dec 9, 2022
6e498d8
Add SendOdpEvent to Optimizely
mikechu-optimizely Dec 12, 2022
e7579cf
WIP Init OdpManager
mikechu-optimizely Dec 13, 2022
9a487bc
WIP Add OptimizelySdkSettings & fix some legacy tests
mikechu-optimizely Dec 14, 2022
3c8fc1c
WIP fixes
mikechu-optimizely Dec 14, 2022
0a79a42
Remove early UpdateOdpSettings
mikechu-optimizely Dec 15, 2022
0212708
Add internal accessor for ProjectConfig Segments
mikechu-optimizely Dec 15, 2022
d99e2cb
Linter fixes
mikechu-optimizely Dec 15, 2022
3f29686
Preprocessing conditional compilation directives
mikechu-optimizely Dec 15, 2022
002b115
Add Segments array to ProjectConfig
mikechu-optimizely Dec 15, 2022
4edb545
Lint corrections
mikechu-optimizely Dec 15, 2022
e4fbd0d
More linter fixes
mikechu-optimizely Dec 15, 2022
2f15f8d
WIP PR review changes
mikechu-optimizely Dec 15, 2022
19bac38
Lint fix
mikechu-optimizely Dec 15, 2022
bc75c20
Lint fix
mikechu-optimizely Dec 16, 2022
3aa85d5
Add async FetchQualifiedSegments
mikechu-optimizely Dec 16, 2022
6e818b9
WIP parse TypedAudience to ODP Segments
mikechu-optimizely Dec 16, 2022
4a0deea
WIP parsing Segments
mikechu-optimizely Dec 20, 2022
06f4a6a
More ODP test datafile more scenarios
mikechu-optimizely Dec 21, 2022
e7fec76
Revert IMultipleConditions concept
mikechu-optimizely Dec 21, 2022
dd16f7c
Correct Segments from datafile
mikechu-optimizely Dec 21, 2022
de7c5aa
Lint fix
mikechu-optimizely Dec 21, 2022
00260a4
Add segment unit tests
mikechu-optimizely Dec 21, 2022
519ee78
WIP satisfying legacy tests
mikechu-optimizely Dec 21, 2022
516cff2
Remove Ignore from legacy tests
mikechu-optimizely Dec 22, 2022
3b00476
Finalize SetupOdp; add Dispose to OptimizelyUserContext
mikechu-optimizely Dec 27, 2022
3eaf48f
Add missing preprocessing conditions
mikechu-optimizely Dec 27, 2022
e132807
Fix linting
mikechu-optimizely Dec 27, 2022
0aad28c
PR code review updates
mikechu-optimizely Jan 3, 2023
3dde070
Lint fixes
mikechu-optimizely Jan 3, 2023
c68eea9
feat: Fix NotificationCenter Issue for ODPManager (#324)
mikechu-optimizely Jan 18, 2023
5604d6d
Lint fixes + Copyright year updates
mikechu-optimizely Jan 18, 2023
3903532
Lint fix PollingProjectConfigManager
mikechu-optimizely Jan 18, 2023
0d7da83
Trying to fix TestPollingConfigManagerBlocksWhenProjectConfigIsNotPro…
mikechu-optimizely Jan 18, 2023
27d30e5
Another attempt to figure out TestPollingConfigManagerBlocksWhenProje…
mikechu-optimizely Jan 18, 2023
52451ca
Update OptimizelySDK/Config/PollingProjectConfigManager.cs
mikechu-optimizely Jan 20, 2023
9f2db6e
Update OptimizelySDK/Config/HttpProjectConfigManager.cs
mikechu-optimizely Jan 20, 2023
c5a3ead
Update OptimizelySDK/Config/FallbackProjectConfigManager.cs
mikechu-optimizely Jan 20, 2023
c273a4b
Update OptimizelySDK/Config/FallbackProjectConfigManager.cs
mikechu-optimizely Jan 20, 2023
6a4a044
Implement a NoOpOdpManager
mikechu-optimizely Jan 20, 2023
b4ba4b0
Remove configurable batch size for OdpEventManager
mikechu-optimizely Jan 20, 2023
ca207f0
Fix lint (Mike not happy)
mikechu-optimizely Jan 20, 2023
8053e44
OMG Linter needs config
mikechu-optimizely Jan 20, 2023
361511f
Split condition for UpdateSettings & NotificationCenterRegistry add
mikechu-optimizely Jan 20, 2023
4e5b652
Remove optional chaining
mikechu-optimizely Jan 20, 2023
7ea0856
PR review changes
mikechu-optimizely Jan 23, 2023
016680b
Fix InternalsVisibleTo & use internal for testing
mikechu-optimizely Jan 23, 2023
0206a74
PR change requests
mikechu-optimizely Jan 23, 2023
50d1a96
Add unit test for defaults from OdpManager & below
mikechu-optimizely Jan 23, 2023
f61d05b
Remove NoOpOdpManager & default OdpManager instantiation
mikechu-optimizely Jan 23, 2023
47562aa
Lint fixes
mikechu-optimizely Jan 23, 2023
1bb4b1c
Allow signed + assigned friend assemblies
mikechu-optimizely Jan 23, 2023
a05a49c
Use pubkey of OptimizelySDK.Tests
mikechu-optimizely Jan 23, 2023
b540978
Testing InternalsVisibleTo in csproj
mikechu-optimizely Jan 23, 2023
8460538
More testing signed assems
mikechu-optimizely Jan 23, 2023
4e35a66
WIP fix InternalsVisibleTo with Release build
mikechu-optimizely Jan 24, 2023
4653690
Require providing SDK key in HttpProjectConfigManager constructor
mikechu-optimizely Jan 24, 2023
c6c86ae
Fix: Some suggested changes related to ODP (#325)
mnoman09 Jan 25, 2023
97678de
Merge fixes + lint
mikechu-optimiz 8000 ely Jan 25, 2023
5827136
Lint fixes
mikechu-optimizely Jan 25, 2023
90c75e6
Build fix and lint
mikechu-optimizely Jan 25, 2023
d886133
PR change requests
mikechu-optimizely Jan 31, 2023
597cb49
Lint fix
mikechu-optimizely Jan 31, 2023
99a42d8
Fix: ODP Event manager not consistent in triggering events. (#326)
mnoman09 Feb 13, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Merge fixes + lint
  • Loading branch information
mikechu-optimizely committed Jan 25, 2023
commit 97678de94d78e44a59a95f23561065ea79678869
27 changes: 8 additions & 19 deletions OptimizelySDK.Tests/OdpTests/OdpSegmentManagerTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -36,11 +36,7 @@ public class OdpSegmentManagerTest

private static readonly string expectedCacheKey = $"fs_user_id-$-{FS_USER_ID}";

private static readonly List<string> segmentsToCheck = new List<string>
{
"segment1",
"segment2",
};
private static readonly List<string> segmentsToCheck = new List<string> { "segment1", "segment2", };

private OdpConfig _odpConfig;
private Mock<IOdpSegmentApiManager> _mockApiManager;
Expand All @@ -64,11 +60,10 @@ public void Setup()
public void ShouldFetchSegmentsOnCacheMiss()
{
var keyCollector = new List<string>();
_mockCache.Setup(c => c.Lookup(Capture.In(keyCollector))).
Returns(default(List<string>));
_mockCache.Setup(c => c.Lookup(Capture.In(keyCollector))).Returns(default(List<string>));
_mockApiManager.Setup(a => a.FetchSegments(It.IsAny<string>(), It.IsAny<string>(),
It.IsAny<OdpUserKeyType>(), It.IsAny<string>(), It.IsAny<List<string>>())).
Returns(segmentsToCheck.ToArray());
It.IsAny<OdpUserKeyType>(), It.IsAny<string>(), It.IsAny<List<string>>()))
.Returns(segmentsToCheck.ToArray());
var manager = new OdpSegmentManager(_mockApiManager.Object, _mockCache.Object,
_mockLogger.Object);
manager.UpdateSettings(_odpConfig);
Expand Down Expand Up @@ -124,8 +119,8 @@ public void ShouldHandleFetchSegmentsWithError()
{
// OdpSegmentApiManager.FetchSegments() return null on any error
_mockApiManager.Setup(a => a.FetchSegments(It.IsAny<string>(), It.IsAny<string>(),
It.IsAny<OdpUserKeyType>(), It.IsAny<string>(), It.IsAny<List<string>>())).
Returns(null as string[]);
It.IsAny<OdpUserKeyType>(), It.IsAny<string>(), It.IsAny<List<string>>()))
.Returns(null as string[]);
var manager = new OdpSegmentManager(_mockApiManager.Object, _mockCache.Object,
_mockLogger.Object);
manager.UpdateSettings(_odpConfig);
Expand Down Expand Up @@ -183,10 +178,7 @@ public void ShouldIgnoreCache()
_mockLogger.Object);
manager.UpdateSettings(_odpConfig);

manager.FetchQualifiedSegments(FS_USER_ID, new List<OdpSegmentOption>
{
OdpSegmentOption.IgnoreCache,
});
manager.FetchQualifiedSegments(FS_USER_ID, new List<OdpSegmentOption> { OdpSegmentOption.IGNORE_CACHE, });

_mockCache.Verify(c => c.Reset(), Times.Never);
_mockCache.Verify(c => c.Lookup(It.IsAny<string>()), Times.Never);
Expand All @@ -204,10 +196,7 @@ public void ShouldResetCache()
_mockLogger.Object);
manager.UpdateSettings(_odpConfig);

manager.FetchQualifiedSegments(FS_USER_ID, new List<OdpSegmentOption>
{
OdpSegmentOption.ResetCache,
});
manager.FetchQualifiedSegments(FS_USER_ID, new List<OdpSegmentOption> { OdpSegmentOption.RESET_CACHE, });

_mockCache.Verify(c => c.Reset(), Times.Once);
_mockCache.Verify(c => c.Lookup(It.IsAny<string>()), Times.Once);
Expand Down
0