@@ -17,7 +17,7 @@ class MParticleTestsSwift: XCTestCase {
1717 override func setUp( ) {
1818 super. setUp ( )
1919
20- mparticle = MParticle . sharedInstance ( )
20+ mparticle = MParticle ( )
2121 mparticle. logLevel = . verbose
2222 mparticle. customLogger = customLogger
2323 listenerController = MPListenerControllerMock ( )
@@ -778,4 +778,111 @@ class MParticleTestsSwift: XCTestCase {
778778 XCTAssertNil ( kitContainer. forwardSDKCallParametersParam)
779779 XCTAssertNil ( kitContainer. forwardSDKCallUserInfoParam)
780780 }
781+
782+ func testIndentityReturnsTheSameObject( ) {
783+ let identity = mparticle. identity
784+ XCTAssertTrue ( identity === mparticle. identity)
785+ }
786+
787+ func testRoktReturnsTheSameObject( ) {
788+ let rokt = mparticle. rokt
789+ XCTAssertTrue ( rokt === mparticle. rokt)
790+ }
791+
792+ func testSessionTimeoutReturnsValueFromBackendController( ) {
793+ let backendController = MPBackendControllerMock ( )
794+ mparticle. backendController = backendController
795+ mparticle. backendController. sessionTimeout = 100
796+ XCTAssertEqual ( mparticle. sessionTimeout, 100 )
797+ }
798+
799+ func testUniqueIdentifierRwturnedFromStateMachine( ) {
800+ let stateMachine = MPStateMachineMock ( )
801+ stateMachine. consumerInfo. uniqueIdentifier = " test "
802+ mparticle. stateMachine = stateMachine
803+ XCTAssertEqual ( mparticle. uniqueIdentifier, " test " )
804+ }
805+
806+ func testSetUploadIntervalChangeValueInBackendControllerWhenIntervalGreaterThenOne( ) {
807+ let backendController = MPBackendControllerMock ( )
808+ mparticle. backendController = backendController
809+ mparticle. setUploadInterval ( 3 )
810+ XCTAssertEqual ( backendController. uploadInterval, 3 )
811+ }
812+
813+ func testSetUploadIntervalNotChangeValueInBackendControllerWhenIntervalLessThenOne( ) {
814+ let backendController = MPBackendControllerMock ( )
815+ mparticle. backendController = backendController
816+ mparticle. setUploadInterval ( 0.1 )
817+ XCTAssertEqual ( backendController. uploadInterval, 0.0 )
818+ }
819+
820+ func testUploadIntervalGetFromBackendController( ) {
821+ let backendController = MPBackendControllerMock ( )
822+ mparticle. backendController = backendController
823+ backendController. uploadInterval = 100
824+ XCTAssertEqual ( mparticle. uploadInterval, 100 )
825+ }
826+
827+ func testUserAttributesForUserIdRequestDataFromBackendController( ) {
828+ let backendController = MPBackendControllerMock ( )
829+ mparticle. backendController = backendController
830+
831+ backendController. userAttributesReturnValue = [ " key " : " value " ]
832+ let dictionary = mparticle. userAttributes ( forUserId: 1 )
833+ XCTAssertEqual ( dictionary ? [ " key " ] as? String , " value " )
834+ XCTAssertTrue ( backendController. userAttributesCalled)
835+ XCTAssertEqual ( backendController. userAttributesUserIdParam, 1 )
836+ }
837+
838+ func testConfigureWithOptionsNoSettings( ) {
839+ let backendController = MPBackendControllerMock ( )
840+ let settingsProvider = SettingsProviderMock ( )
841+ mparticle. settingsProvider = settingsProvider
842+ mparticle. backendController = backendController
843+ mparticle. configure ( with: . init( ) )
844+ XCTAssertEqual ( backendController. sessionTimeout, 0.0 )
845+ XCTAssertEqual ( backendController. uploadInterval, 0.0 )
846+ XCTAssertNil ( mparticle. customUserAgent)
847+ XCTAssertTrue ( mparticle. collectUserAgent)
848+ XCTAssertTrue ( mparticle. trackNotifications)
849+ #if os(iOS)
850+ #if !MPARTICLE_LOCATION_DISABLE
851+ XCTAssertNil ( listenerController. onAPICalledApiName)
852+ #endif
853+ #endif
854+ }
855+
856+ func testConfigureWithOptionsWithSettingsAndOptionNotSet( ) {
857+ let backendController = MPBackendControllerMock ( )
858+ let settingsProvider = SettingsProviderMock ( )
859+ mparticle. settingsProvider = settingsProvider
860+ settingsProvider. configSettings = [
861+ " session_timeout " : 100 ,
862+ " upload_interval " : 50 ,
863+ " custom_user_agent " : " agent " ,
864+ " collect_user_agent " : false ,
865+ " track_notifications " : false ,
866+ " enable_location_tracking " : true
867+ ]
868+ mparticle. backendController = backendController
869+ let options = MParticleOptions ( )
870+ options. isSessionTimeoutSet = false
871+ options. isUploadIntervalSet = false
872+ options. isCollectUserAgentSet = false
873+ options. isCollectUserAgentSet = false
874+ options. isTrackNotificationsSet = false
875+ mparticle. configure ( with: . init( ) )
876+ XCTAssertEqual ( backendController. sessionTimeout, 100.0 )
877+ XCTAssertEqual ( backendController. uploadInterval, 50.0 )
878+ XCTAssertEqual ( mparticle. customUserAgent, " agent " )
879+ XCTAssertFalse ( mparticle. collectUserAgent)
880+ XCTAssertFalse ( mparticle. trackNotifications)
881+
882+ #if os(iOS)
883+ #if !MPARTICLE_LOCATION_DISABLE
884+ XCTAssertEqual ( listenerController. onAPICalledApiName? . description, " beginLocationTracking:minDistance:authorizationRequest: " )
885+ #endif
886+ #endif
887+ }
781888}
0 commit comments