feat: add optional loop field to DeviceInfo
This commit is contained in:
@@ -20,3 +20,33 @@ final class PlayModeTests: XCTestCase {
|
||||
XCTAssertEqual(decoded, .single)
|
||||
}
|
||||
}
|
||||
|
||||
final class DeviceInfoLoopTests: XCTestCase {
|
||||
private func decode(_ json: String) throws -> DeviceInfo {
|
||||
try JSONDecoder().decode(DeviceInfo.self, from: Data(json.utf8))
|
||||
}
|
||||
|
||||
func testLoopMissingDecodesToNil() throws {
|
||||
let json = #"{"name":"d1","size":"360","brand":"duomi","powerlevel":80,"allspace":1024,"freespace":512}"#
|
||||
let info = try decode(json)
|
||||
XCTAssertNil(info.loop)
|
||||
}
|
||||
|
||||
func testLoopZeroDecodesToSingle() throws {
|
||||
let json = #"{"name":"d1","size":"360","brand":"duomi","powerlevel":80,"allspace":1024,"freespace":512,"loop":0}"#
|
||||
let info = try decode(json)
|
||||
XCTAssertEqual(info.loop, .single)
|
||||
}
|
||||
|
||||
func testLoopOneDecodesToLoop() throws {
|
||||
let json = #"{"name":"d1","size":"360","brand":"duomi","powerlevel":80,"allspace":1024,"freespace":512,"loop":1}"#
|
||||
let info = try decode(json)
|
||||
XCTAssertEqual(info.loop, .loop)
|
||||
}
|
||||
|
||||
func testLoopInvalidValueDecodesToNil() throws {
|
||||
let json = #"{"name":"d1","size":"360","brand":"duomi","powerlevel":80,"allspace":1024,"freespace":512,"loop":7}"#
|
||||
let info = try decode(json)
|
||||
XCTAssertNil(info.loop)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user