Skip to content
Snippets Groups Projects
MessengerBackupParamsTests.swift 1.39 KiB
Newer Older
import CustomDump
import XCTest
import XXClient
@testable import XXMessengerClient

final class MessengerBackupParamsTests: XCTestCase {
  func testBackupParams() throws {
    var didAddJSON: [String] = []
    let params = "test-123"

    var env: MessengerEnvironment = .unimplemented
    env.backup.get = {
      var backup: Backup = .unimplemented
      backup.isRunning.run = { true }
      backup.addJSON.run = { didAddJSON.append($0) }
      return backup
    }
    let backup: MessengerBackupParams = .live(env)

    try backup(params)
    XCTAssertNoDifference(didAddJSON, [params])
  }

  func testBackupParamsWhenNoBackup() {
    var env: MessengerEnvironment = .unimplemented
    env.backup.get = { nil }
    let backup: MessengerBackupParams = .live(env)

    XCTAssertThrowsError(try backup("")) { error in
      XCTAssertNoDifference(
        error as NSError,
        MessengerBackupParams.Error.notRunning as NSError
      )
    }
  }

  func testBackupParamsWhenBackupNotRunning() {
    var env: MessengerEnvironment = .unimplemented
    env.backup.get = {
      var backup: Backup = .unimplemented
      backup.isRunning.run = { false }
      return backup
    }
    let backup: MessengerBackupParams = .live(env)

    XCTAssertThrowsError(try backup("")) { error in
      XCTAssertNoDifference(
        error as NSError,
        MessengerBackupParams.Error.notRunning as NSError
      )
    }
  }
}