import XCTest @testable import TVAnarchyCore final class DecoderTests: XCTestCase { func testIdleStatusConstant() { XCTAssertFalse(PlaybackStatus.idle.playing) } func testStatusCacheRoundTrips() throws { let s = PlaybackStatus(playing: true, paused: false, title: "Psych S01E13", volume: 79, position: 1410, duration: 2590, playlistPos: 2, playlistCount: 110) let map = ["black": PlayerStatusCache.Entry(status: s, capturedAt: Date(timeIntervalSince1970: 1000))] let enc = JSONEncoder(); enc.dateEncodingStrategy = .iso8601 let dec = JSONDecoder(); dec.dateDecodingStrategy = .iso8601 let back = try dec.decode([String: PlayerStatusCache.Entry].self, from: enc.encode(map)) XCTAssertEqual(back["black"]?.status, s) XCTAssertEqual(back["black"]?.status.title, "Psych S01E13") XCTAssertEqual(back["black"]?.capturedAt, Date(timeIntervalSince1970: 1000)) } }