Zum Inhalt

apple/PhysarumEngine/Tests/PhysarumEngineTests/AudioRouteModeTests.swift

import XCTest
@testable import PhysarumEngine

final class AudioRouteModeTests: XCTestCase {
    func testDecodeWithoutModeDefaultsToLevel() throws {
        let json = #"{"source":"bass","target":"moveSpeed","depth":1.0}"#.data(using: .utf8)!
        let route = try JSONDecoder().decode(AudioRoute.self, from: json)
        XCTAssertEqual(route.mode, .level)
    }
    func testDecodeWithMode() throws {
        let json = #"{"source":"bass","target":"bloomIntensity","depth":1.2,"mode":"transient"}"#.data(using: .utf8)!
        let route = try JSONDecoder().decode(AudioRoute.self, from: json)
        XCTAssertEqual(route.mode, .transient)
    }
    func testRoundTripEncodesMode() throws {
        let r = AudioRoute(source: .high, target: .exposure, depth: 0.6, mode: .transient)
        let data = try JSONEncoder().encode(r)
        let back = try JSONDecoder().decode(AudioRoute.self, from: data)
        XCTAssertEqual(back.mode, .transient)
    }
    func testMemberwiseInitDefaultsToLevel() {
        let r = AudioRoute(source: .bass, target: .moveSpeed, depth: 1)
        XCTAssertEqual(r.mode, .level)
    }
}