diff --git a/swift/.gitignore b/swift/.gitignore index 02c08753..95c43209 100644 --- a/swift/.gitignore +++ b/swift/.gitignore @@ -2,3 +2,4 @@ /.build /Packages /*.xcodeproj +xcuserdata/ diff --git a/swift/Package.swift b/swift/Package.swift index 3475d81e..fea88e3e 100644 --- a/swift/Package.swift +++ b/swift/Package.swift @@ -1,5 +1,23 @@ +// swift-tools-version:5.1 + import PackageDescription let package = Package( - name: "GildedRose" + name: "GildedRose", + products: [ + .library( + name: "GildedRose", + targets: ["GildedRose"]), + ], + targets: [ + .target( + name: "GildedRose", + dependencies: []), + .target( + name: "GildedRoseApp", + dependencies: ["GildedRose"]), + .testTarget( + name: "GildedRoseTests", + dependencies: ["GildedRose"]), + ] ) diff --git a/swift/Sources/GildedRose.swift b/swift/Sources/GildedRose/GildedRose.swift similarity index 97% rename from swift/Sources/GildedRose.swift rename to swift/Sources/GildedRose/GildedRose.swift index 649e97e4..9b975467 100644 --- a/swift/Sources/GildedRose.swift +++ b/swift/Sources/GildedRose/GildedRose.swift @@ -1,13 +1,11 @@ - public class GildedRose { var items:[Item] - required public init(items:[Item]) { + public init(items:[Item]) { self.items = items } public func updateQuality() { - for i in 0.. 0) { diff --git a/swift/Sources/Item.swift b/swift/Sources/GildedRose/Item.swift similarity index 99% rename from swift/Sources/Item.swift rename to swift/Sources/GildedRose/Item.swift index 1533a3da..dbd81b12 100644 --- a/swift/Sources/Item.swift +++ b/swift/Sources/GildedRose/Item.swift @@ -1,4 +1,3 @@ - public class Item { public var name: String public var sellIn: Int diff --git a/swift/Sources/main.swift b/swift/Sources/GildedRoseApp/main.swift similarity index 98% rename from swift/Sources/main.swift rename to swift/Sources/GildedRoseApp/main.swift index 35cf52b1..8b39590f 100644 --- a/swift/Sources/main.swift +++ b/swift/Sources/GildedRoseApp/main.swift @@ -1,3 +1,4 @@ +import GildedRose let items = [ Item(name: "+5 Dexterity Vest", sellIn: 10, quality: 20), @@ -18,7 +19,6 @@ if (CommandLine.argc > 1) { days = Int(CommandLine.arguments[1])! + 1 } - for i in 0.. [XCTestCaseEntry] { + return [ + testCase(GildedRoseTests.allTests), + ] +} +#endif diff --git a/swift/Tests/LinuxMain.swift b/swift/Tests/LinuxMain.swift index b80b87f5..6d69d936 100644 --- a/swift/Tests/LinuxMain.swift +++ b/swift/Tests/LinuxMain.swift @@ -1,7 +1,7 @@ -@testable import GildedRoseTestSuit - import XCTest -XCTMain([ - testCase(GildedRoseTests.allTests), -]) +import GildedRoseTests + +var tests = [XCTestCaseEntry]() +tests += GildedRoseTests.allTests() +XCTMain(tests) diff --git a/swift/Tests/swiftTests/GildedRoseTests.swift b/swift/Tests/swiftTests/GildedRoseTests.swift deleted file mode 100644 index 67a7c251..00000000 --- a/swift/Tests/swiftTests/GildedRoseTests.swift +++ /dev/null @@ -1,18 +0,0 @@ -@testable import GildedRose -import XCTest - -class GildedRoseTests: XCTestCase { - - func testFoo() { - let items = [Item(name: "foo", sellIn: 0, quality: 0)] - let app = GildedRose(items: items); - app.updateQuality(); - XCTAssertEqual("fixme", app.items[0].name); - } - - static var allTests : [(String, (GildedRoseTests) -> () throws -> Void)] { - return [ - ("testFoo", testFoo), - ] - } -}