File: MockingTest.swift

package info (click to toggle)
swiftlang 6.0.3-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,519,992 kB
  • sloc: cpp: 9,107,863; ansic: 2,040,022; asm: 1,135,751; python: 296,500; objc: 82,456; f90: 60,502; lisp: 34,951; pascal: 19,946; sh: 18,133; perl: 7,482; ml: 4,937; javascript: 4,117; makefile: 3,840; awk: 3,535; xml: 914; fortran: 619; cs: 573; ruby: 573
file content (50 lines) | stat: -rw-r--r-- 1,540 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
/*
 This source file is part of the Swift System open source project

 Copyright (c) 2020 Apple Inc. and the Swift System project authors
 Licensed under Apache License v2.0 with Runtime Library Exception

 See https://swift.org/LICENSE.txt for license information
*/

import XCTest

#if SYSTEM_PACKAGE
@testable import SystemPackage
#else
@testable import System
#endif

/*System 0.0.2, @available(macOS 12.0, iOS 15.0, watchOS 8.0, tvOS 15.0, *)*/
final class MockingTest: XCTestCase {
  func testMocking() {
    XCTAssertFalse(mockingEnabled)
    MockingDriver.withMockingEnabled { driver in
      XCTAssertTrue(mockingEnabled)
      XCTAssertTrue(driver === currentMockingDriver)

      XCTAssertEqual(driver.forceErrno, .none)
      let forced = ForceErrno.always(errno: 42)
      driver.forceErrno = forced
      XCTAssertEqual(driver.forceErrno, forced)

      // Test that a nested call swaps in a new driver and restores the old one after
      MockingDriver.withMockingEnabled { nestedDriver in
        XCTAssertTrue(mockingEnabled)
        XCTAssertTrue(nestedDriver === currentMockingDriver)
        XCTAssertFalse(nestedDriver === driver)
        XCTAssertEqual(nestedDriver.forceErrno, .none)
      }

      XCTAssertTrue(mockingEnabled)
      XCTAssertEqual(driver.forceErrno, forced)
    }
    XCTAssertFalse(mockingEnabled)

    // Mocking should be enabled even if we do not refer to the driver
    MockingDriver.withMockingEnabled { _ in
      XCTAssertTrue(mockingEnabled)
    }
    XCTAssertFalse(mockingEnabled)
  }
}