38 lines
1.1 KiB
Swift
38 lines
1.1 KiB
Swift
import Foundation
|
|
import Testing
|
|
|
|
@testable import Peered
|
|
|
|
@Suite
|
|
struct NoteMessageCodableTests {
|
|
@Test
|
|
func encodesToJSON() throws {
|
|
let message = NoteMessage(senderID: "host", content: "Content")
|
|
let data = try JSONEncoder().encode(message)
|
|
let json = try #require(try? JSONSerialization.jsonObject(with: data) as? [String: String])
|
|
|
|
#expect(json["senderID"] == "host")
|
|
#expect(json["content"] == "Content")
|
|
}
|
|
|
|
@Test
|
|
func decodesFromJSON() throws {
|
|
let json = #"{"senderID":"host","content":"contentt"}"#
|
|
let data = try #require(json.data(using: .utf8))
|
|
let message = try JSONDecoder().decode(NoteMessage.self, from: data)
|
|
|
|
#expect(message.senderID == "host")
|
|
#expect(message.content == "contentt")
|
|
}
|
|
|
|
@Test("encode → decode")
|
|
func coding() throws {
|
|
let original = NoteMessage(senderID: "host", content: "coding test")
|
|
let data = try JSONEncoder().encode(original)
|
|
let decoded = try JSONDecoder().decode(NoteMessage.self, from: data)
|
|
|
|
#expect(decoded.senderID == original.senderID)
|
|
#expect(decoded.content == original.content)
|
|
}
|
|
}
|