velody/packages/apple/VelodyPlayback/Tests/VelodyPlaybackTests/AVFoundationPlaybackEngineTests.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)
}
}
}