|
| 1 | +import TecoCodeGeneratorTestHelpers |
| 2 | +import XCTest |
| 3 | + |
| 4 | +#if Xcode // Works around FB11980900 |
| 5 | +@testable import teco_package_generator |
| 6 | +#else |
| 7 | +@testable import TecoPackageGenerator |
| 8 | +#endif |
| 9 | + |
| 10 | +final class TecoPackageGeneratorTests: XCTestCase { |
| 11 | + private let services: [(service: String, version: String)] = [ |
| 12 | + ("Aa", "V20200224"), ("Ams", "V20200608"), ("Ams", "V20201229"), |
| 13 | + ] |
| 14 | + |
| 15 | + func testProductExprBuilder() { |
| 16 | + AssertBuilder(buildProductExpr(name: "TecoDemo"), """ |
| 17 | + .library(name: "TecoDemo", targets: ["TecoDemo"]) |
| 18 | + """) |
| 19 | + AssertBuilder(buildProductExpr(name: "TecoDemo", trailingComma: true), """ |
| 20 | + .library(name: "TecoDemo", targets: ["TecoDemo"]), |
| 21 | + """) |
| 22 | + } |
| 23 | + |
| 24 | + func testProductExprListBuilder() { |
| 25 | + AssertBuilder(buildProductListExpr(for: services), contains: [ |
| 26 | + #" .library(name: "TecoAaV20200224", targets: ["TecoAaV20200224"]),"#, |
| 27 | + #" .library(name: "TecoAmsV20200608", targets: ["TecoAmsV20200608"]),"#, |
| 28 | + #" .library(name: "TecoAmsV20201229", targets: ["TecoAmsV20201229"]),"#, |
| 29 | + ]) |
| 30 | + } |
| 31 | + |
| 32 | + func testTargetExprBuilder() { |
| 33 | + AssertBuilder(buildTargetExpr(name: "TecoDemo", path: "./Demo"), """ |
| 34 | + .target(name: "TecoDemo", dependencies: [.product(name: "TecoCore", package: "teco-core")], path: "./Demo") |
| 35 | + """) |
| 36 | + AssertBuilder(buildTargetExpr(name: "TecoDemo", path: "./Demo", trailingComma: true), """ |
| 37 | + .target(name: "TecoDemo", dependencies: [.product(name: "TecoCore", package: "teco-core")], path: "./Demo"), |
| 38 | + """) |
| 39 | + } |
| 40 | + |
| 41 | + func testTargetExprListBuilder() { |
| 42 | + AssertBuilder(buildTargetListExpr(for: services), contains: [ |
| 43 | + #" .target(name: "TecoAaV20200224", dependencies: [.product(name: "TecoCore", package: "teco-core")], path: "./Sources/Teco/Aa/V20200224"),"#, |
| 44 | + #" .target(name: "TecoAmsV20201229", dependencies: [.product(name: "TecoCore", package: "teco-core")], path: "./Sources/Teco/Ams/V20201229"),"#, |
| 45 | + #" .target(name: "TecoAmsV20200608", dependencies: [.product(name: "TecoCore", package: "teco-core")], path: "./Sources/Teco/Ams/V20200608"),"#, |
| 46 | + ]) |
| 47 | + } |
| 48 | +} |
0 commit comments