94 lines
2.4 KiB
Swift
94 lines
2.4 KiB
Swift
import Dependencies
|
|
import Foundation
|
|
import ManualDCore
|
|
import Testing
|
|
|
|
@testable import DatabaseClient
|
|
|
|
@Suite
|
|
struct TrunkSizeTests {
|
|
|
|
@Test
|
|
func happyPath() async throws {
|
|
try await withTestUserAndProject { _, project in
|
|
@Dependency(\.database) var database
|
|
|
|
let room = try await database.rooms.create(
|
|
.init(
|
|
projectID: project.id, name: "Test", heatingLoad: 12345, coolingTotal: 12345,
|
|
coolingSensible: nil, registerCount: 5)
|
|
)
|
|
|
|
let trunk = try await database.trunkSizes.create(
|
|
.init(
|
|
projectID: project.id,
|
|
type: .supply,
|
|
rooms: [room.id: [1, 2, 3]],
|
|
height: 8,
|
|
name: "Test Trunk"
|
|
)
|
|
)
|
|
|
|
let fetched = try await database.trunkSizes.fetch(project.id)
|
|
#expect(fetched == [trunk])
|
|
|
|
let got = try await database.trunkSizes.get(trunk.id)
|
|
#expect(got == trunk)
|
|
|
|
let updated = try await database.trunkSizes.update(
|
|
trunk.id, .init(type: .return)
|
|
)
|
|
#expect(updated.type == .return)
|
|
#expect(updated.id == trunk.id)
|
|
|
|
try await database.trunkSizes.delete(trunk.id)
|
|
}
|
|
}
|
|
|
|
@Test
|
|
func notFound() async throws {
|
|
try await withTestUserAndProject { _, project in
|
|
@Dependency(\.database.trunkSizes) var trunks
|
|
|
|
await #expect(throws: NotFoundError.self) {
|
|
try await trunks.create(
|
|
.init(projectID: project.id, type: .supply, rooms: [UUID(0): [1]])
|
|
)
|
|
}
|
|
|
|
await #expect(throws: NotFoundError.self) {
|
|
try await trunks.delete(UUID(0))
|
|
}
|
|
|
|
await #expect(throws: NotFoundError.self) {
|
|
try await trunks.update(UUID(0), .init(type: .return))
|
|
}
|
|
}
|
|
}
|
|
|
|
@Test(
|
|
arguments: [
|
|
TrunkModel(projectID: UUID(0), type: .return, height: 8, name: ""),
|
|
TrunkModel(projectID: UUID(0), type: .return, height: -8, name: "Test"),
|
|
]
|
|
)
|
|
func validations(model: TrunkModel) {
|
|
#expect(throws: (any Error).self) {
|
|
try model.validate()
|
|
}
|
|
}
|
|
|
|
@Test(
|
|
arguments: [
|
|
TrunkRoomModel(trunkID: UUID(0), roomID: UUID(0), registers: [-1, 1], type: .return),
|
|
TrunkRoomModel(trunkID: UUID(0), roomID: UUID(0), registers: [1, -1], type: .return),
|
|
TrunkRoomModel(trunkID: UUID(0), roomID: UUID(0), registers: [], type: .return),
|
|
]
|
|
)
|
|
func trunkRoomModelValidations(model: TrunkRoomModel) {
|
|
#expect(throws: (any Error).self) {
|
|
try model.validate()
|
|
}
|
|
}
|
|
}
|