Signal-iOS/SignalServiceKit/tests/Util/OWSOperationTest.swift
2024-01-08 15:43:31 -06:00

67 lines
1.7 KiB
Swift

//
// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
//
import Foundation
import XCTest
import SignalCoreKit
@testable import SignalServiceKit
class OWSOperationTest: XCTestCase {
private class TestOperation: OWSOperation {
let expectation: XCTestExpectation
init(expectation: XCTestExpectation) {
self.expectation = expectation
}
override func run() {
// no-op
}
override func didReportError(_ error: Error) {
XCTAssertTrue((error as NSError).isRetryable)
expectation.fulfill()
}
}
func test_castSwiftErrorToNSErrorThenSet() {
let expectedError = expectation(description: "didReportError")
let operation = TestOperation(expectation: expectedError)
let error = OWSRetryableError()
operation.reportError(error)
waitForExpectations(timeout: 0.1, handler: nil)
}
func test_NSError() {
let expectedError = expectation(description: "didReportError")
let operation = TestOperation(expectation: expectedError)
let error = OWSRetryableError()
operation.reportError(error)
waitForExpectations(timeout: 0.1, handler: nil)
}
func test_operationError() {
enum BarError: Error, IsRetryableProvider {
case bar
var isRetryableProvider: Bool {
return true
}
}
let expectedError = expectation(description: "didReportError")
let operation = TestOperation(expectation: expectedError)
operation.reportError(BarError.bar)
waitForExpectations(timeout: 0.1, handler: nil)
}
}