@@ -14,44 +14,88 @@ import XCTest
1414
1515final class MParticleErrorTests : MParticleTestBase {
1616
17+ // MARK: - Properties
18+
19+ var errorMessage = " error "
20+
21+ // MARK: - logErrorCallback
22+
1723 func test_logErrorCallback_logsMessage_whenSuccess( ) {
18- mparticle. logErrorCallback ( [ : ] , execStatus: . success, message: " error " )
19-
20- assertReceivedMessage ( " Logged error with message: error " )
24+ mparticle. logErrorCallback ( [ : ] , execStatus: . success, message: errorMessage)
25+ assertReceivedMessage ( " Logged error with message: \( errorMessage) " )
2126 }
2227
2328 func test_logErrorCallback_doesNotLog_whenFail( ) {
24- mparticle. logErrorCallback ( [ : ] , execStatus: . fail, message: " error " )
25-
29+ mparticle. logErrorCallback ( [ : ] , execStatus: . fail, message: errorMessage)
2630 XCTAssertNil ( receivedMessage)
2731 }
2832
33+ // MARK: - logExceptionCallback
34+
2935 func test_logExceptionCallback_logsDetails_whenSuccess( ) {
3036 mparticle. logExceptionCallback ( exception, execStatus: . success, message: " exception " , topmostContext: nil )
31-
3237 assertReceivedMessage ( " Logged exception name: exception, reason: Test, topmost context: (null) " )
3338 }
3439
3540 func test_logExceptionCallback_doesNotLog_whenFail( ) {
3641 mparticle. logExceptionCallback ( exception, execStatus: . fail, message: " exception " , topmostContext: nil )
37-
3842 XCTAssertNil ( receivedMessage)
3943 }
4044
45+ // MARK: - logCrashCallback
46+
4147 func test_logCrashCallback_logsMessage_whenSuccess( ) {
42- mparticle. logCrashCallback ( . success, message: " Message " )
43- assertReceivedMessage ( " Logged crash with message: Message " )
48+ mparticle. logCrashCallback ( . success, message: errorMessage )
49+ assertReceivedMessage ( " Logged crash with message: \( errorMessage ) " )
4450 }
4551
52+ // MARK: - logNetworkPerformanceCallback
53+
4654 func test_logNetworkPerformanceCallback_logsMessage_whenSuccess( ) {
4755 mparticle. logNetworkPerformanceCallback ( . success)
48-
4956 assertReceivedMessage ( " Logged network performance measurement " )
5057 }
5158
5259 func test_logNetworkPerformanceCallback_doesNotLog_whenFail( ) {
5360 mparticle. logNetworkPerformanceCallback ( . fail)
54-
5561 XCTAssertNil ( receivedMessage)
5662 }
63+
64+ // MARK: - logError
65+
66+ func test_logError_withoutEventInfo_invokesBackendWithNil( ) {
67+ mparticle. logError ( errorMessage)
68+
69+ XCTAssertTrue ( executor. executeOnMessageQueueAsync)
70+ listenerController. assertCalled ( #selector( mparticle. logError ( _: eventInfo: ) ) )
71+
72+ XCTAssertTrue ( backendController. logErrorCalled)
73+ XCTAssertNil ( backendController. logErrorExceptionParam)
74+ XCTAssertNil ( backendController. logErrorTopmostContextParam)
75+ XCTAssertNil ( backendController. logErrorEventInfoParam)
76+
77+ backendController. logErrorCompletionHandler ? ( errorMessage, . success)
78+ assertReceivedMessage ( " Logged error with message: \( errorMessage) " )
79+ }
80+
81+ func test_logError_withNilMessage_logsRequirementMessage( ) {
82+ errorMessage = " "
83+ mparticle. logError ( errorMessage, eventInfo: keyValueDict)
84+ assertReceivedMessage ( " 'message' is required for logError:eventInfo: " )
85+ }
86+
87+ func test_logError_withMessage_invokesBackend( ) {
88+ mparticle. logError ( errorMessage, eventInfo: keyValueDict)
89+
90+ XCTAssertTrue ( executor. executeOnMessageQueueAsync)
91+ listenerController. assertCalled ( #selector( mparticle. logError ( _: eventInfo: ) ) )
92+
93+ XCTAssertTrue ( backendController. logErrorCalled)
94+ XCTAssertNil ( backendController. logErrorExceptionParam)
95+ XCTAssertNil ( backendController. logErrorTopmostContextParam)
96+ XCTAssertEqual ( backendController. logErrorEventInfoParam as? [ String : String ] , keyValueDict)
97+
98+ backendController. logErrorCompletionHandler ? ( errorMessage, . success)
99+ assertReceivedMessage ( " Logged error with message: \( errorMessage) " )
100+ }
57101}
0 commit comments