27 lines
891 B
Swift
27 lines
891 B
Swift
import Foundation
|
|
import XCTest
|
|
@testable import VelodyPlayback
|
|
|
|
@MainActor
|
|
final class AVFoundationPlaybackEngineTests: XCTestCase {
|
|
func testLoadTrackMissingFileThrowsPlaybackErrorAndLeavesEngineUnloaded() {
|
|
let engine = AVFoundationPlaybackEngine(fileManager: .default)
|
|
let fileURL = URL(fileURLWithPath: "/private/tmp/\(UUID().uuidString)-missing.mp3")
|
|
|
|
XCTAssertThrowsError(try engine.loadTrack(at: fileURL, startTime: 0)) { error in
|
|
XCTAssertEqual(
|
|
error as? PlaybackError,
|
|
.missingLocalFile(path: fileURL.path)
|
|
)
|
|
}
|
|
|
|
XCTAssertEqual(engine.currentTime, 0)
|
|
XCTAssertEqual(engine.duration, 0)
|
|
XCTAssertFalse(engine.isPlaying)
|
|
|
|
XCTAssertThrowsError(try engine.play()) { error in
|
|
XCTAssertEqual(error as? PlaybackError, .noTrackLoaded)
|
|
}
|
|
}
|
|
}
|