aboutsummaryrefslogtreecommitdiff
path: root/Tests/WmapParserTests/DependenciesParserTests.swift
blob: 356d5d3f9fc9c67f1343e7a6b2e7bc64594755e1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import Testing

@testable import WmapParser

@Test func shouldParseUndirectedDependency() {
  let source = "Smoke -- Fire"
  let result = WmapParser.parse(source)
  #expect(result.dependencies.count == 1)
  #expect(
    result.dependencies.first
      == WmapParser.Dependency(fromComponent: "Smoke", toComponent: "Fire", isDirected: false)
  )
}

@Test func shouldParseDirectedDependency() {
  let source = "Cool Thing -> Different Cool Thing"
  let result = WmapParser.parse(source)
  #expect(result.dependencies.count == 1)
  #expect(
    result.dependencies.first
      == WmapParser.Dependency(
        fromComponent: "Cool Thing", toComponent: "Different Cool Thing", isDirected: true)
  )
}

@Test func shouldPreserveCaseInDependencyLabels() {
  let source = "SaRcAsM -> Seriousness."
  let result = WmapParser.parse(source)
  #expect(result.dependencies.count == 1)
  #expect(
    result.dependencies.first
      == WmapParser.Dependency(fromComponent: "SaRcAsM", toComponent: "Seriousness.", isDirected: true)
  )
}

@Test func shouldIgnoreWhitespaceInDependencies() {
  let source = "     loose      --TIGHT"
  let result = WmapParser.parse(source)
  #expect(result.dependencies.count == 1)
  #expect(
    result.dependencies.first
      == WmapParser.Dependency(fromComponent: "loose", toComponent: "TIGHT", isDirected: false)
  )
}