Skip to content

Commit ae6d740

Browse files
committed
Migrate to XCTUnwrap to avoid ! which will crash the test suite and not give an accurate failure count
1 parent 1371405 commit ae6d740

File tree

3 files changed

+50
-50
lines changed

3 files changed

+50
-50
lines changed

Tests/XcodeProjTests/Objects/Project/PBXOutputSettingsTests.swift

Lines changed: 38 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -5,29 +5,29 @@ import XCTest
55
class PBXOutputSettingsTests: XCTestCase {
66
// MARK: - PBXFileOrder - PBXBuldFile
77

8-
func test_PBXFileOrder_PBXBuildFile_by_uuid_when_iosProject() {
9-
let iosProject = iosProject()
8+
func test_PBXFileOrder_PBXBuildFile_by_uuid_when_iosProject() throws {
9+
let iosProject = try iosProject()
1010

1111
XCTAssertFalse(PBXFileOrder.byUUID.sort(lhs: iosProject.objectBuildFileAssets, rhs: iosProject.objectBuildFileMain))
1212
XCTAssertTrue(PBXFileOrder.byUUID.sort(lhs: iosProject.objectBuildFileMain, rhs: iosProject.objectBuildFileAssets))
1313
}
1414

15-
func test_PBXFileOrder_PBXBuildFile_by_filename_when_iosProject() {
16-
let iosProject = iosProject()
15+
func test_PBXFileOrder_PBXBuildFile_by_filename_when_iosProject() throws {
16+
let iosProject = try iosProject()
1717

1818
XCTAssertTrue(PBXFileOrder.byFilename.sort(lhs: iosProject.objectBuildFileAssets, rhs: iosProject.objectBuildFileMain))
1919
XCTAssertFalse(PBXFileOrder.byFilename.sort(lhs: iosProject.objectBuildFileMain, rhs: iosProject.objectBuildFileAssets))
2020
}
2121

22-
func test_PBXFileOrder_PBXBuildFile_by_filename_when_fileSharedAcrossTargetsProject() {
23-
let fileSharedAcrossTargetsProject = fileSharedAcrossTargetsProject()
22+
func test_PBXFileOrder_PBXBuildFile_by_filename_when_fileSharedAcrossTargetsProject() throws {
23+
let fileSharedAcrossTargetsProject = try fileSharedAcrossTargetsProject()
2424

2525
let sameNameByFilename = fileSharedAcrossTargetsProject.objectBuildFileSameName.sorted(by: PBXFileOrder.byFilename.sort)
2626
XCTAssertLessThan(sameNameByFilename.first!.1.uuid, sameNameByFilename.last!.1.uuid)
2727
}
2828

29-
func test_PBXFileOrder_PBXBuildFile_by_filename_when_nil_name_and_path_when_iosProject() {
30-
let iosProject = iosProject()
29+
func test_PBXFileOrder_PBXBuildFile_by_filename_when_nil_name_and_path_when_iosProject() throws {
30+
let iosProject = try iosProject()
3131

3232
iosProject.buildFileAssets.file?.name = nil
3333
iosProject.buildFileMain.file?.name = nil
@@ -37,8 +37,8 @@ class PBXOutputSettingsTests: XCTestCase {
3737
XCTAssertTrue(PBXFileOrder.byFilename.sort(lhs: iosProject.objectBuildFileMain, rhs: iosProject.objectBuildFileAssets))
3838
}
3939

40-
func test_PBXFileOrder_PBXBuildFile_by_filename_when_no_file_when_iosProject() {
41-
let iosProject = iosProject()
40+
func test_PBXFileOrder_PBXBuildFile_by_filename_when_no_file_when_iosProject() throws {
41+
let iosProject = try iosProject()
4242

4343
let ref1 = iosProject.buildFileAssets.reference
4444
let ref2 = iosProject.buildFileMain.reference
@@ -50,45 +50,45 @@ class PBXOutputSettingsTests: XCTestCase {
5050

5151
// MARK: - PBXFileOrder - PBXBuildPhaseFile
5252

53-
func test_PBXFileOrder_PBXBuildPhaseFile_by_uuid_when_iosProject() {
54-
let iosProject = iosProject()
53+
func test_PBXFileOrder_PBXBuildPhaseFile_by_uuid_when_iosProject() throws {
54+
let iosProject = try iosProject()
5555

5656
XCTAssertFalse(PBXFileOrder.byUUID.sort(lhs: iosProject.objectBuildPhaseFileAssets, rhs: iosProject.objectBuildPhaseFileMain))
5757
XCTAssertTrue(PBXFileOrder.byUUID.sort(lhs: iosProject.objectBuildPhaseFileMain, rhs: iosProject.objectBuildPhaseFileAssets))
5858
}
5959

60-
func test_PBXFileOrder_PBXBuildPhaseFile_by_filename_when_iosProject() {
61-
let iosProject = iosProject()
60+
func test_PBXFileOrder_PBXBuildPhaseFile_by_filename_when_iosProject() throws {
61+
let iosProject = try iosProject()
6262

6363
XCTAssertTrue(PBXFileOrder.byFilename.sort(lhs: iosProject.objectBuildPhaseFileAssets, rhs: iosProject.objectBuildPhaseFileMain))
6464
XCTAssertFalse(PBXFileOrder.byFilename.sort(lhs: iosProject.objectBuildPhaseFileMain, rhs: iosProject.objectBuildPhaseFileAssets))
6565
}
6666

6767
// MARK: - PBXFileOrder - PBXFileReference
6868

69-
func test_PBXFileOrder_PBXFileReference_by_uuid_when_iosProject() {
70-
let iosProject = iosProject()
69+
func test_PBXFileOrder_PBXFileReference_by_uuid_when_iosProject() throws {
70+
let iosProject = try iosProject()
7171

7272
XCTAssertFalse(PBXFileOrder.byUUID.sort(lhs: iosProject.objectFileReferenceAssets, rhs: iosProject.objectFileReferenceCoreData))
7373
XCTAssertTrue(PBXFileOrder.byUUID.sort(lhs: iosProject.objectFileReferenceCoreData, rhs: iosProject.objectFileReferenceAssets))
7474
}
7575

76-
func test_PBXFileOrder_PBXFileReference_by_filename_when_iosProject() {
77-
let iosProject = iosProject()
76+
func test_PBXFileOrder_PBXFileReference_by_filename_when_iosProject() throws {
77+
let iosProject = try iosProject()
7878

7979
XCTAssertTrue(PBXFileOrder.byFilename.sort(lhs: iosProject.objectFileReferenceAssets, rhs: iosProject.objectFileReferenceCoreData))
8080
XCTAssertFalse(PBXFileOrder.byFilename.sort(lhs: iosProject.objectFileReferenceCoreData, rhs: iosProject.objectFileReferenceAssets))
8181
}
8282

83-
func test_PBXFileOrder_PBXFileReference_by_filename_when_fileSharedAcrossTargetsProject() {
84-
let fileSharedAcrossTargetsProject = fileSharedAcrossTargetsProject()
83+
func test_PBXFileOrder_PBXFileReference_by_filename_when_fileSharedAcrossTargetsProject() throws {
84+
let fileSharedAcrossTargetsProject = try fileSharedAcrossTargetsProject()
8585

8686
let sameNameByFilename = fileSharedAcrossTargetsProject.objectFileReferenceSameName.sorted(by: PBXFileOrder.byFilename.sort)
8787
XCTAssertLessThan(sameNameByFilename.first!.1.uuid, sameNameByFilename.last!.1.uuid)
8888
}
8989

90-
func test_PBXFileOrder_PBXFileReference_by_filename_when_nil_name_and_path_when_iosProject() {
91-
let iosProject = iosProject()
90+
func test_PBXFileOrder_PBXFileReference_by_filename_when_nil_name_and_path_when_iosProject() throws {
91+
let iosProject = try iosProject()
9292

9393
iosProject.fileReferenceAssets.name = nil
9494
iosProject.fileReferenceCoreData.name = nil
@@ -100,15 +100,15 @@ class PBXOutputSettingsTests: XCTestCase {
100100

101101
// MARK: - PBXFileOrder - Other
102102

103-
func test_PBXFileOrder_Other_by_uuid_when_iosProject() {
104-
let iosProject = iosProject()
103+
func test_PBXFileOrder_Other_by_uuid_when_iosProject() throws {
104+
let iosProject = try iosProject()
105105

106106
XCTAssertTrue(PBXFileOrder.byUUID.sort(lhs: iosProject.objectGroupFrameworks, rhs: iosProject.objectGroupProducts))
107107
XCTAssertFalse(PBXFileOrder.byUUID.sort(lhs: iosProject.objectGroupProducts, rhs: iosProject.objectGroupFrameworks))
108108
}
109109

110-
func test_PBXFileOrder_Other_by_filename_when_iosProject() {
111-
let iosProject = iosProject()
110+
func test_PBXFileOrder_Other_by_filename_when_iosProject() throws {
111+
let iosProject = try iosProject()
112112

113113
XCTAssertTrue(PBXFileOrder.byFilename.sort(lhs: iosProject.objectGroupFrameworks, rhs: iosProject.objectGroupProducts))
114114
XCTAssertFalse(PBXFileOrder.byFilename.sort(lhs: iosProject.objectGroupProducts, rhs: iosProject.objectGroupFrameworks))
@@ -120,8 +120,8 @@ class PBXOutputSettingsTests: XCTestCase {
120120
XCTAssertNil(PBXNavigatorFileOrder.unsorted.sort)
121121
}
122122

123-
func test_PBXNavigatorFileOrder_by_filename_when_iosProject() {
124-
let iosProject = iosProject()
123+
func test_PBXNavigatorFileOrder_by_filename_when_iosProject() throws {
124+
let iosProject = try iosProject()
125125

126126
let sort: (PBXFileElement, PBXFileElement) -> Bool = PBXNavigatorFileOrder.byFilename.sort!
127127
let sorted = iosProject.navigatorFileGroup.children.sorted(by: sort).map { $0.fileName()! }
@@ -140,8 +140,8 @@ class PBXOutputSettingsTests: XCTestCase {
140140
], sorted)
141141
}
142142

143-
func test_PBXNavigatorFileOrder_by_filename_groups_first_when_iosProject() {
144-
let iosProject = iosProject()
143+
func test_PBXNavigatorFileOrder_by_filename_groups_first_when_iosProject() throws {
144+
let iosProject = try iosProject()
145145

146146
let sort: (PBXFileElement, PBXFileElement) -> Bool = PBXNavigatorFileOrder.byFilenameGroupsFirst.sort!
147147
let sorted = iosProject.navigatorFileGroup.children.sorted(by: sort).map { $0.fileName()! }
@@ -166,8 +166,8 @@ class PBXOutputSettingsTests: XCTestCase {
166166
XCTAssertNil(PBXBuildPhaseFileOrder.unsorted.sort)
167167
}
168168

169-
func test_PBXBuildPhaseFileOrder_by_filename_when_iosProject() {
170-
let iosProject = iosProject()
169+
func test_PBXBuildPhaseFileOrder_by_filename_when_iosProject() throws {
170+
let iosProject = try iosProject()
171171

172172
XCTAssertTrue(PBXBuildPhaseFileOrder.byFilename.sort!(iosProject.buildFileAssets, iosProject.buildFileMain))
173173
XCTAssertFalse(PBXBuildPhaseFileOrder.byFilename.sort!(iosProject.buildFileMain, iosProject.buildFileAssets))
@@ -201,9 +201,9 @@ class PBXOutputSettingsTests: XCTestCase {
201201
var navigatorFileGroup: PBXGroup!
202202
}
203203

204-
private func iosProject() -> iOSProject {
205-
let data = try! iosProjectData()
206-
let proj = try! PBXProj(data: data)
204+
private func iosProject() throws -> iOSProject {
205+
let data = try XCTUnwrap(iosProjectData())
206+
let proj = try XCTUnwrap(PBXProj(data: data))
207207

208208
let buildFileAssets = proj.buildFiles.first { $0.file?.fileName() == "Assets.xcassets" }!
209209
let buildFileMain = proj.buildFiles.first { $0.file?.fileName() == "Main.storyboard" }!
@@ -256,9 +256,9 @@ class PBXOutputSettingsTests: XCTestCase {
256256
var objectFileReferenceSameName: [(PBXObjectReference, PBXFileReference)]!
257257
}
258258

259-
func fileSharedAcrossTargetsProject() -> FileSharedAcrossTargetsProject {
260-
let dic = try! fileSharedAcrossTargetsData()
261-
let proj = try! PBXProj(data: dic)
259+
func fileSharedAcrossTargetsProject() throws -> FileSharedAcrossTargetsProject {
260+
let dic = try XCTUnwrap(fileSharedAcrossTargetsData())
261+
let proj = try XCTUnwrap(PBXProj(data: dic))
262262

263263
let buildFileSameName = proj.buildFiles.filter { $0.file?.fileName() == "SameName.h" }
264264
let objectBuildFileSameName = proj.buildFiles.map { ($0.reference, $0) }

Tests/XcodeProjTests/Objects/Project/PBXProjIntegrationTests.swift

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ import XCTest
44
@testable import XcodeProj
55

66
final class PBXProjIntegrationTests: XCTestCase {
7-
func test_init_initializesTheProjCorrectly() {
8-
let data = try! Data(contentsOf: fixturePath().url)
7+
func test_init_initializesTheProjCorrectly() throws {
8+
let data = try XCTUnwrap(Data(contentsOf: fixturePath().url))
99
let decoder = XcodeprojPropertyListDecoder()
1010
let proj = try? decoder.decode(PBXProj.self, from: data)
1111
XCTAssertNotNil(proj)
@@ -14,10 +14,10 @@ final class PBXProjIntegrationTests: XCTestCase {
1414
}
1515
}
1616

17-
func test_write() {
18-
testWrite(from: fixturePath(),
17+
func test_write() throws {
18+
try testWrite(from: fixturePath(),
1919
initModel: { path -> PBXProj? in
20-
let data = try! Data(contentsOf: path.url)
20+
let data = try XCTUnwrap(Data(contentsOf: path.url))
2121
let decoder = XcodeprojPropertyListDecoder()
2222
return try? decoder.decode(PBXProj.self, from: data)
2323
},

Tests/XcodeProjTests/Tests/testWrite.swift

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,29 +6,29 @@ import XCTest
66
func testWrite<T: Writable & Equatable>(file _: StaticString = #file,
77
line _: UInt = #line,
88
from path: Path,
9-
initModel: (Path) -> T?,
10-
modify: (T) -> T)
9+
initModel: (Path) throws -> T?,
10+
modify: (T) -> T) throws
1111
{
12-
testWrite(from: path, initModel: initModel, modify: modify, assertion: { XCTAssertEqual($0, $1) })
12+
try testWrite(from: path, initModel: initModel, modify: modify, assertion: { XCTAssertEqual($0, $1) })
1313
}
1414

1515
func testWrite<T: Writable>(file: StaticString = #filePath,
1616
line: UInt = #line,
1717
from path: Path,
18-
initModel: (Path) -> T?,
18+
initModel: (Path) throws -> T?,
1919
modify: (T) -> T,
20-
assertion: (_ before: T, _ after: T) -> Void)
20+
assertion: (_ before: T, _ after: T) -> Void) throws
2121
{
2222
let copyPath = path.parent() + "copy.\(path.extension!)"
2323
try? copyPath.delete()
2424
try? path.copy(copyPath)
25-
let got = initModel(copyPath)
25+
let got = try initModel(copyPath)
2626
XCTAssertNotNil(got, file: file, line: line)
2727
if let got {
2828
let modified = modify(got)
2929
do {
3030
try modified.write(path: copyPath, override: true)
31-
let gotAfterWriting = initModel(copyPath)
31+
let gotAfterWriting = try initModel(copyPath)
3232
XCTAssertNotNil(gotAfterWriting, file: file, line: line)
3333
if let gotAfterWriting {
3434
assertion(got, gotAfterWriting)

0 commit comments

Comments
 (0)