From 518d8e578be8581a7d8e809e3b3e5cbba6d6e407 Mon Sep 17 00:00:00 2001 From: yonaskolb Date: Sun, 27 Oct 2019 23:15:12 +1100 Subject: [PATCH] restructure test targets --- Package.swift | 31 +++++++++++++++++++ Sources/{XcodeGenKit => Core}/Glob.swift | 0 Sources/{XcodeGenKit => Core}/MD5.swift | 0 .../PathExtensions.swift | 0 .../Core}/StringDiff.swift | 0 .../CacheFile.swift | 2 +- .../SpecLoader.swift | 1 - .../TestSupport}/TestHelpers.swift | 7 ++--- Sources/XcodeGenKit/SourceGenerator.swift | 1 + .../GlobTests.swift | 1 + .../PathExtensionsTests.swift | 2 ++ .../FixtureTests.swift} | 9 ++++-- .../ProjectSpecTests.swift | 1 + .../SpecLoadingTests.swift | 2 +- .../CarthageDependencyResolverTests.swift | 1 + Tests/XcodeGenKitTests/GeneratorHelpers.swift | 1 + .../ProjectGeneratorTests.swift | 1 + .../SchemeGeneratorTests.swift | 1 + 18 files changed, 52 insertions(+), 9 deletions(-) rename Sources/{XcodeGenKit => Core}/Glob.swift (100%) rename Sources/{XcodeGenKit => Core}/MD5.swift (100%) rename Sources/{XcodeGenKit => Core}/PathExtensions.swift (100%) rename {Tests/XcodeGenKitTests => Sources/Core}/StringDiff.swift (100%) rename Sources/{XcodeGenKit => ProjectSpec}/CacheFile.swift (97%) rename Sources/{XcodeGenKit => ProjectSpec}/SpecLoader.swift (99%) rename {Tests/XcodeGenKitTests => Sources/TestSupport}/TestHelpers.swift (89%) rename Tests/{XcodeGenKitTests => CoreTests}/GlobTests.swift (99%) rename Tests/{XcodeGenKitTests => CoreTests}/PathExtensionsTests.swift (99%) rename Tests/{XcodeGenKitTests/ProjectFixtureTests.swift => FixtureTests/FixtureTests.swift} (79%) rename Tests/{XcodeGenKitTests => ProjectSpecTests}/ProjectSpecTests.swift (99%) rename Tests/{XcodeGenKitTests => ProjectSpecTests}/SpecLoadingTests.swift (99%) diff --git a/Package.swift b/Package.swift index e6389e88..772007e8 100644 --- a/Package.swift +++ b/Package.swift @@ -35,21 +35,52 @@ let package = Package( "JSONUtilities", "XcodeProj", "PathKit", + "Core", ]), .target(name: "ProjectSpec", dependencies: [ "JSONUtilities", "XcodeProj", "Yams", + "Core", + ]), + .target(name: "Core", dependencies: [ + "PathKit", + "Yams", + ]), + .target(name: "TestSupport", dependencies: [ + "XcodeProj", + "Spectre", + "PathKit", ]), .testTarget(name: "XcodeGenKitTests", dependencies: [ "XcodeGenKit", "Spectre", "PathKit", + "TestSupport", + ]), + .testTarget(name: "FixtureTests", dependencies: [ + "XcodeGenKit", + "Spectre", + "PathKit", + "TestSupport", + ]), + .testTarget(name: "CoreTests", dependencies: [ + "Core", + "Spectre", + "PathKit", + "TestSupport", + ]), + .testTarget(name: "ProjectSpecTests", dependencies: [ + "ProjectSpec", + "Spectre", + "PathKit", + "TestSupport", ]), .testTarget(name: "PerformanceTests", dependencies: [ "XcodeGenKit", "Spectre", "PathKit", + "TestSupport", ]), ] ) diff --git a/Sources/XcodeGenKit/Glob.swift b/Sources/Core/Glob.swift similarity index 100% rename from Sources/XcodeGenKit/Glob.swift rename to Sources/Core/Glob.swift diff --git a/Sources/XcodeGenKit/MD5.swift b/Sources/Core/MD5.swift similarity index 100% rename from Sources/XcodeGenKit/MD5.swift rename to Sources/Core/MD5.swift diff --git a/Sources/XcodeGenKit/PathExtensions.swift b/Sources/Core/PathExtensions.swift similarity index 100% rename from Sources/XcodeGenKit/PathExtensions.swift rename to Sources/Core/PathExtensions.swift diff --git a/Tests/XcodeGenKitTests/StringDiff.swift b/Sources/Core/StringDiff.swift similarity index 100% rename from Tests/XcodeGenKitTests/StringDiff.swift rename to Sources/Core/StringDiff.swift diff --git a/Sources/XcodeGenKit/CacheFile.swift b/Sources/ProjectSpec/CacheFile.swift similarity index 97% rename from Sources/XcodeGenKit/CacheFile.swift rename to Sources/ProjectSpec/CacheFile.swift index b8afbb47..4f055171 100644 --- a/Sources/XcodeGenKit/CacheFile.swift +++ b/Sources/ProjectSpec/CacheFile.swift @@ -1,5 +1,5 @@ import Foundation -import ProjectSpec +import Core public class CacheFile { diff --git a/Sources/XcodeGenKit/SpecLoader.swift b/Sources/ProjectSpec/SpecLoader.swift similarity index 99% rename from Sources/XcodeGenKit/SpecLoader.swift rename to Sources/ProjectSpec/SpecLoader.swift index df594dd8..f5f2f9a5 100644 --- a/Sources/XcodeGenKit/SpecLoader.swift +++ b/Sources/ProjectSpec/SpecLoader.swift @@ -1,7 +1,6 @@ import Foundation import JSONUtilities import PathKit -import ProjectSpec import XcodeProj import Yams diff --git a/Tests/XcodeGenKitTests/TestHelpers.swift b/Sources/TestSupport/TestHelpers.swift similarity index 89% rename from Tests/XcodeGenKitTests/TestHelpers.swift rename to Sources/TestSupport/TestHelpers.swift index 1802dca6..88f2c9d4 100644 --- a/Tests/XcodeGenKitTests/TestHelpers.swift +++ b/Sources/TestSupport/TestHelpers.swift @@ -1,13 +1,12 @@ import Foundation import PathKit -import ProjectSpec import Spectre import XcodeProj import XCTest -let fixturePath = Path(#file).parent().parent() + "Fixtures" +public let fixturePath = Path(#file).parent().parent().parent() + "Tests/Fixtures" -func doThrowing(file: String = #file, line: Int = #line, _ closure: () throws -> T) throws -> T { +public func doThrowing(file: String = #file, line: Int = #line, _ closure: () throws -> T) throws -> T { do { return try closure() } catch { @@ -15,7 +14,7 @@ func doThrowing(file: String = #file, line: Int = #line, _ closure: () throws } } -func expectError(_ expectedError: T, function: String = #function, file: String = #file, line: Int = #line, _ closure: () throws -> Void) throws where T: CustomStringConvertible { +public func expectError(_ expectedError: T, function: String = #function, file: String = #file, line: Int = #line, _ closure: () throws -> Void) throws where T: CustomStringConvertible { do { try closure() } catch let error as T { diff --git a/Sources/XcodeGenKit/SourceGenerator.swift b/Sources/XcodeGenKit/SourceGenerator.swift index 3c152f84..0b6e96c9 100644 --- a/Sources/XcodeGenKit/SourceGenerator.swift +++ b/Sources/XcodeGenKit/SourceGenerator.swift @@ -2,6 +2,7 @@ import Foundation import PathKit import ProjectSpec import XcodeProj +import Core struct SourceFile { let path: Path diff --git a/Tests/XcodeGenKitTests/GlobTests.swift b/Tests/CoreTests/GlobTests.swift similarity index 99% rename from Tests/XcodeGenKitTests/GlobTests.swift rename to Tests/CoreTests/GlobTests.swift index 9ae8df7e..01558931 100644 --- a/Tests/XcodeGenKitTests/GlobTests.swift +++ b/Tests/CoreTests/GlobTests.swift @@ -7,6 +7,7 @@ // Adapted from https://gist.github.com/efirestone/ce01ae109e08772647eb061b3bb387c3 import XCTest +@testable import Core @testable import XcodeGenKit class GlobTests: XCTestCase { diff --git a/Tests/XcodeGenKitTests/PathExtensionsTests.swift b/Tests/CoreTests/PathExtensionsTests.swift similarity index 99% rename from Tests/XcodeGenKitTests/PathExtensionsTests.swift rename to Tests/CoreTests/PathExtensionsTests.swift index 05661a2d..ddbd17d2 100644 --- a/Tests/XcodeGenKitTests/PathExtensionsTests.swift +++ b/Tests/CoreTests/PathExtensionsTests.swift @@ -1,6 +1,8 @@ import Spectre import PathKit import XCTest +import Core +import TestSupport class PathExtensionsTests: XCTestCase { diff --git a/Tests/XcodeGenKitTests/ProjectFixtureTests.swift b/Tests/FixtureTests/FixtureTests.swift similarity index 79% rename from Tests/XcodeGenKitTests/ProjectFixtureTests.swift rename to Tests/FixtureTests/FixtureTests.swift index faeb8498..2d81a9e7 100644 --- a/Tests/XcodeGenKitTests/ProjectFixtureTests.swift +++ b/Tests/FixtureTests/FixtureTests.swift @@ -4,14 +4,19 @@ import Spectre import XcodeGenKit import XcodeProj import XCTest +import TestSupport -class ProjectFixtureTests: XCTestCase { +class FixtureTests: XCTestCase { func testProjectFixture() { describe { - $0.it("generates fixtures") { + $0.it("generates Test Project") { try generateXcodeProject(specPath: fixturePath + "TestProject/project.yml") + } + $0.it("generates Carthage Project") { try generateXcodeProject(specPath: fixturePath + "CarthageProject/project.yml") + } + $0.it("generates SPM Project") { try generateXcodeProject(specPath: fixturePath + "SPM/project.yml") } } diff --git a/Tests/XcodeGenKitTests/ProjectSpecTests.swift b/Tests/ProjectSpecTests/ProjectSpecTests.swift similarity index 99% rename from Tests/XcodeGenKitTests/ProjectSpecTests.swift rename to Tests/ProjectSpecTests/ProjectSpecTests.swift index d4bebdbf..fc8d8b18 100644 --- a/Tests/XcodeGenKitTests/ProjectSpecTests.swift +++ b/Tests/ProjectSpecTests/ProjectSpecTests.swift @@ -4,6 +4,7 @@ import Spectre import XcodeGenKit import XcodeProj import XCTest +import TestSupport class ProjectSpecTests: XCTestCase { diff --git a/Tests/XcodeGenKitTests/SpecLoadingTests.swift b/Tests/ProjectSpecTests/SpecLoadingTests.swift similarity index 99% rename from Tests/XcodeGenKitTests/SpecLoadingTests.swift rename to Tests/ProjectSpecTests/SpecLoadingTests.swift index e75d691e..33958a0e 100644 --- a/Tests/XcodeGenKitTests/SpecLoadingTests.swift +++ b/Tests/ProjectSpecTests/SpecLoadingTests.swift @@ -2,10 +2,10 @@ import Foundation import PathKit import ProjectSpec import Spectre -import XcodeGenKit import XcodeProj import XCTest import Yams +import TestSupport class SpecLoadingTests: XCTestCase { diff --git a/Tests/XcodeGenKitTests/CarthageDependencyResolverTests.swift b/Tests/XcodeGenKitTests/CarthageDependencyResolverTests.swift index 84407904..8dfe99e5 100644 --- a/Tests/XcodeGenKitTests/CarthageDependencyResolverTests.swift +++ b/Tests/XcodeGenKitTests/CarthageDependencyResolverTests.swift @@ -3,6 +3,7 @@ import Spectre import XCTest import PathKit @testable import XcodeGenKit +import TestSupport class CarthageDependencyResolverTests: XCTestCase { diff --git a/Tests/XcodeGenKitTests/GeneratorHelpers.swift b/Tests/XcodeGenKitTests/GeneratorHelpers.swift index 7fbd207f..595f1524 100644 --- a/Tests/XcodeGenKitTests/GeneratorHelpers.swift +++ b/Tests/XcodeGenKitTests/GeneratorHelpers.swift @@ -5,6 +5,7 @@ import XcodeGenKit import XcodeProj import XCTest import Yams +import TestSupport extension Project { diff --git a/Tests/XcodeGenKitTests/ProjectGeneratorTests.swift b/Tests/XcodeGenKitTests/ProjectGeneratorTests.swift index 55bdf09a..d1f9fef6 100644 --- a/Tests/XcodeGenKitTests/ProjectGeneratorTests.swift +++ b/Tests/XcodeGenKitTests/ProjectGeneratorTests.swift @@ -5,6 +5,7 @@ import XcodeGenKit import XcodeProj import XCTest import Yams +import TestSupport private let app = Target( name: "MyApp", diff --git a/Tests/XcodeGenKitTests/SchemeGeneratorTests.swift b/Tests/XcodeGenKitTests/SchemeGeneratorTests.swift index 1ee6d96b..e58d5546 100644 --- a/Tests/XcodeGenKitTests/SchemeGeneratorTests.swift +++ b/Tests/XcodeGenKitTests/SchemeGeneratorTests.swift @@ -5,6 +5,7 @@ import XcodeGenKit import XcodeProj import XCTest import Yams +import TestSupport private let app = Target( name: "MyApp",