Skip to content

Commit

Permalink
Complete tests setup
Browse files Browse the repository at this point in the history
  • Loading branch information
fpseverino committed Jul 29, 2024
1 parent 60b709d commit 90967ed
Show file tree
Hide file tree
Showing 15 changed files with 123 additions and 19 deletions.
2 changes: 1 addition & 1 deletion Sources/Orders/Orders.docc/GettingStarted.md
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,7 @@ final class OrderDelegate: OrdersDelegate {

func template<O: OrderModel>(for order: O, db: Database) async throws -> URL {
// The location might vary depending on the type of order.
return URL(fileURLWithPath: "Templates/Orders/", isDirectory: true)
URL(fileURLWithPath: "Templates/Orders/", isDirectory: true)
}
}
```
Expand Down
2 changes: 1 addition & 1 deletion Sources/Passes/Passes.docc/GettingStarted.md
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,7 @@ final class PassDelegate: PassesDelegate {

func template<P: PassModel>(for pass: P, db: Database) async throws -> URL {
// The location might vary depending on the type of pass.
return URL(fileURLWithPath: "Templates/Passes/", isDirectory: true)
URL(fileURLWithPath: "Templates/Passes/", isDirectory: true)
}
}
```
Expand Down
26 changes: 26 additions & 0 deletions Tests/Certificates/WWDR.pem
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
-----BEGIN CERTIFICATE-----
MIIEVTCCAz2gAwIBAgIUE9x3lVJx5T3GMujM/+Uh88zFztIwDQYJKoZIhvcNAQEL
BQAwYjELMAkGA1UEBhMCVVMxEzARBgNVBAoTCkFwcGxlIEluYy4xJjAkBgNVBAsT
HUFwcGxlIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRYwFAYDVQQDEw1BcHBsZSBS
b290IENBMB4XDTIwMTIxNjE5MzYwNFoXDTMwMTIxMDAwMDAwMFowdTFEMEIGA1UE
Aww7QXBwbGUgV29ybGR3aWRlIERldmVsb3BlciBSZWxhdGlvbnMgQ2VydGlmaWNh
dGlvbiBBdXRob3JpdHkxCzAJBgNVBAsMAkc0MRMwEQYDVQQKDApBcHBsZSBJbmMu
MQswCQYDVQQGEwJVUzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANAf
eKp6JzKwRl/nF3bYoJ0OKY6tPTKlxGs3yeRBkWq3eXFdDDQEYHX3rkOPR8SGHgjo
v9Y5Ui8eZ/xx8YJtPH4GUnadLLzVQ+mxtLxAOnhRXVGhJeG+bJGdayFZGEHVD41t
QSo5SiHgkJ9OE0/QjJoyuNdqkh4laqQyziIZhQVg3AJK8lrrd3kCfcCXVGySjnYB
5kaP5eYq+6KwrRitbTOFOCOL6oqW7Z+uZk+jDEAnbZXQYojZQykn/e2kv1MukBVl
PNkuYmQzHWxq3Y4hqqRfFcYw7V/mjDaSlLfcOQIA+2SM1AyB8j/VNJeHdSbCb64D
YyEMe9QbsWLFApy9/a8CAwEAAaOB7zCB7DASBgNVHRMBAf8ECDAGAQH/AgEAMB8G
A1UdIwQYMBaAFCvQaUeUdgn+9GuNLkCm90dNfwheMEQGCCsGAQUFBwEBBDgwNjA0
BggrBgEFBQcwAYYoaHR0cDovL29jc3AuYXBwbGUuY29tL29jc3AwMy1hcHBsZXJv
b3RjYTAuBgNVHR8EJzAlMCOgIaAfhh1odHRwOi8vY3JsLmFwcGxlLmNvbS9yb290
LmNybDAdBgNVHQ4EFgQUW9n6HeeaGgujmXYiUIY+kchbd6gwDgYDVR0PAQH/BAQD
AgEGMBAGCiqGSIb3Y2QGAgEEAgUAMA0GCSqGSIb3DQEBCwUAA4IBAQA/Vj2e5bbD
eeZFIGi9v3OLLBKeAuOugCKMBB7DUshwgKj7zqew1UJEggOCTwb8O0kU+9h0UoWv
p50h5wESA5/NQFjQAde/MoMrU1goPO6cn1R2PWQnxn6NHThNLa6B5rmluJyJlPef
x4elUWY0GzlxOSTjh2fvpbFoe4zuPfeutnvi0v/fYcZqdUmVIkSoBPyUuAsuORFJ
EtHlgepZAE9bPFo22noicwkJac3AfOriJP6YRLj477JxPxpd1F1+M02cHSS+APCQ
A1iZQT0xWmJArzmoUUOSqwSonMJNsUvSq3xKX+udO7xPiEAGE/+QF4oIRynoYpgp
pU8RBWk6z/Kf
-----END CERTIFICATE-----
18 changes: 18 additions & 0 deletions Tests/Certificates/certificate.pem
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
-----BEGIN CERTIFICATE-----
MIIC8TCCAdmgAwIBAgICbE8wDQYJKoZIhvcNAQENBQAwGDEWMBQGA1UEAwwNUHVz
aHlUZXN0Um9vdDAgFw0xNzA0MTcwMDUzMzBaGA8yMTE3MDMyNDAwNTMzMFowHzEd
MBsGA1UEAwwUY29tLnJlbGF5cmlkZXMucHVzaHkwggEiMA0GCSqGSIb3DQEBAQUA
A4IBDwAwggEKAoIBAQDHZkZBnDKM4Gt+WZwTc5h2GuT1Di7TfUE8SxDhw5wn3c36
41/6lnrTj1Sh5tAsed8N2FDrD+Hp9zTkKljDGe8tuDncT1qSrp/UuikgdIAAiCXA
/vClWPYqZcHAUc9/OcfRiyK5AmJdzz+UbY803ArSPHjz3+Mk6C9tnzBXzG8oJq9o
EKJhwUYX+7l8+m0omtZXhMCOrbmZ2s69m6hTwHJKdC0mEngdyeiYIsbHaoSwxR7U
j8wRstdr2xWhPg1fdIVHzudYubJ7M/h95JQFKtwqEevtLUa4BJgi8SKvRX5NnkGE
QMui1ercRuklVURTeoGDQYENiFnzTyI0J2tw3T+dAgMBAAGjPDA6MAkGA1UdEwQC
MAAwDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcD
ATANBgkqhkiG9w0BAQ0FAAOCAQEAnHHYMvBWglQLOUmNOalCMopmk9yKHM7+Sc9h
KsTWJW+YohF5zkRhnwUFxW85Pc63rRVA0qyI5zHzRtwYlcZHU57KttJyDGe1rm/0
ZUqXharurJzyI09jcwRpDY8EGktrGirE1iHDqQTHNDHyS8iMVU6aPCo0xur63G5y
XzoIVhQXsBuwoU4VKb3n5CrxKEVcmE/nYF/Tk0rTtCrZF7TR3y/oxrp359goJ1b2
/OjXN4dlqND41SbVTTL0FyXU3ebaS4DALA3pyVa1Rijw7vgEbFabsuMaAbdvlprn
RwUjsrRVu3Tx7sp/NqmeBLVru5nH/yHStDjSdvQtI2ipNGK/9w==
-----END CERTIFICATE-----
28 changes: 28 additions & 0 deletions Tests/Certificates/key.pem
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
-----BEGIN PRIVATE KEY-----
MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDHZkZBnDKM4Gt+
WZwTc5h2GuT1Di7TfUE8SxDhw5wn3c3641/6lnrTj1Sh5tAsed8N2FDrD+Hp9zTk
KljDGe8tuDncT1qSrp/UuikgdIAAiCXA/vClWPYqZcHAUc9/OcfRiyK5AmJdzz+U
bY803ArSPHjz3+Mk6C9tnzBXzG8oJq9oEKJhwUYX+7l8+m0omtZXhMCOrbmZ2s69
m6hTwHJKdC0mEngdyeiYIsbHaoSwxR7Uj8wRstdr2xWhPg1fdIVHzudYubJ7M/h9
5JQFKtwqEevtLUa4BJgi8SKvRX5NnkGEQMui1ercRuklVURTeoGDQYENiFnzTyI0
J2tw3T+dAgMBAAECggEBAMOsIZWQ6ipEsDe1R+vuq9Z6XeP8nwb7C2FXaKGji0Gz
78YcCruln7KsHKkkD3UVw0Wa2Q1S8Kbf6A9fXutWL9f1yRHg7Ui0BDSE2ob2zAW5
lRLnGs+nlSnV4WQQ5EY9NVDz8IcNR+o2znWhbb65kATvQuJO+l/lWWWBqbb+7rW+
RHy43p7U8cK63nXJy9eHZ7eOgGGUMUX+Yg0g47RGYxlIeSDrtPCXlNuwwAJY7Ecp
LVltCAyCJEaLVwQpz61PTdmkb9HCvkwiuL6cnjtpoAdXCWX7tV61UNweNkvALIWR
kMukFFE/H6JlAkcbw4na1KwQ3glWIIB2H/vZyMNdnyECgYEA78VEXo+iAQ6or4bY
xUQFd/hIibIYMzq8PxDMOmD86G78u5Ho0ytetht5Xk1xmhv402FZCL1LsAEWpCBs
a9LUwo30A23KaTA7Oy5oo5Md1YJejSNOCR+vs5wAo0SZov5tQaxVMoj3vZZqnJzJ
3A+XUgYZddIFkn8KJjgU/QVapTMCgYEA1OV1okYF2u5VW90RkVdvQONNcUvlKEL4
UMSF3WJnORmtUL3Dt8AFt9b7pfz6WtVr0apT5SSIFA1+305PTpjjaw25m1GftL3U
5QwkmgTKxnPD/YPC6tImp+OUXHmk+iTgmQ9HaBpEplcyjD0EP2LQsIc6qiku/P2n
OT8ArOkk5+8CgYEA7B98wRL6G8hv3swRVdMy/36HEPNOWcUR9Zl5RlSVO+FxCtca
Tjt7viM4VuI1aer6FFDd+XlRvDaWMXOs0lKCLEbXczkACK7y5clCSzRqQQVuT9fg
1aNayKptBlxcYOPmfLJWBLpWH2KuAyV0tT61apWPJTR7QFXTjOfV44cOSXkCgYAH
CvAxRg+7hlbcixuhqzrK8roFHXWfN1fvlBC5mh/AC9Fn8l8fHQMTadE5VH0TtCu0
6+WKlwLJZwjjajvFZdlgGTwinzihSgZY7WXoknAC0KGTKWCxU/Jja2vlA0Ep5T5o
0dCS6QuMVSYe7YXOcv5kWJTgPCyJwfpeMm9bSPsnkQKBgQChy4vU3J6CxGzwuvd/
011kszao+cHn1DdMTyUhvA/O/paB+BAVktHm+o/i+kOk4OcPjhRqewzZZdf7ie5U
hUC8kIraXM4aZt69ThQkAIER89wlhxsFXUmGf7ZMXm8f7pvM6/MDaMW3mEsfbL0U
Y3jy0E30W5s1XCW3gmZ1Vg2xAg==
-----END PRIVATE KEY-----
17 changes: 13 additions & 4 deletions Tests/OrdersTests/OrdersTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,26 @@ import FluentSQLiteDriver

final class OrdersTests: XCTestCase {
var app: Application!
let orderDelegate = OrderDelegate()
let orderDelegate = TestOrdersDelegate()
var ordersService: OrdersService!

override func setUp() async throws {
self.app = try await Application.make(.testing)

app.databases.use(.sqlite(.memory), as: .sqlite)

OrdersService.register(migrations: app.migrations)
app.migrations.add(CreateOrderData())
// let ordersService = try OrdersService(app: app, delegate: orderDelegate)
// app.databases.middleware.use(OrderDataMiddleware(service: ordersService), on: .sqlite)
ordersService = try OrdersService(app: app, delegate: orderDelegate)
app.databases.middleware.use(OrderDataMiddleware(service: ordersService), on: .sqlite)

try await app.autoMigrate()
}

func testOrderGeneration() async throws {
let orderData = OrderData(title: "Test Order")
try await orderData.create(on: app.db)
let order = try await orderData.$order.get(on: app.db)
let data = try await ordersService.generateOrderContent(for: order, on: app.db)
XCTAssertNotNil(data)
}
}
Binary file added Tests/OrdersTests/Templates/icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Tests/OrdersTests/Templates/pet_store_logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,14 @@ import Vapor
import Fluent
import Orders

final class OrderDelegate: OrdersDelegate {
let sslSigningFilesDirectory = URL(fileURLWithPath: "Certificates/Orders/", isDirectory: true)
final class TestOrdersDelegate: OrdersDelegate {
let sslSigningFilesDirectory = URL(
fileURLWithPath: "\(FileManager.default.currentDirectoryPath)/Tests/Certificates/",
isDirectory: true
)

let pemPrivateKeyPassword: String? = "password"
let pemCertificate = "certificate.pem"
let pemPrivateKey = "key.pem"

func encode<O: OrderModel>(order: O, db: any Database, encoder: JSONEncoder) async throws -> Data {
guard let orderData = try await OrderData.query(on: db)
Expand All @@ -22,6 +26,9 @@ final class OrderDelegate: OrdersDelegate {
}

func template<O: OrderModel>(for: O, db: any Database) async throws -> URL {
return URL(fileURLWithPath: "Templates/Orders/", isDirectory: true)
URL(
fileURLWithPath: "\(FileManager.default.currentDirectoryPath)/Tests/OrdersTests/Templates/",
isDirectory: true
)
}
}
2 changes: 1 addition & 1 deletion Tests/PassesTests/PassData.swift
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ struct PassJSONData: PassJSON.Properties {
let organizationName = "vapor-community"
let passTypeIdentifier = "pass.com.vapor-community.PassKit"
let serialNumber: String
let teamIdentifier = "ABCD1234"
let teamIdentifier = "K6512ZA2S5"

private let webServiceURL = "https://www.example.com/api/passes/"
private let authenticationToken: String
Expand Down
17 changes: 13 additions & 4 deletions Tests/PassesTests/PassesTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,26 @@ import FluentSQLiteDriver

final class PassesTests: XCTestCase {
var app: Application!
let passDelegate = PassDelegate()
let passDelegate = TestPassesDelegate()
var passesService: PassesService!

override func setUp() async throws {
self.app = try await Application.make(.testing)

app.databases.use(.sqlite(.memory), as: .sqlite)

PassesService.register(migrations: app.migrations)
app.migrations.add(CreatePassData())
// let passesService = try PassesService(app: app, delegate: passDelegate)
// app.databases.middleware.use(PassDataMiddleware(service: passesService), on: .sqlite)
passesService = try PassesService(app: app, delegate: passDelegate)
app.databases.middleware.use(PassDataMiddleware(service: passesService), on: .sqlite)

try await app.autoMigrate()
}

func testPassGeneration() async throws {
let passData = PassData(title: "Test Pass")
try await passData.create(on: app.db)
let pass = try await passData.$pass.get(on: app.db)
let data = try await passesService.generatePassContent(for: pass, on: app.db)
XCTAssertNotNil(data)
}
}
Binary file added Tests/PassesTests/Templates/icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Tests/PassesTests/Templates/logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,14 @@ import Vapor
import Fluent
import Passes

final class PassDelegate: PassesDelegate {
let sslSigningFilesDirectory = URL(fileURLWithPath: "Certificates/Passes/", isDirectory: true)
final class TestPassesDelegate: PassesDelegate {
let sslSigningFilesDirectory = URL(
fileURLWithPath: "\(FileManager.default.currentDirectoryPath)/Tests/Certificates/",
isDirectory: true
)

let pemPrivateKeyPassword: String? = "password"
let pemCertificate = "certificate.pem"
let pemPrivateKey = "key.pem"

func encode<P: PassModel>(pass: P, db: any Database, encoder: JSONEncoder) async throws -> Data {
guard let passData = try await PassData.query(on: db)
Expand Down Expand Up @@ -41,6 +45,9 @@ final class PassDelegate: PassesDelegate {
*/

func template<P: PassModel>(for pass: P, db: any Database) async throws -> URL {
return URL(fileURLWithPath: "Templates/Passes/", isDirectory: true)
URL(
fileURLWithPath: "\(FileManager.default.currentDirectoryPath)/Tests/PassesTests/Templates/",
isDirectory: true
)
}
}

0 comments on commit 90967ed

Please sign in to comment.