11import XCTest
22@testable import splitio_ios
3+ @testable import Split
34
45class SplitClientConfigHelperTests : XCTestCase {
56
67 func testConfigValuesAreMappedCorrectly( ) throws {
78 let configValues : [ String : Any ? ] = [ " featuresRefreshRate " : 80000 ,
8- " segmentsRefreshRate " : 70000 ,
9- " impressionsRefreshRate " : 60000 ,
10- " telemetryRefreshRate " : 2000 ,
11- " eventsQueueSize " : 3999 ,
12- " impressionsQueueSize " : 2999 ,
13- " eventFlushInterval " : 40000 ,
14- " eventsPerPush " : 5000 ,
15- " trafficType " : " none " ,
16- " connectionTimeOut " : 10 ,
17- " readTimeout " : 25 ,
18- " disableLabels " : true ,
19- " enableDebug " : true ,
20- " proxyHost " : " https://proxy " ,
21- " ready " : 25 ,
22- " streamingEnabled " : true ,
23- " persistentAttributesEnabled " : true ,
24- " syncConfig " : [ " syncConfigNames " : [ " split1 " , " split2 " ] , " syncConfigPrefixes " : [ " split_ " , " my_split_ " ] ] ]
9+ " segmentsRefreshRate " : 70000 ,
10+ " impressionsRefreshRate " : 60000 ,
11+ " telemetryRefreshRate " : 2000 ,
12+ " eventsQueueSize " : 3999 ,
13+ " impressionsQueueSize " : 2999 ,
14+ " eventFlushInterval " : 40000 ,
15+ " eventsPerPush " : 5000 ,
16+ " trafficType " : " none " ,
17+ " connectionTimeOut " : 10 ,
18+ " readTimeout " : 25 ,
19+ " disableLabels " : true ,
20+ " proxyHost " : " https://proxy " ,
21+ " ready " : 25 ,
22+ " streamingEnabled " : true ,
23+ " persistentAttributesEnabled " : true ,
24+ " syncConfig " : [ " syncConfigNames " : [ " split1 " , " split2 " ] , " syncConfigPrefixes " : [ " split_ " , " my_split_ " ] ] ,
25+ " impressionsMode " : " none " ,
26+ " syncEnabled " : false ,
27+ " userConsent " : " declined " ,
28+ " encryptionEnabled " : true ,
29+ " logLevel " : " verbose "
30+ ]
2531
2632 let splitClientConfig = SplitClientConfigHelper . fromMap ( configurationMap: configValues, impressionListener: nil )
2733
@@ -34,8 +40,51 @@ class SplitClientConfigHelperTests: XCTestCase {
3440 XCTAssert ( 40000 == splitClientConfig. eventsPushRate)
3541 XCTAssert ( 5000 == splitClientConfig. eventsPerPush)
3642 XCTAssert ( " none " == splitClientConfig. trafficType)
37- XCTAssert ( splitClientConfig. isDebugModeEnabled)
3843 XCTAssert ( splitClientConfig. streamingEnabled)
3944 XCTAssert ( splitClientConfig. persistentAttributesEnabled)
45+ XCTAssertEqual ( " NONE " , splitClientConfig. impressionsMode)
46+ XCTAssertFalse ( splitClientConfig. syncEnabled)
47+ XCTAssertEqual ( . declined, splitClientConfig. userConsent)
48+ XCTAssertTrue ( splitClientConfig. encryptionEnabled)
49+ XCTAssertEqual ( . verbose, splitClientConfig. logLevel)
50+ }
51+
52+ func testEnableDebugLogLevelIsMappedCorrectly( ) {
53+ let configValues : [ String : Any ] = [ " enableDebug " : true ]
54+ let splitClientConfig = SplitClientConfigHelper . fromMap ( configurationMap: configValues, impressionListener: nil )
55+ XCTAssertEqual ( SplitLogLevel . debug, splitClientConfig. logLevel)
56+ }
57+
58+ func testLogLevelsAreMappedCorrectly( ) {
59+ let logLevels = [ " verbose " , " debug " , " info " , " warning " , " error " , " none " ]
60+ let expectedLogLevels : [ SplitLogLevel ] = [ . verbose, . debug, . info, . warning, . error, . none]
61+
62+ for (index, logLevel) in logLevels. enumerated ( ) {
63+ let configValues : [ String : Any ] = [ " logLevel " : logLevel]
64+ let config = SplitClientConfigHelper . fromMap ( configurationMap: configValues, impressionListener: nil )
65+ XCTAssertEqual ( expectedLogLevels [ index] , config. logLevel)
66+ }
67+ }
68+
69+ func testUserConsentIsMappedCorrectly( ) {
70+ let userConsents = [ " granted " , " unknown " , " declined " , " any " ]
71+ let expectedUserConsents : [ UserConsent ] = [ . granted, . unknown, . declined, . granted]
72+
73+ for (index, userConsent) in userConsents. enumerated ( ) {
74+ let configValues : [ String : Any ] = [ " userConsent " : userConsent]
75+ let config = SplitClientConfigHelper . fromMap ( configurationMap: configValues, impressionListener: nil )
76+ XCTAssertEqual ( expectedUserConsents [ index] , config. userConsent)
77+ }
78+ }
79+
80+ func testImpressionsModeValuesAreMappedCorrectly( ) {
81+ let impressionsModes = [ " debug " , " none " , " optimized " ]
82+ let expectedImpressionsModes : [ ImpressionsMode ] = [ . debug, . none, . optimized]
83+
84+ for (index, impressionsMode) in impressionsModes. enumerated ( ) {
85+ let configValues : [ String : Any ] = [ " impressionsMode " : impressionsMode]
86+ let config = SplitClientConfigHelper . fromMap ( configurationMap: configValues, impressionListener: nil )
87+ XCTAssertEqual ( expectedImpressionsModes [ index] . rawValue, config. impressionsMode)
88+ }
4089 }
4190}
0 commit comments