aboutsummaryrefslogtreecommitdiff
path: root/Tests/WmapParserTests/DependenciesParserTests.swift
diff options
context:
space:
mode:
Diffstat (limited to 'Tests/WmapParserTests/DependenciesParserTests.swift')
-rw-r--r--Tests/WmapParserTests/DependenciesParserTests.swift44
1 files changed, 44 insertions, 0 deletions
diff --git a/Tests/WmapParserTests/DependenciesParserTests.swift b/Tests/WmapParserTests/DependenciesParserTests.swift
new file mode 100644
index 0000000..88e6e99
--- /dev/null
+++ b/Tests/WmapParserTests/DependenciesParserTests.swift
@@ -0,0 +1,44 @@
+import Testing
+
+@testable import WmapParser
+
+@Test func shouldParseUndirectedDependency() {
+ let source = "Smoke -- Fire"
+ let result = parse(source)
+ #expect(result.dependencies.count == 1)
+ #expect(
+ result.dependencies.first
+ == Dependency(fromComponent: "Smoke", toComponent: "Fire", isDirected: false)
+ )
+}
+
+@Test func shouldParseDirectedDependency() {
+ let source = "Cool Thing -> Different Cool Thing"
+ let result = parse(source)
+ #expect(result.dependencies.count == 1)
+ #expect(
+ result.dependencies.first
+ == Dependency(
+ fromComponent: "Cool Thing", toComponent: "Different Cool Thing", isDirected: true)
+ )
+}
+
+@Test func shouldPreserveCaseInDependencyLabels() {
+ let source = "SaRcAsM -> Seriousness."
+ let result = parse(source)
+ #expect(result.dependencies.count == 1)
+ #expect(
+ result.dependencies.first
+ == Dependency(fromComponent: "SaRcAsM", toComponent: "Seriousness.", isDirected: true)
+ )
+}
+
+@Test func shouldIgnoreWhitespaceInDependencies() {
+ let source = " loose --TIGHT"
+ let result = parse(source)
+ #expect(result.dependencies.count == 1)
+ #expect(
+ result.dependencies.first
+ == Dependency(fromComponent: "loose", toComponent: "TIGHT", isDirected: false)
+ )
+}