// // GSServerMock.swift // ListenerGSTests // // Created by Jeremy Rand on 2022-03-16. // import Foundation @testable import ListenerGS class GSServerMock { private let server = TCPServer(address: "127.0.0.1", port: Int32(GSConnection.port)) private var client : TCPClient? deinit { server.close() disconnect() } func accept() -> Bool { let result = server.listen() if (!result.isSuccess) { return false } client = server.accept(timeout: 10) return (client != nil) } func hasClient() -> Bool { return client != nil } func disconnect() { if let client = client { client.close() self.client = nil } } func getListenState(isListening : Bool) -> Bool { guard let client = client else { return false } guard let byteArray = client.read(4) else { return false } if (byteArray.count != 4) { return false } let data = Data(byteArray) do { let unpacked = try unpack(" Bool { guard let client = client else { return false } let result = client.send(data: pack(" Bool { guard let client = client else { return false } let result = client.send(data: pack(" String { guard let client = client else { return "" } guard let headerByteArray = client.read(4) else { return "" } if (headerByteArray.count != 4) { return "" } let headerData = Data(headerByteArray) var textLength = 0 do { let unpacked = try unpack(" Bool { guard let client = client else { return false } guard let headerByteArray = client.read(1) else { return true } return (headerByteArray.count == 0) } }