Skip to content
Snippets Groups Projects
Select Git revision
  • f8a8d81bd0e1baa420ea364bfb92786596d0160a
  • main default protected
  • development
  • integration
  • v1.1.5
  • v1.1.4
  • v1.1.3
  • v1.1.2
  • v1.1.1
  • v1.1.0
  • v1.0.0
11 results

SingleUseResponseReport.swift

Blame
  • MessengerStartTests.swift 1.71 KiB
    import CustomDump
    import XCTest
    import XXClient
    @testable import XXMessengerClient
    
    final class MessengerStartTests: XCTestCase {
      func testStart() throws {
        var didStartNetworkFollower: [Int] = []
    
        var env: MessengerEnvironment = .unimplemented
        env.cMix.get = {
          var cMix: CMix = .unimplemented
          cMix.networkFollowerStatus.run = { .stopped }
          cMix.startNetworkFollower.run = { timeoutMS in
            didStartNetworkFollower.append(timeoutMS)
          }
          return cMix
        }
        let start: MessengerStart = .live(env)
    
        try start(timeoutMS: 123)
    
        XCTAssertNoDifference(didStartNetworkFollower, [123])
      }
    
      func testStartWhenNotLoaded() {
        var env: MessengerEnvironment = .unimplemented
        env.cMix.get = { nil }
        let start: MessengerStart = .live(env)
    
        XCTAssertThrowsError(try start()) { error in
          XCTAssertEqual(
            error as? MessengerStart.Error,
            MessengerStart.Error.notLoaded
          )
        }
      }
    
      func testStartWhenRunning() throws {
        var env: MessengerEnvironment = .unimplemented
        env.cMix.get = {
          var cMix: CMix = .unimplemented
          cMix.networkFollowerStatus.run = { .running }
          return cMix
        }
        let start: MessengerStart = .live(env)
    
        try start()
      }
    
      func testStartNetworkFollowerFailure() {
        struct Error: Swift.Error, Equatable {}
        let error = Error()
    
        var env: MessengerEnvironment = .unimplemented
        env.cMix.get = {
          var cMix: CMix = .unimplemented
          cMix.networkFollowerStatus.run = { .stopped }
          cMix.startNetworkFollower.run = { _ in throw error }
          return cMix
        }
        let start: MessengerStart = .live(env)
    
        XCTAssertThrowsError(try start()) { err in
          XCTAssertEqual(err as? Error, error)
        }
      }
    }