@testable import App import XCTVapor final class AppTests: XCTestCase { func testEncodingUInt32() { let input: UInt32 = 123 let data = input.encoded let output = UInt32(data: data) XCTAssertEqual(input, output) } func testEncodingContent() { let input = Message.Content(time: 1234567890, id: 23456789) let data = input.encoded let output = Message.Content(decodeFrom: data) XCTAssertEqual(input, output) let data2 = Data([42, 42]) + data let output2 = Message.Content(decodeFrom: Data(data2[2...])) XCTAssertEqual(input, output2) } func testEncodingMessage() { let input = Message(mac: Data(repeating: 42, count: 32), content: Message.Content(time: 1234567890, id: 23456789)) let data = input.encoded let buffer = ByteBuffer(data: data) let output = Message(decodeFrom: buffer) XCTAssertEqual(input, output) } func testSigning() throws { let key = SymmetricKey(size: .bits256) let content = Message.Content(time: 1234567890, id: 23456789) let input = content.authenticate(using: key) XCTAssertTrue(input.isValid(using: key)) let data = content.authenticateAndSerialize(using: key) let decoded = Message(decodeFrom: ByteBuffer(data: data)) XCTAssertNotNil(decoded) XCTAssertTrue(decoded!.isValid(using: key)) XCTAssertEqual(decoded!, input) XCTAssertEqual(content, input.content) } }