@@ -224,7 +224,7 @@ class ReporterTests: InstanaTestCase {
224224
225225 // Then
226226 AssertTrue ( sendNotCalled)
227- AssertTrue ( resultError? . code == InstanaError . Code . offline. rawValue )
227+ AssertTrue ( resultError == InstanaError . offline)
228228 }
229229
230230 /// Send when coming back offline again (starting offline
@@ -259,7 +259,7 @@ class ReporterTests: InstanaTestCase {
259259
260260 // Then
261261 AssertTrue ( sendCalled == false )
262- AssertTrue ( resultError? . code == InstanaError . Code . offline. rawValue )
262+ AssertTrue ( resultError == InstanaError . offline)
263263
264264 // When coming back online
265265 networkUtility. update ( . wifi)
@@ -299,7 +299,7 @@ class ReporterTests: InstanaTestCase {
299299
300300 // Then
301301 AssertTrue ( sendNotCalled)
302- AssertTrue ( resultError? . code == InstanaError . Code . noWifiAvailable. rawValue )
302+ AssertTrue ( resultError == InstanaError . noWifiAvailable)
303303 }
304304
305305 /// Criteria:
@@ -379,7 +379,7 @@ class ReporterTests: InstanaTestCase {
379379
380380 // Then
381381 AssertTrue ( sendNotCalled)
382- AssertTrue ( resultError? . code == InstanaError . Code . noWifiAvailable. rawValue )
382+ AssertTrue ( resultError == InstanaError . noWifiAvailable)
383383 }
384384
385385 // MARK: Test suspending behavior on LOW Battery
@@ -410,7 +410,7 @@ class ReporterTests: InstanaTestCase {
410410
411411 // Then
412412 AssertTrue ( sendNotCalled)
413- AssertTrue ( resultError? . code == InstanaError . Code . lowBattery. rawValue )
413+ AssertTrue ( resultError == InstanaError . lowBattery)
414414 }
415415
416416 /// Criteria:
@@ -490,7 +490,7 @@ class ReporterTests: InstanaTestCase {
490490
491491 // Then
492492 AssertTrue ( didNOTSendReport)
493- AssertTrue ( resultError? . code == InstanaError . Code . lowBattery. rawValue )
493+ AssertTrue ( resultError == InstanaError . lowBattery)
494494 }
495495
496496 // MARK: Test suspending behavior on all (NO WIFI and low Battery)
@@ -521,7 +521,7 @@ class ReporterTests: InstanaTestCase {
521521
522522 // Then
523523 AssertTrue ( sendNotCalled)
524- AssertTrue ( resultError? . code == InstanaError . Code . noWifiAvailable. rawValue )
524+ AssertTrue ( resultError == InstanaError . noWifiAvailable)
525525 }
526526
527527 /// Criteria:
@@ -550,7 +550,7 @@ class ReporterTests: InstanaTestCase {
550550
551551 // Then
552552 AssertTrue ( sendNotCalled)
553- AssertTrue ( resultError? . code == InstanaError . Code . noWifiAvailable. rawValue )
553+ AssertTrue ( resultError == InstanaError . noWifiAvailable)
554554 }
555555
556556 /// Criteria:
@@ -579,7 +579,7 @@ class ReporterTests: InstanaTestCase {
579579
580580 // Then
581581 AssertTrue ( sendNotCalled)
582- AssertTrue ( resultError? . code == InstanaError . Code . lowBattery. rawValue )
582+ AssertTrue ( resultError == InstanaError . lowBattery)
583583 }
584584
585585 /// Criteria:
@@ -890,6 +890,56 @@ class ReporterTests: InstanaTestCase {
890890 AssertEqualAndNotNil ( reporter. queue. items. last? . bid, givenBeacon. id. uuidString)
891891 }
892892
893+ func test_remove_from_after_http_client_error( ) {
894+ // Given
895+ let beacon = HTTPBeacon . createMock ( )
896+ let mockQueue = MockInstanaPersistableQueue < CoreBeacon > ( identifier: " " , maxItems: 2 )
897+ let givenError = InstanaError . httpClientError ( 400 )
898+ let waitForSend = expectation ( description: " Delayed sending " )
899+ let reporter = Reporter ( session ( ) , batterySafeForNetworking: { true } , networkUtility: . wifi, queue: mockQueue) { _, completion in
900+ DispatchQueue . main. async {
901+ completion ( . failure( givenError) )
902+ }
903+ }
904+
905+ // When
906+ reporter. completionHandler. append { result in
907+ waitForSend. fulfill ( )
908+ }
909+ reporter. submit ( beacon)
910+ wait ( for: [ waitForSend] , timeout: 2.0 )
911+
912+ // Then
913+ AssertTrue ( reporter. queue. items. isEmpty)
914+ AssertTrue ( mockQueue. removedItems. count == 1 )
915+ AssertTrue ( mockQueue. removedItems. first? . bid == beacon. id. uuidString)
916+ }
917+
918+ func test_remove_from_after_queue_full( ) {
919+ // Given
920+ let beacon = HTTPBeacon . createMock ( )
921+ let mockQueue = MockInstanaPersistableQueue < CoreBeacon > ( identifier: " " , maxItems: 1 )
922+ let givenError = InstanaError . httpServerError ( 500 )
923+ let waitForSend = expectation ( description: " Delayed sending " )
924+ let reporter = Reporter ( session ( ) , batterySafeForNetworking: { true } , networkUtility: . wifi, queue: mockQueue) { _, completion in
925+ DispatchQueue . main. async {
926+ completion ( . failure( givenError) )
927+ }
928+ }
929+
930+ // When
931+ reporter. completionHandler. append { result in
932+ waitForSend. fulfill ( )
933+ }
934+ reporter. submit ( beacon)
935+ wait ( for: [ waitForSend] , timeout: 2.0 )
936+
937+ // Then
938+ AssertTrue ( reporter. queue. items. isEmpty)
939+ AssertTrue ( mockQueue. removedItems. count == 1 )
940+ AssertTrue ( mockQueue. removedItems. first? . bid == beacon. id. uuidString)
941+ }
942+
893943 func test_invalid_beacon_should_not_submitted( ) {
894944 // Given
895945 var shouldNotSubmitted = true
@@ -949,7 +999,7 @@ class ReporterTests: InstanaTestCase {
949999 wait ( for: [ waitForSend] , timeout: 10.0 )
9501000
9511001 // Then
952- AssertEqualAndNotZero ( resultError? . code ?? 0 , InstanaError . Code . invalidResponse. rawValue )
1002+ AssertTrue ( resultError == InstanaError . invalidResponse)
9531003 }
9541004
9551005 func test_submit_and_flush_shouldNotCause_RetainCycle( ) {
@@ -980,7 +1030,7 @@ class ReporterTests: InstanaTestCase {
9801030 let waitFor = expectation ( description: " Wait For " )
9811031 let reporter = Reporter ( session ( ) , batterySafeForNetworking: { true } , networkUtility: . wifi) { _, completion in
9821032 DispatchQueue . main. async {
983- completion ( . failure( InstanaError ( code : . invalidResponse, description : " SomeError " ) ) )
1033+ completion ( . failure( InstanaError . invalidResponse) )
9841034 }
9851035 }
9861036 let beacons : [ HTTPBeacon ] = ( 0 ..< reporter. queue. maxItems) . map { _ in HTTPBeacon . createMock ( ) }
@@ -1038,7 +1088,7 @@ extension ReporterTests {
10381088 // When
10391089 XCTAssertThrowsError ( try reporter. createBatchRequest ( from: corebeacons. asString) ) { error in
10401090 // Then
1041- XCTAssertEqual ( ( error as? InstanaError ) ? . code , InstanaError . Code . notAuthenticated . rawValue )
1091+ XCTAssertEqual ( ( error as? InstanaError ) , InstanaError . missingAppKey )
10421092 }
10431093 }
10441094}
0 commit comments