Skip to content

Commit 882e014

Browse files
authored
Merge pull request #115 from nkcsgexi/test-enum-case
test: add an API test for enum case structure. SR-10174
2 parents 3028c4d + e4a9a57 commit 882e014

File tree

1 file changed

+24
-1
lines changed

1 file changed

+24
-1
lines changed

Tests/SwiftSyntaxTest/ParseFile.swift

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,16 @@ fileprivate class Test: NSObject {
1818
}
1919
#endif
2020

21+
enum Animal {
22+
case cat
23+
case dog
24+
}
25+
2126
public class ParseFileTestCase: XCTestCase {
2227

2328
public static let allTests = [
24-
("testParseSingleFile", testParseSingleFile)
29+
("testParseSingleFile", testParseSingleFile),
30+
("testEnumCaseStructure", testEnumCaseStructure)
2531
]
2632

2733
public func testParseSingleFile() {
@@ -33,4 +39,21 @@ public class ParseFileTestCase: XCTestCase {
3339
try SyntaxVerifier.verify(parsed)
3440
}())
3541
}
42+
43+
public func testEnumCaseStructure() {
44+
class Visitor: SyntaxVisitor {
45+
var cases: [EnumCaseDeclSyntax] = []
46+
func visit(_ node: EnumDeclSyntax) -> SyntaxVisitorContinueKind {
47+
cases.append(contentsOf: node.members.members.compactMap {
48+
($0 as MemberDeclListItemSyntax).decl as? EnumCaseDeclSyntax
49+
})
50+
return .skipChildren
51+
}
52+
}
53+
var v = Visitor()
54+
let currentFile = URL(fileURLWithPath: #file)
55+
let parsed = try! SyntaxParser.parse(currentFile)
56+
parsed.walk(&v)
57+
XCTAssertEqual(v.cases.count, 2)
58+
}
3659
}

0 commit comments

Comments
 (0)