-
-
Notifications
You must be signed in to change notification settings - Fork 509
/
ProjectGeneratorTests.swift
53 lines (45 loc) · 1.92 KB
/
ProjectGeneratorTests.swift
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
45
46
47
48
49
50
51
52
53
import Basic
import Foundation
import TuistCore
import xcodeproj
import XCTest
@testable import TuistCoreTesting
@testable import TuistKit
final class ProjectGeneratorTests: XCTestCase {
var subject: ProjectGenerator!
var printer: MockPrinter!
var system: MockSystem!
var fileHandler: MockFileHandler!
override func setUp() {
super.setUp()
printer = MockPrinter()
system = MockSystem()
fileHandler = try! MockFileHandler()
subject = ProjectGenerator(printer: printer,
system: system)
}
func test_generate() throws {
// Given
let target = Target.test(name: "Target", platform: .iOS, product: .framework)
let targets = [target]
let project = Project.test(path: fileHandler.currentPath, name: "Project", targets: targets)
try fileHandler.touch(fileHandler.currentPath.appending(component: "Project.swift"))
let cache = GraphLoaderCache()
cache.add(project: project)
let graph = Graph.test(entryPath: fileHandler.currentPath,
cache: cache,
entryNodes: [TargetNode(project: project,
target: target,
dependencies: [])])
// When
let got = try subject.generate(project: project,
options: GenerationOptions(),
graph: graph)
// Then
let schemesPath = got.path.appending(RelativePath("xcshareddata/xcschemes"))
let projectScheme = schemesPath.appending(component: "Project-Project.xcscheme")
let targetScheme = schemesPath.appending(component: "Target.xcscheme")
XCTAssertTrue(fileHandler.exists(projectScheme))
XCTAssertTrue(fileHandler.exists(targetScheme))
}
}