Skip to content

Commit d3afb58

Browse files
add error handling
1 parent 978adb6 commit d3afb58

18 files changed

+90
-60
lines changed

CodeGenerator.xcodeproj/project.pbxproj

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,8 @@
4747
A0636FD81E12997C0008CE98 /* EquatableClazz.txt in Resources */ = {isa = PBXBuildFile; fileRef = A0636FD71E12997C0008CE98 /* EquatableClazz.txt */; };
4848
A0636FDA1E1299A80008CE98 /* GeneratedEquals.txt in Resources */ = {isa = PBXBuildFile; fileRef = A0636FD91E1299A80008CE98 /* GeneratedEquals.txt */; };
4949
A0636FDB1E129B3E0008CE98 /* EquatableGenerator.swift in Sources */ = {isa = PBXBuildFile; fileRef = A0636FD31E1294650008CE98 /* EquatableGenerator.swift */; };
50+
A071EB691F04FC86007ACA6E /* SourceError.swift in Sources */ = {isa = PBXBuildFile; fileRef = A071EB681F04FC86007ACA6E /* SourceError.swift */; };
51+
A071EB6A1F04FC86007ACA6E /* SourceError.swift in Sources */ = {isa = PBXBuildFile; fileRef = A071EB681F04FC86007ACA6E /* SourceError.swift */; };
5052
A07FE2771E106CFE00809837 /* FuncMockTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A07FE2761E106CFE00809837 /* FuncMockTests.swift */; };
5153
A07FE2781E106D5C00809837 /* FuncMocker.swift in Sources */ = {isa = PBXBuildFile; fileRef = A01E469F1E105EE900395AED /* FuncMocker.swift */; };
5254
A07FE2791E107AA900809837 /* InterfaceMocker.swift in Sources */ = {isa = PBXBuildFile; fileRef = A01E46821E0FF78300395AED /* InterfaceMocker.swift */; };
@@ -156,6 +158,7 @@
156158
A0636FD51E1299100008CE98 /* EquatableGeneratorTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EquatableGeneratorTests.swift; sourceTree = "<group>"; };
157159
A0636FD71E12997C0008CE98 /* EquatableClazz.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = EquatableClazz.txt; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.swift; };
158160
A0636FD91E1299A80008CE98 /* GeneratedEquals.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = GeneratedEquals.txt; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.swift; };
161+
A071EB681F04FC86007ACA6E /* SourceError.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SourceError.swift; sourceTree = "<group>"; };
159162
A07FE2761E106CFE00809837 /* FuncMockTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FuncMockTests.swift; sourceTree = "<group>"; };
160163
A07FE2811E108D6900809837 /* InterfaceMockerTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InterfaceMockerTests.swift; sourceTree = "<group>"; };
161164
A083A3841ED45DD500C9B024 /* CodingGenerator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CodingGenerator.swift; sourceTree = "<group>"; };
@@ -312,6 +315,7 @@
312315
A03920811E0F3A8B005A6E89 /* Generate... */ = {
313316
isa = PBXGroup;
314317
children = (
318+
A071EB681F04FC86007ACA6E /* SourceError.swift */,
315319
A0636FD21E12944B0008CE98 /* Generator */,
316320
A01E469E1E105EB400395AED /* Mocker */,
317321
A01E46881E0FF95900395AED /* Source */,
@@ -502,6 +506,7 @@
502506
A01E46811E0FE6DA00395AED /* String+regexr.swift in Sources */,
503507
A01E468C1E1010BE00395AED /* FuncSignature.swift in Sources */,
504508
A01E468B1E1010BB00395AED /* InterfaceDefinition.swift in Sources */,
509+
A071EB691F04FC86007ACA6E /* SourceError.swift in Sources */,
505510
A039205D1E0F3A7B005A6E89 /* AppDelegate.swift in Sources */,
506511
A01E46801E0FE6CB00395AED /* InterfaceSignature.swift in Sources */,
507512
A0E276671E1542DC003CC557 /* ParamMockerFactory.swift in Sources */,
@@ -567,6 +572,7 @@
567572
A0E276651E152F17003CC557 /* ParamMockerFactory.swift in Sources */,
568573
A031BD431E8D1DA6003235D5 /* GenerateAsExtensionCommand.swift in Sources */,
569574
A0636FD41E1294650008CE98 /* EquatableGenerator.swift in Sources */,
575+
A071EB6A1F04FC86007ACA6E /* SourceError.swift in Sources */,
570576
A01E46781E0FE21500395AED /* InterfaceSignature.swift in Sources */,
571577
A01E46831E0FF78300395AED /* InterfaceMocker.swift in Sources */,
572578
A0A02CC51E1A616C001900DC /* HashableGenerator.swift in Sources */,

CodeGeneratorTests/EquatableGeneratorTests.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ class EquatableGeneratorTests: XCTestCase {
2323

2424
func testEquatableGenerator() {
2525
let source = string(from: "EquatableClazz", ofType: "txt")
26-
let interface = InterfaceSignature(interfaceSource: source, lines: source.components(separatedBy: "\n"))
26+
let interface = try! InterfaceSignature(interfaceSource: source, lines: source.components(separatedBy: "\n"))
2727
let equatableGenerator = EquatableGenerator(interfaceSignature: interface, indentation: " ")
2828

2929
var expectedEqualsSource = string(from: "GeneratedEquals", ofType: "txt").components(separatedBy: "\n")

CodeGeneratorTests/FuncMockTests.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ class FuncMockerTests: XCTestCase {
2121
}
2222

2323
func testFunMock() {
24-
let funcSignature = FuncSignature(string: "func test(funcMock: String, successHandler: @escaping (String, Int?) -> String?) -> String {")
24+
let funcSignature = try! FuncSignature(string: "func test(funcMock: String, successHandler: @escaping (String, Int?) -> String?) -> String {")
2525
let funcMocker = FuncMocker(funcSignature: funcSignature, indentationWidth: 1)
2626
XCTAssertEqual(funcMocker.sensibleVariables.count, 5)
2727
XCTAssertEqual(funcMocker.sensibleVariables[0], VarSignature(string: " var testFuncMock: String?"))
@@ -45,13 +45,13 @@ class FuncMockerTests: XCTestCase {
4545
}
4646

4747
func testFunReturnVoid() {
48-
let funcSignature = FuncSignature(string: "func test(funcMock: String, successHandler: @escaping (String, Int?) -> String?)")
48+
let funcSignature = try! FuncSignature(string: "func test(funcMock: String, successHandler: @escaping (String, Int?) -> String?)")
4949
let funcMocker = FuncMocker(funcSignature: funcSignature, indentationWidth: 1)
5050
XCTAssertNil(funcMocker.returnVariable)
5151
}
5252

5353
func testFuncMocker1() {
54-
let funcSignature = FuncSignature(string: "func func3() {")
54+
let funcSignature = try! FuncSignature(string: "func func3() {")
5555
let funcMocker = FuncMocker(funcSignature: funcSignature, indentationWidth: 1)
5656
XCTAssertEqual(funcMocker.sensibleVariables.count, 0)
5757
XCTAssertEqual(funcMocker.wasCalledVariable, VarSignature(declaration: "var", name: "func3WasCalled", type: "Bool?"))

CodeGeneratorTests/FuncSignatureTests.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ class FuncSignatureTests: XCTestCase {
2121
}
2222

2323
func testFunc1() {
24-
let func1 = FuncSignature(string: "func func1(param1: String, param2Label param2: Bool, closureLabel closure: (String) -> Bool) -> Bool {")
24+
let func1 = try! FuncSignature(string: "func func1(param1: String, param2Label param2: Bool, closureLabel closure: (String) -> Bool) -> Bool {")
2525
XCTAssertEqual(func1.name, "func1")
2626
XCTAssertEqual(func1.returnType, TypeParser.parse(string: "Bool"))
2727
XCTAssertEqual(func1.params.count, 3)
@@ -31,7 +31,7 @@ class FuncSignatureTests: XCTestCase {
3131
}
3232

3333
func testFunc2() {
34-
let func2 = FuncSignature(string: "func func2(closure: (String?) -> Int?, closure2Label closure2: @escaping (String?) -> String?) -> String? {")
34+
let func2 = try! FuncSignature(string: "func func2(closure: (String?) -> Int?, closure2Label closure2: @escaping (String?) -> String?) -> String? {")
3535
XCTAssertEqual(func2.name, "func2")
3636
XCTAssertEqual(func2.returnType, TypeParser.parse(string: "String?"))
3737
XCTAssertEqual(func2.params.count, 2)
@@ -41,15 +41,15 @@ class FuncSignatureTests: XCTestCase {
4141
}
4242

4343
func testFunc3() {
44-
let func3 = FuncSignature(string: "func func3(_ param: String)")
44+
let func3 = try! FuncSignature(string: "func func3(_ param: String)")
4545
XCTAssertEqual(func3.name, "func3")
4646
XCTAssertEqual(func3.returnType, SwiftType.Void)
4747
XCTAssertEqual(func3.params.count, 1)
4848
XCTAssertEqual(func3.params[0], FuncParam(label: "_", name: "param", type: "String"))
4949
}
5050

5151
func testFunc4() {
52-
let func4 = FuncSignature(string: "func func4() {")
52+
let func4 = try! FuncSignature(string: "func func4() {")
5353
XCTAssertEqual(func4.name, "func4")
5454
XCTAssertEqual(func4.returnType, SwiftType.Void)
5555
XCTAssertEqual(func4.params.count, 0)

CodeGeneratorTests/HashableGeneratorTest.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ class HashableGeneratorTest: XCTestCase {
2222

2323
func testEquatableGenerator() {
2424
let source = string(from: "EquatableClazz", ofType: "txt")
25-
let interface = InterfaceSignature(interfaceSource: source, lines: source.components(separatedBy: "\n"))
25+
let interface = try! InterfaceSignature(interfaceSource: source, lines: source.components(separatedBy: "\n"))
2626
let hashableeGenerator = HashableGenerator(interfaceSignature: interface, indentation: " ")
2727

2828
var expectedHashSource = string(from: "GeneratedHash", ofType: "txt").components(separatedBy: "\n")

CodeGeneratorTests/InitGeneratorTests.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ class InitGeneratorTests: XCTestCase {
2323

2424
func testInitGenerator() {
2525
let source = string(from: "EquatableClazz", ofType: "txt")
26-
let interface = InterfaceSignature(interfaceSource: source, lines: source.components(separatedBy: "\n"))
26+
let interface = try! InterfaceSignature(interfaceSource: source, lines: source.components(separatedBy: "\n"))
2727
let initGenerator = InitGenerator(interfaceSignature: interface, indentation: " ")
2828

2929
var expectedHashSource = string(from: "GeneratedInit", ofType: "txt").components(separatedBy: "\n")

CodeGeneratorTests/InterfaceMockerTests.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ class InterfaceMockerTests: XCTestCase {
2424

2525
func testInterface() {
2626
let interfaceSource = string(from: "interface1", ofType: "txt")
27-
let interface = InterfaceSignature(interfaceSource: interfaceSource, lines: interfaceSource.components(separatedBy: "\n"))
27+
let interface = try! InterfaceSignature(interfaceSource: interfaceSource, lines: interfaceSource.components(separatedBy: "\n"))
2828
let interfaceMocker = InterfaceMocker(interfaceSignature: interface, indentationWidth: 4)
2929

3030
let mockSource = string(from: "interface1Mock", ofType: "txt")

CodeGeneratorTests/InterfaceSignatureTests.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ class InterfaceSignatureTests: XCTestCase {
1616
override func setUp() {
1717
super.setUp()
1818
let source = "//TestClass.swift|import xxx| var global: String|class TestClass{| var var1: String| static var var2: String| private var var3: String| let var4: String?| func func1(param1: String) {\n|xxxx|var funcVar: String| } | func func2(param2: Bool) -> Bool {| return false|}"
19-
interfaceSignature = InterfaceSignature(interfaceSource: source, lines: source.components(separatedBy: "|"))
19+
interfaceSignature = try! InterfaceSignature(interfaceSource: source, lines: source.components(separatedBy: "|"))
2020
}
2121

2222
override func tearDown() {
@@ -25,11 +25,11 @@ class InterfaceSignatureTests: XCTestCase {
2525
}
2626

2727
func testInterfaceDefinition() {
28-
XCTAssertEqual(interfaceSignature.definition, InterfaceDefinition(lines: interfaceSignature.lines))
28+
XCTAssertEqual(interfaceSignature.definition, try! InterfaceDefinition(lines: interfaceSignature.lines))
2929
}
3030

3131
func testSourceFuncsSignatures() {
32-
XCTAssertEqual(interfaceSignature.funcSignatures, ["func func1(param1: String) ", "func func2(param2: Bool) -> Bool "].map { FuncSignature(string: $0) })
32+
XCTAssertEqual(interfaceSignature.funcSignatures, ["func func1(param1: String) ", "func func2(param2: Bool) -> Bool "].map { try! FuncSignature(string: $0) })
3333
}
3434

3535
func testVarSignatures() {

CodeGeneratorTests/NSCodingGeneratorTest.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ class NSCodingGeneratorTest: XCTestCase {
2323

2424
func testNSCodingGenerator() {
2525
let source = string(from: "EquatableClazz", ofType: "txt")
26-
let interface = InterfaceSignature(interfaceSource: source, lines: source.components(separatedBy: "\n"))
26+
let interface = try! InterfaceSignature(interfaceSource: source, lines: source.components(separatedBy: "\n"))
2727
let codingGenerator = CodingGenerator(interfaceSignature: interface, indentation: " ")
2828

2929
var expectedCodingSource = string(from: "GeneratedNSCoder", ofType: "txt").components(separatedBy: "\n")

Generate.../FuncParam.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,10 @@ struct FuncParam {
2121
return label
2222
}
2323

24-
init(string: String) {
24+
init(string: String) throws {
2525
let comps = string.components(separatedBy: ":")
2626
guard comps.count == 2 else {
27-
preconditionFailure(wrongParamFormat)
27+
throw NSError.sourceInvalid
2828
}
2929
type = TypeParser.parse(string: comps[1].trimed)
3030

@@ -40,7 +40,7 @@ struct FuncParam {
4040
name = labelNameComps[1]
4141
return
4242
}
43-
preconditionFailure(wrongParamFormat)
43+
throw NSError.sourceInvalid
4444
}
4545

4646
init(label: String, name: String, type: String) {

0 commit comments

Comments
 (0)