diff --git a/.swiftpm/product.xctestplan b/.swiftpm/product.xctestplan
new file mode 100644
index 0000000..100ec99
--- /dev/null
+++ b/.swiftpm/product.xctestplan
@@ -0,0 +1,24 @@
+{
+ "configurations" : [
+ {
+ "id" : "CBA25149-CE25-449E-A308-EE7557C98D23",
+ "name" : "Test Scheme Action",
+ "options" : {
+
+ }
+ }
+ ],
+ "defaultOptions" : {
+
+ },
+ "testTargets" : [
+ {
+ "target" : {
+ "containerPath" : "container:",
+ "identifier" : "Coffee-KitTests",
+ "name" : "Coffee-KitTests"
+ }
+ }
+ ],
+ "version" : 1
+}
diff --git a/.swiftpm/xcode/xcshareddata/xcschemes/Coffee-Kit.xcscheme b/.swiftpm/xcode/xcshareddata/xcschemes/Coffee-Kit.xcscheme
index 72bff8c..94028d1 100644
--- a/.swiftpm/xcode/xcshareddata/xcschemes/Coffee-Kit.xcscheme
+++ b/.swiftpm/xcode/xcshareddata/xcschemes/Coffee-Kit.xcscheme
@@ -27,8 +27,13 @@
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
- shouldUseLaunchSchemeArgsEnv = "YES"
- shouldAutocreateTestPlan = "YES">
+ shouldUseLaunchSchemeArgsEnv = "YES">
+
+
+
+
diff --git a/Sources/Coffee-Kit/Webservice/Manager/MenuManager.swift b/Sources/Coffee-Kit/Webservice/Manager/MenuManager.swift
index f3a9bcf..46b359b 100644
--- a/Sources/Coffee-Kit/Webservice/Manager/MenuManager.swift
+++ b/Sources/Coffee-Kit/Webservice/Manager/MenuManager.swift
@@ -17,8 +17,8 @@ import Foundation
// MARK: - Computed Properties
- public var itemSequence: CoffeeService {
- return CoffeeService(databaseAPI: webservice.databaseAPI)
+ public var itemSequence: ProductService {
+ return ProductService(databaseAPI: webservice.databaseAPI)
}
// MARK: - Initializer
diff --git a/Sources/Coffee-Kit/Webservice/Services/CoffeeService.swift b/Sources/Coffee-Kit/Webservice/Services/ProductService.swift
similarity index 78%
rename from Sources/Coffee-Kit/Webservice/Services/CoffeeService.swift
rename to Sources/Coffee-Kit/Webservice/Services/ProductService.swift
index 6934c0b..0fbf3cc 100644
--- a/Sources/Coffee-Kit/Webservice/Services/CoffeeService.swift
+++ b/Sources/Coffee-Kit/Webservice/Services/ProductService.swift
@@ -8,25 +8,25 @@
import Foundation
@MainActor
-public struct CoffeeService {
+public struct ProductService {
// MARK: Properties
- let coffeeURL: URL
+ let productURL: URL
// MARK: Initializer
public init(databaseAPI: DatabaseAPI) {
- self.coffeeURL = databaseAPI.baseURL / "coffee"
- print(coffeeURL)
+ self.productURL = databaseAPI.baseURL / "coffee"
+ print(productURL)
}
// MARK: Methods
public func getIds() async throws -> [String] {
- let coffeeIdsUrl = coffeeURL / "ids"
- let (data, response) = try await URLSession.shared.data(from: coffeeIdsUrl)
+ let productIdsUrl = productURL / "ids"
+ let (data, response) = try await URLSession.shared.data(from: productIdsUrl)
- guard let drinkIds = try? JSONDecoder().decode([String].self, from: data) else {
+ guard let productIds = try? JSONDecoder().decode([String].self, from: data) else {
print(response)
print("""
Error in \(#file)
@@ -36,15 +36,15 @@ public struct CoffeeService {
throw FetchError.decodingError
}
- return drinkIds
+ return productIds
}
public func load(by id: consuming String) async throws -> Product {
- let coffeeByIdUrl = coffeeURL / "id" / id
+ let coffeeByIdUrl = productURL / "id" / id
let (data, response) = try await URLSession.shared.data(from: coffeeByIdUrl)
- guard let coffee = try? JSONDecoder().decode(Product.self, from: data) else {
+ guard let product = try? JSONDecoder().decode(Product.self, from: data) else {
print(response)
let stacktrace = Thread.callStackSymbols.joined(separator: "\n")
@@ -57,7 +57,7 @@ public struct CoffeeService {
throw FetchError.decodingError
}
- return coffee
+ return product
}
public func load(by ids: [String]) async -> AsyncThrowingStream {
@@ -65,8 +65,8 @@ public struct CoffeeService {
Task {
do {
for id in ids {
- let coffeeModel = try await load(by: id)
- continuation.yield(coffeeModel)
+ let productModel = try await load(by: id)
+ continuation.yield(productModel)
}
continuation.finish()
} catch {
diff --git a/Tests/Coffee-KitTests/Coffee_LoverTests.swift b/Tests/Coffee-KitTests/Coffee_LoverTests.swift
index 1326c42..9dd562e 100644
--- a/Tests/Coffee-KitTests/Coffee_LoverTests.swift
+++ b/Tests/Coffee-KitTests/Coffee_LoverTests.swift
@@ -10,7 +10,7 @@ import Foundation
import XCTest
final class Coffee_LoverTests: XCTestCase {
- fileprivate func decodingCoffeTest() async throws {
+ func testDecodingProduct() throws {
// Write your test here and use APIs like `#expect(...)` to check expected conditions.
let ressource = """
@@ -35,4 +35,21 @@ final class Coffee_LoverTests: XCTestCase {
XCTAssertEqual(product.id.uuidString, "e074867a-0c6a-49ff-87ca-b1ba5dae5236".uppercased())
}
+
+ func testEncodingProduct() {
+ let product = Product()
+ guard let data = try? JSONEncoder().encode(product)
+ else {
+ XCTFail("Encoding failed")
+ return
+ }
+
+ guard let json = String(data: data, encoding: .utf8)
+ else {
+ XCTFail("Decoding failed")
+ return
+ }
+
+ XCTAssertFalse(json.isEmpty)
+ }
}
diff --git a/Tests/Coffee-KitTests/OrderTests.swift b/Tests/Coffee-KitTests/OrderTests.swift
index dd940bb..e0527c9 100644
--- a/Tests/Coffee-KitTests/OrderTests.swift
+++ b/Tests/Coffee-KitTests/OrderTests.swift
@@ -10,10 +10,10 @@ import Foundation
import XCTest
final class OrderTests: XCTestCase {
- fileprivate func testTakingOrder() async {
+ func testTakingOrder() async {
let databaseAPI = DatabaseAPI.dev
let webservice = await WebserviceProvider(inMode: databaseAPI)
- let orderManager = await OrderManager(from: webservice)
+ _ = await OrderManager(from: webservice)
//
// var products = orderManager.shoppingCard
// products.add( CakeModel(), to: "Cakes")
@@ -25,4 +25,6 @@ final class OrderTests: XCTestCase {
//
// await orderManager.takeOrder()
}
+
+
}