From b9abd0731806a08afa0b0e6579411569d1a0d371 Mon Sep 17 00:00:00 2001 From: Max Howell Date: Thu, 31 Jan 2019 16:35:03 -0500 Subject: [PATCH] More coverage --- Tests/PathTests/PathTests.swift | 24 +++++++++++++++++------- Tests/PathTests/XCTestManifests.swift | 1 + 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/Tests/PathTests/PathTests.swift b/Tests/PathTests/PathTests.swift index ec30699..9cb22af 100644 --- a/Tests/PathTests/PathTests.swift +++ b/Tests/PathTests/PathTests.swift @@ -352,13 +352,13 @@ class PathTests: XCTestCase { XCTAssertThrowsError(try JSONDecoder().decode([Path].self, from: data)) } - func testBundleExtensions() { - XCTAssertTrue(Bundle.main.path.isDirectory) - XCTAssertTrue(Bundle.main.resources.isDirectory) - - // don’t exist in tests - _ = Bundle.main.path(forResource: "foo", ofType: "bar") - _ = Bundle.main.sharedFrameworks + func testBundleExtensions() throws { + try Path.mktemp { tmpdir in + let bndl = Bundle(path: tmpdir.string)! + XCTAssertEqual(bndl.path, tmpdir) + XCTAssertEqual(bndl.sharedFrameworks, tmpdir.SharedFrameworks) + XCTAssertEqual(bndl.resources, tmpdir) + } } func testDataExtensions() throws { @@ -394,7 +394,17 @@ class PathTests: XCTestCase { XCTAssertThrowsError(try bar.touch()) try bar.unlock() try bar.touch() + + // a non existant file is already “unlocked” + try tmpdir.nonExit.unlock() } #endif } + + func testTouchThrowsIfCannotWrite() throws { + try Path.mktemp { tmpdir in + try tmpdir.chmod(0o000) + XCTAssertThrowsError(try tmpdir.bar.touch()) + } + } } diff --git a/Tests/PathTests/XCTestManifests.swift b/Tests/PathTests/XCTestManifests.swift index 6e64f54..5aa2d89 100644 --- a/Tests/PathTests/XCTestManifests.swift +++ b/Tests/PathTests/XCTestManifests.swift @@ -33,6 +33,7 @@ extension PathTests { ("testStringConvertibles", testStringConvertibles), ("testStringExtensions", testStringExtensions), ("testTimes", testTimes), + ("testTouchThrowsIfCannotWrite", testTouchThrowsIfCannotWrite), ] }