import XCTest @testable import TXCore final class MoshConnectTests: XCTestCase { func testParseBasic() { let info = MoshConnectScanner.parse("MOSH CONNECT 60001 gPFm3s8bkfMGrun5QI0Xdw") XCTAssertEqual(info, MoshConnectInfo(port: 60001, key: "gPFm3s8bkfMGrun5QI0Xdw")) } func testParseAmidNoise() { let out = """ user@host:~$ mosh-server new -s -c 256\r \r MOSH CONNECT 60022 AbCd1234+/xyzKEY0000==\r \r mosh-server (mosh 1.4.0)\r """ let info = MoshConnectScanner.parse(out) XCTAssertEqual(info?.port, 60022) XCTAssertEqual(info?.key, "AbCd1234+/xyzKEY0000==") } func testNoMatch() { XCTAssertNil(MoshConnectScanner.parse("bash: mosh-server: command not found")) XCTAssertNil(MoshConnectScanner.parse("MOSH CONNECT notaport keyhere")) } func testStreamingAcrossFeeds() { let s = MoshConnectScanner() XCTAssertNil(s.feed("prompt$ mosh-server new\r\nMOSH CON")) XCTAssertNil(s.result) let info = s.feed("NECT 60007 KeyAcrossBoundary123\r\n") XCTAssertEqual(info, MoshConnectInfo(port: 60007, key: "KeyAcrossBoundary123")) // 幂等:后续 feed 不改变结果。 XCTAssertEqual(s.feed("MOSH CONNECT 61000 other"), MoshConnectInfo(port: 60007, key: "KeyAcrossBoundary123")) } }